diff --git a/include/Diagnostic.cpp b/include/Diagnostic.cpp new file mode 100644 index 0000000000000000000000000000000000000000..aeb474104df22a3b3ee0e0980b2d9e102521745b --- /dev/null +++ b/include/Diagnostic.cpp @@ -0,0 +1,206 @@ +#include "Diagnostic.hpp" + +#include <QtWidgets> +#include <QVector> +#include <QCoreApplication> +#include <QStringList> +#include <QSysInfo> +#include <QRegExp> +#include <QtNetwork/QNetworkInterface> +#include <QtNetwork/QHostInfo> +#include <QtNetwork/QDnsLookup> + +#include "Globals.hpp" +#include "ProcessHandler.hpp" + + +void Diagnostic::onStarted(){ + double step = 100.0/func_vec.size(); + double i = 1.0; + foreach (function_t fn, func_vec) { + emit Update(static_cast<int>(ceil(step*i)), (this->*fn)()); + i += 1.0; + } + emit Quit(); +} + +Diagnostic::Diagnostic() + : func_vec({ + &Diagnostic::getOsInfo, + &Diagnostic::getInterfaceInfo, + &Diagnostic::getRoutingInfo, + &Diagnostic::getDGPingOutput, + &Diagnostic::getODPingOutput, + &Diagnostic::getDNSLookup + }), tab(2, ' ') +{ + INIT_GLOBALS(); +} + + +QString Diagnostic::getRoutingInfo(){ + ProcessHandler proc(QIODevice::ReadOnly); + QStringList out; + + out << "- - - Routing - - - \n"; + + switch (CURRENT_OS){ + case OS_WINDOWS: + out << proc.exec("netsh interface ipv4 show route"); + //out << proc.exec("netsh interface ipv6 show route"); + break; + case OS_LINUX: + out << proc.exec("netstat -A inet -rn"); + //out << proc.exec("netstat -A inet6 -rn"); + break; + case OS_OSX: + out << proc.exec("/usr/sbin/netstat -f inet -rn"); + //out << proc.exec("/usr/sbin/netstat -f inet6 -rn"); + break; + default: + static_assert(true, "This OS is not supported"); + break; + } + return out.join(separator); +} + + +QString Diagnostic::getInterfaceInfo(){ + QList<QNetworkInterface> ifList = QNetworkInterface::allInterfaces(); + QStringList out; + + out << "- - - Interface Info - - - \n"; + out << "\n"; + foreach (QNetworkInterface iface, ifList){ + out << QString("%1\n").arg(iface.humanReadableName()); + out << QString("%1Address entries:\n").arg(tab); + { + int address_cntr = 0; + foreach (QNetworkAddressEntry netAddr, iface.addressEntries()){ + out << QString("%1%1entry #%2\n").arg(tab).arg(address_cntr++); + out << QString("%1%1%1- broadcast addr: %2\n").arg(tab).arg(netAddr.broadcast().toString()); + out << QString("%1%1%1- ip addr: %2\n").arg(tab).arg(netAddr.ip().toString()); + out << QString("%1%1%1- subnetmask: %2\n").arg(tab).arg(netAddr.netmask().toString()); + } + } + out << QString("%1- can broadcast? %2\n").arg(tab).arg(iface.flags().testFlag(QNetworkInterface::CanBroadcast)? "yes" : "no"); + out << QString("%1- can multicast? %2\n").arg(tab).arg(iface.flags().testFlag(QNetworkInterface::CanMulticast)? "yes" : "no"); + out << QString("%1- HW address: %2\n").arg(tab).arg(iface.hardwareAddress()); + out << QString("%1- is loopback? %2\n").arg(tab).arg(iface.flags().testFlag(QNetworkInterface::IsLoopBack)? "yes" : "no"); + out << QString("%1- is point-to-point? %2\n").arg(tab).arg(iface.flags().testFlag(QNetworkInterface::IsPointToPoint)? "yes" : "no"); + out << QString("%1- is running? %2\n").arg(tab).arg(iface.flags().testFlag(QNetworkInterface::IsRunning)? "yes" : "no"); + out << QString("%1- is up? %2\n").arg(tab).arg(iface.flags().testFlag(QNetworkInterface::IsUp)? "yes" : "no"); + out << QString("%1- is valid? %2\n").arg(tab).arg(iface.isValid()? "yes" : "no"); + out << QString("%1- internal name: %2\n").arg(tab).arg(iface.name()); + } + out << QString("Local addresses:\n"); + foreach (QHostAddress hostAddr, QNetworkInterface::allAddresses()){ + out << QString("%1- %2\n").arg(tab).arg(hostAddr.toString()); + } + return out.join(separator); +} + + +QString Diagnostic::getDGPingOutput(){ + ProcessHandler proc(QIODevice::ReadOnly); + QStringList out; + + out << "- - - Pinging Default Gateways - - -\n"; + + foreach (QString ip, DEF_GATEWAYS) { + switch (CURRENT_OS){ + case OS_WINDOWS: + out << proc.exec(QString("ping -n 4 -w 1 %1").arg(ip)); + break; + case OS_LINUX: + out << proc.exec(QString("ping -n -c 4 -W 1 %1").arg(ip)); + break; + case OS_OSX: + default: + static_assert(true, "This OS is not supported"); + break; + } + } + return out.join(separator); +} + + +QString Diagnostic::getODPingOutput(){ + ProcessHandler proc(QIODevice::ReadOnly); + QStringList out; + + out << "- - - Pinging Outer Destinations - - -\n"; + + foreach (QString ip, OUTER_DEST) { + switch (CURRENT_OS){ + case OS_WINDOWS: + out << proc.exec(QString("ping -n 4 -w 1 %1").arg(ip)); + break; + case OS_LINUX: + out << proc.exec(QString("ping -c 4 -W 1 %1").arg(ip)); + break; + case OS_OSX: + out << proc.exec(QString("ping -c 4 -W 1 %1").arg(ip)); + break; + default: + static_assert(true, "This OS is not supported"); + break; + } + } + return out.join(separator); +} + + +QString Diagnostic::getOsInfo(){ + ProcessHandler proc(QIODevice::ReadOnly); + QStringList out; + out << "- - - OS Version - - -\n"; + + switch (CURRENT_OS) { + case OS_WINDOWS: + { + /* this pattern removes leading/trailing/middle empty lines + * it is tested to work without escaping the backslashes. + * if the output is malformed feel free to escape them! */ + QRegExp e("(?:^[\r\n]+)|(?:[\r\n]{2}(?=[\r\n]))|(?:[\r\n]+$)"); + out << proc.exec("wmic os get Caption,CSDVersion /value").replace(e, ""); + } + break; + case OS_LINUX: + out << proc.exec("lsb_release -a"); + break; + case OS_OSX: + out << proc.exec("sw_vers"); + break; + default: + static_assert(true, "This OS is not supported"); + break; + } + return out.join(separator); +} + + +QString Diagnostic::getDNSLookup(){ + QStringList out; + out << "- - - DNS Lookup for sch.bme.hu - - -\n"; + QEventLoop dns_event; + QDnsLookup dns_handle(QDnsLookup::ANY, DNS_ADDR); + + dns_event.connect(&dns_handle, SIGNAL(finished()), &dns_event, SLOT(quit())); + + foreach (QString nameserver, NS_ADDRS) { + dns_handle.setNameserver(QHostAddress(nameserver)); + dns_handle.lookup(); + dns_event.exec(); + if (dns_handle.error() == QDnsLookup::NoError) { + out << QString("nameserver: %1\n").arg(nameserver); + foreach (const QDnsHostAddressRecord &record, dns_handle.hostAddressRecords()) { + out << QString("%1- %2\n").arg(tab).arg(record.value().toString()); + } + } + else { + out << QString("nameserver: %1 - failed\n").arg(nameserver); + } + } + return out.join(separator); +} diff --git a/include/Diagnostic.hpp b/include/Diagnostic.hpp index aacdf37a83f5478166359a5f47a73d47d13430b2..85722a1122f138fa1e5274448b430c106abda7ea 100644 --- a/include/Diagnostic.hpp +++ b/include/Diagnostic.hpp @@ -1,192 +1,31 @@ +#include <QtWidgets> #include <QVector> #include <QCoreApplication> -#include <QStringList> -#include <QSysInfo> -#include <QRegExp> -#include <QtNetwork/QNetworkInterface> -#include <QtNetwork/QHostInfo> - -#include "Globals.hpp" -#include "ProcessHandler.hpp" #ifndef DIAGNOSTIC_HPP #define DIAGNOSTIC_HPP -class Diagnostic { -public: +class Diagnostic : public QObject { + Q_OBJECT +private: typedef QString (Diagnostic::*function_t)(); QVector<function_t> func_vec; - - Diagnostic() - : func_vec({ - &Diagnostic::getOsInfo, - &Diagnostic::getInterfaceInfo, - &Diagnostic::getRoutingInfo, - /*&Diagnostic::getDGPingOutput,*/ - &Diagnostic::getODPingOutput, - &Diagnostic::getDNSLookup - }) - { - INIT_GLOBALS(); - } - - QString getRoutingInfo(){ - ProcessHandler proc(QIODevice::ReadOnly); - QStringList out; - - out << "- - - Routing - - - \n"; - - switch (CURRENT_OS){ - case OS_WINDOWS: - out << proc.exec("netsh interface ipv4 show route"); - //out << proc.exec("netsh interface ipv6 show route"); - break; - case OS_LINUX: - out << proc.exec("netstat -A inet -rn"); - //out << proc.exec("netstat -A inet6 -rn"); - break; - case OS_OSX: - out << proc.exec("/usr/sbin/netstat -f inet -rn"); - //out << proc.exec("/usr/sbin/netstat -f inet6 -rn"); - break; - default: - static_assert(true, "This OS is not supported"); - break; - } - QString sep; - return out.join(sep); - } - - QString getInterfaceInfo(){ - QList<QNetworkInterface> ifList = QNetworkInterface::allInterfaces(); - QStringList out; - QString tab(4, ' '); - - out << "- - - Interface Info - - - \n"; - out << "\n"; - foreach (QNetworkInterface iface, ifList){ - out << QString("%1\n").arg(iface.humanReadableName()); - out << QString("%1Address entries:\n").arg(tab); - { - int address_cntr = 0; - foreach (QNetworkAddressEntry netAddr, iface.addressEntries()){ - out << QString("%1%1entry #%2\n").arg(tab).arg(address_cntr++); - out << QString("%1%1%1- broadcast addr: %2\n").arg(tab).arg(netAddr.broadcast().toString()); - out << QString("%1%1%1- ip addr: %2\n").arg(tab).arg(netAddr.ip().toString()); - out << QString("%1%1%1- subnetmask: %2\n").arg(tab).arg(netAddr.netmask().toString()); - } - } - out << QString("%1- can broadcast? %2\n").arg(tab).arg(iface.flags().testFlag(QNetworkInterface::CanBroadcast)? "yes" : "no"); - out << QString("%1- can multicast? %2\n").arg(tab).arg(iface.flags().testFlag(QNetworkInterface::CanMulticast)? "yes" : "no"); - out << QString("%1- HW address: %2\n").arg(tab).arg(iface.hardwareAddress()); - out << QString("%1- is loopback? %2\n").arg(tab).arg(iface.flags().testFlag(QNetworkInterface::IsLoopBack)? "yes" : "no"); - out << QString("%1- is point-to-point? %2\n").arg(tab).arg(iface.flags().testFlag(QNetworkInterface::IsPointToPoint)? "yes" : "no"); - out << QString("%1- is running? %2\n").arg(tab).arg(iface.flags().testFlag(QNetworkInterface::IsRunning)? "yes" : "no"); - out << QString("%1- is up? %2\n").arg(tab).arg(iface.flags().testFlag(QNetworkInterface::IsUp)? "yes" : "no"); - out << QString("%1- is valid? %2\n").arg(tab).arg(iface.isValid()? "yes" : "no"); - out << QString("%1- internal name: %2\n").arg(tab).arg(iface.name()); - } - out << QString("Local addresses:\n"); - foreach (QHostAddress hostAddr, QNetworkInterface::allAddresses()){ - out << QString("%1- %2\n").arg(tab).arg(hostAddr.toString()); - } - QString sep; - return out.join(sep); - } - - QString getDGPingOutput(){ - ProcessHandler proc(QIODevice::ReadOnly); - QStringList out; - - out << "- - - Pinging Default Gateways - - -\n"; - - foreach (QString ip, DEF_GATEWAYS) { - switch (CURRENT_OS){ - case OS_WINDOWS: - out << proc.exec(QString("ping -n 4 -w 1 %1").arg(ip)); - break; - case OS_LINUX: - out << proc.exec(QString("ping -n -c 4 -W 1 %1").arg(ip)); - break; - case OS_OSX: - default: - static_assert(true, "This OS is not supported"); - break; - } - } - - return out.join(' '); - } - - QString getODPingOutput(){ - ProcessHandler proc(QIODevice::ReadOnly); - QStringList out; - - out << "- - - Pinging Outer Destinations - - -\n"; - - foreach (QString ip, OUTER_DEST) { - switch (CURRENT_OS){ - case OS_WINDOWS: - out << proc.exec(QString("ping -n 4 -w 1 %1").arg(ip)); - break; - case OS_LINUX: - out << proc.exec(QString("ping -n -c 4 -W 1 %1").arg(ip)); - break; - case OS_OSX: - default: - static_assert(true, "This OS is not supported"); - break; - } - } - - return out.join(' '); - } - - QString getOsInfo(){ - ProcessHandler proc(QIODevice::ReadOnly); - QStringList out; - out << "- - - OS Version - - -\n"; - - switch (CURRENT_OS) { - case OS_WINDOWS: - { - QRegExp e("(?:^[\r\n]+(?=[\r\n]))|(?:[\r\n]{2}(?=[\r\n]))|(?:[\r\n]+(?=[\r\n])$)"); - out << proc.exec("wmic os get Caption,CSDVersion /value").replace(e, ""); - } - break; - case OS_LINUX: - out << proc.exec("lsb_release -a"); - break; - case OS_OSX: - out << proc.exec("sw_vers"); - break; - default: - static_assert(true, "This OS is not supported"); - break; - } - QString sep; - return out.join(sep); - } - - QString getDNSLookup(){ - QStringList out; - out << "- - - DNS Lookup for sch.bme.hu - - -\n"; - - QHostInfo info = QHostInfo::fromName("sch.bme.hu"); - foreach (QHostAddress addr, info.addresses()) { - out << " - " << addr.toString() << "\n"; - } - - /* TODO: wait for QDnsLookup SIGNAL - foreach (QString dns_ip, DNS_ADDRS) { - QDnsLookup dl(QDnsLookup::NS, "", dns_ip); - } - */ - - QString sep; - return out.join(sep); - } - + QString separator; + QString tab; +public slots: + void onStarted(); +signals: + void Ready(); + void Update(int, const QString); + void Quit(); +public: + Diagnostic(); + QString getRoutingInfo(); + QString getInterfaceInfo(); + QString getDGPingOutput(); + QString getODPingOutput(); + QString getOsInfo(); + QString getDNSLookup(); }; #endif diff --git a/include/Globals.hpp b/include/Globals.hpp index 56db7c48311199c9354a76aa2ab42eeb4fae3c8a..9a06c94d0b2c6bbbf25c04f0282989b414a3657d 100644 --- a/include/Globals.hpp +++ b/include/Globals.hpp @@ -22,7 +22,8 @@ enum OS_TYPE {OS_WINDOWS, OS_LINUX, OS_OSX}; // QStringList DEF_GATEWAYS; QStringList OUTER_DEST; -QStringList DNS_ADDRS; +QStringList NS_ADDRS; +QString DNS_ADDR; void INIT_GLOBALS(){ DEF_GATEWAYS << "152.66.176.254"; @@ -40,10 +41,12 @@ void INIT_GLOBALS(){ OUTER_DEST << "8.8.8.8"; OUTER_DEST << "8.8.4.4"; - DNS_ADDRS << "152.66.208.1"; - DNS_ADDRS << "152.66.208.7"; - DNS_ADDRS << "8.8.8.8"; - DNS_ADDRS << "8.8.4.4"; + NS_ADDRS << "152.66.208.1"; + NS_ADDRS << "152.66.208.7"; + NS_ADDRS << "8.8.8.8"; + NS_ADDRS << "8.8.4.4"; + + DNS_ADDR = "sch.bme.hu"; } #endif // GLOBALS_HPP diff --git a/include/NetCheckerWindow.cpp b/include/NetCheckerWindow.cpp index 5e569562649f4ba88d0f20227dc07095f5cec62d..0b6471d34abc880dce059b26f996c93c8d037dae 100644 --- a/include/NetCheckerWindow.cpp +++ b/include/NetCheckerWindow.cpp @@ -3,12 +3,12 @@ #include <QImage> #include "NetCheckerWindow.hpp" -#include "Diagnostic.hpp" +//#include "Diagnostic.hpp" #include "Translation.hpp" NetCheckerWindow::NetCheckerWindow(){ /* default language is hungarian */ - LANG = HUN; + lang = LANG::HUN; setWindowFlags(Qt::WindowCloseButtonHint); this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); this->setFixedSize(WINDOW_WIDTH, WINDOW_HEIGHT); @@ -22,6 +22,8 @@ void NetCheckerWindow::initStackedWindow(){ global_l = new QVBoxLayout; global_w = new QStackedWidget; global_l->addWidget(global_w); + + /* remove margins and spacing from global layout */ global_l->setMargin(0); global_l->setSpacing(0); @@ -32,12 +34,15 @@ void NetCheckerWindow::initStackedWindow(){ } void NetCheckerWindow::initWelcomePage(){ - /* inicializálás */ + /* initialization */ welcome_page_l = new QHBoxLayout; welcome_page_w = new QWidget; + + /* remove margins and spacing from welcome page layout */ welcome_page_l->setMargin(0); welcome_page_l->setSpacing(0); + /* init the two sides: logo and readme */ initLogoSide(); initReadmeSide(); @@ -50,7 +55,6 @@ void NetCheckerWindow::initLogoSide(){ logo_side_l = new QVBoxLayout; logo_side_l->setContentsMargins(9, 9, 0, 0); - logo_side_w->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); logo_side_w->setFixedWidth(LOGO_WIDTH); @@ -63,7 +67,6 @@ void NetCheckerWindow::initLogoSide(){ QPainter painter(&image); renderer.render(&painter); QPixmap pix_logo = QPixmap::fromImage(image); - //pix_logo = pix_logo.scaledToWidth(image_width, Qt::SmoothTransformation); logo_image_w->setPixmap(pix_logo); logo_image_w->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); @@ -108,9 +111,11 @@ void NetCheckerWindow::initReadmeSide(){ readme_side_w->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + /* textbox at the right */ text_w = new QTextEdit; text_w->setReadOnly(true); + /* next button */ next_button_w = new QPushButton; next_button_w->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); connect(next_button_w, SIGNAL(released()), this, SLOT(nextPage())); @@ -133,8 +138,27 @@ void NetCheckerWindow::initDiagnosticPage(){ progressbar_w->setRange(0, 100); progressbar_w->setAlignment(Qt::AlignHCenter); + /* progress bar info */ + QWidget *progress_info_holder_w = new QWidget; + QHBoxLayout *progress_info_holder_l = new QHBoxLayout; + progress_info = new QLabel; + progress_info_time = new QLabel; + progress_info->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + progress_info_time->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); + progress_info_time->setFixedWidth(20); + progress_info_time->setAlignment(Qt::AlignRight); + progress_info->setAlignment(Qt::AlignRight); + + progress_info_holder_l->addWidget(progress_info); + progress_info_holder_l->addWidget(progress_info_time, 0, Qt::AlignRight); + progress_info_holder_l->setContentsMargins(0, 3, 3, 3); + + progress_info_holder_w->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); + progress_info_holder_w->setLayout(progress_info_holder_l); + progressbar_holder_w->setLayout(progressbar_holder_l); progressbar_holder_l->addWidget(progressbar_w); + progressbar_holder_l->addWidget(progress_info_holder_w); progressbar_holder_w->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); /* log */ @@ -154,19 +178,21 @@ void NetCheckerWindow::initDiagnosticPage(){ clipboard_button_w = new QPushButton; save_button_w = new QPushButton; clipboard_button_w->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - clipboard_button_w->setEnabled(false); save_button_w->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + clipboard_button_w->setEnabled(false); save_button_w->setEnabled(false); + connect(clipboard_button_w, SIGNAL(released()), this, SLOT(copyClipboard())); connect(save_button_w, SIGNAL(released()), this, SLOT(saveToFile())); button_holder_l->addWidget(clipboard_button_w); button_holder_l->addWidget(save_button_w); button_holder_w->setLayout(button_holder_l); + + /* trying to align buttons */ button_holder_w->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - button_holder_l->setContentsMargins(10, 0, 10, 0); + button_holder_l->setContentsMargins(12, 0, 12, 0); - /* add to parent */ diagnostic_page_l->addWidget(progressbar_holder_w); diagnostic_page_l->addWidget(log_holder_w); diagnostic_page_l->addWidget(button_holder_w, 0, Qt::AlignRight); @@ -177,33 +203,74 @@ void NetCheckerWindow::initDiagnosticPage(){ void NetCheckerWindow::initText(){ /* set program title */ - setWindowTitle(TXT_APP_TITLE[LANG]); + setWindowTitle(TXT_APP_TITLE[lang]); + + /* set next button label */ + next_button_w->setText(TXT_NEXT_BTN[lang]); + + /* change the readme text but also cache it */ + static QString readme_txt[2] = {QString(), QString()}; + if (readme_txt[0].isEmpty()){ + QFile readme_file_hun(README_URL[LANG::HUN]); + QFile readme_file_eng(README_URL[LANG::ENG]); + readme_file_hun.open(QIODevice::ReadOnly); + readme_file_eng.open(QIODevice::ReadOnly); + QTextStream readme_file_str_hun(&readme_file_hun); + QTextStream readme_file_str_eng(&readme_file_eng); + readme_file_str_hun.setCodec("UTF-8"); + readme_file_str_eng.setCodec("UTF-8"); + readme_txt[LANG::ENG] = readme_file_eng.readAll(); + readme_txt[LANG::HUN] = readme_file_str_hun.readAll(); + readme_file_hun.close(); + readme_file_eng.close(); + } + text_w->setHtml(readme_txt[lang]); + + /* progress bar and buttons region */ + progress_info->setText(TXT_EST_TIME[lang].append(":")); + progressbar_holder_w->setTitle(TXT_DIAG_GROUP[lang]); + log_holder_w->setTitle(TXT_LOG_GROUP[lang]); + clipboard_button_w->setText(TXT_CLIPB_BTN[lang]); + save_button_w->setText(TXT_SAVE_BTN[lang]); +} - next_button_w->setText(TXT_NEXT_BTN[LANG]); +void NetCheckerWindow::nextPage(){ + /* turns page */ + global_w->setCurrentIndex(1); - QFile readme_file(README_URL[LANG]); - readme_file.open(QIODevice::ReadOnly); - QTextStream readme_file_str(&readme_file); - readme_file_str.setCodec("UTF-8"); - text_w->setHtml(readme_file_str.readAll()); - readme_file.close(); + /* set up diagnostic + wiring some shit */ + Diagnostic *diag_obj = new Diagnostic; + QThread *diag_thread = new QThread(); + diag_obj->moveToThread(diag_thread); + + /* thread start -> diagnostic start */ + QObject::connect(diag_thread, SIGNAL(started()), diag_obj, SLOT(onStarted())); + /* update -> window */ + QObject::connect(diag_obj, SIGNAL(Update(int,QString)), this, SLOT(updateInfos(int,QString))); + /* quit diagnostic -> quit thread */ + QObject::connect(diag_obj, SIGNAL(Quit()), diag_thread, SLOT(quit())); + /* thread finished -> window's finish action */ + QObject::connect(diag_thread, SIGNAL(finished()), this, SLOT(finishAction())); + diag_thread->start(); + + /* set up timer */ + progress_timer = new QTimer(this); + connect(progress_timer, SIGNAL(timeout()), this, SLOT(incrementTime())); + progress_timer->setSingleShot(true); + progress_timer->start(); +} - progressbar_holder_w->setTitle(TXT_DIAG_GROUP[LANG]); - log_holder_w->setTitle(TXT_LOG_GROUP[LANG]); - clipboard_button_w->setText(TXT_CLIPB_BTN[LANG]); - save_button_w->setText(TXT_SAVE_BTN[LANG]); +void NetCheckerWindow::updateInfos(int progress_value, const QString info){ + progressbar_w->setValue(progress_value); + log_w->append(info); } -void NetCheckerWindow::nextPage(){ - Diagnostic d; - global_w->setCurrentIndex(1); - double step = 100.0/d.func_vec.size(); - double i = 1.0; - foreach (Diagnostic::function_t fn, d.func_vec) { - log_w->append((d.*fn)()); - progressbar_w->setValue(static_cast<int>(ceil(step*i))); - i += 1.0; - } +void NetCheckerWindow::finishAction(){ + /* if diagnostic is over stop the timer and change text to finished */ + progress_timer->stop(); + progress_info->setText(TXT_FINISHED[lang]); + + /* enable save buttons */ clipboard_button_w->setEnabled(true); save_button_w->setEnabled(true); } @@ -214,7 +281,7 @@ void NetCheckerWindow::copyClipboard(){ } void NetCheckerWindow::saveToFile(){ - QString filename = QFileDialog::getExistingDirectory(0, TXT_SAVE_DIALOG[LANG]); + QString filename = QFileDialog::getExistingDirectory(0, TXT_SAVE_DIALOG[lang]); filename.append(tr("/%1.txt").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd_h-m-s"))); if (!filename.isEmpty()){ QFile file(filename); @@ -229,15 +296,27 @@ void NetCheckerWindow::saveToFile(){ } void NetCheckerWindow::changeToHun(){ - if (LANG != HUN){ - LANG = HUN; + if (lang != LANG::HUN){ + lang = LANG::HUN; initText(); } } void NetCheckerWindow::changeToEng(){ - if (LANG != ENG){ - LANG = ENG; + if (lang != LANG::ENG){ + lang = LANG::ENG; initText(); } } + +void NetCheckerWindow::incrementTime(){ + static int count = 53; + if (count >= 0){ + progress_info_time->setText(QString("%1s").arg(count--)); + progress_timer->start(1000); + } + else { + progress_info->setText(TXT_ALMOST_END[lang]); + progress_info_time->hide(); + } +} diff --git a/include/NetCheckerWindow.hpp b/include/NetCheckerWindow.hpp index 35791adc21d6ba92731e2ac3f6f9aed0e94a6a58..c5be79e1eaddf0118f461aadebe335efd2205565 100644 --- a/include/NetCheckerWindow.hpp +++ b/include/NetCheckerWindow.hpp @@ -1,6 +1,8 @@ #ifndef DIALOG_H #define DIALOG_H +#include "Diagnostic.hpp" + #include <QDialog> #include <QtWidgets> #include <QFont> @@ -32,13 +34,18 @@ private: QWidget *diagnostic_page_w; QVBoxLayout *diagnostic_page_l; QGroupBox *progressbar_holder_w; QVBoxLayout *progressbar_holder_l; QProgressBar *progressbar_w; + QLabel *progress_info; + QLabel *progress_info_time; QGroupBox *log_holder_w; QVBoxLayout *log_holder_l; QTextEdit *log_w; QWidget *button_holder_w; QHBoxLayout *button_holder_l; QPushButton* clipboard_button_w; QPushButton* save_button_w; /* <-- widget structure */ - int LANG; + QTimer *progress_timer; + int lang; + Diagnostic *diag_obj; + QThread *diag_thread; public: NetCheckerWindow(); public slots: @@ -47,6 +54,9 @@ public slots: void saveToFile(); void changeToHun(); void changeToEng(); + void incrementTime(); + void finishAction(); + void updateInfos(int, const QString); private: void initStackedWindow(); void initWelcomePage(); diff --git a/include/ProcessHandler.hpp b/include/ProcessHandler.hpp index dea2b55495575339c834d83cc6624303ab8da179..406d978a23eaca64af3dcf5a4ef442ee2f0f5ee5 100644 --- a/include/ProcessHandler.hpp +++ b/include/ProcessHandler.hpp @@ -14,7 +14,9 @@ public: public: QString exec(QString commands){ start(commands); - waitForFinished(); + if (!waitForFinished()){ + return tr("Error occured. Command was: %1\n").arg(commands); + } QByteArray ba = readAllStandardOutput(); return ba; } diff --git a/include/Translation.hpp b/include/Translation.hpp index eebf79f6c980786050839ccbdae17740076e374a..7525dad393ab5356329c2cf5f7d2fd1459be2eab 100644 --- a/include/Translation.hpp +++ b/include/Translation.hpp @@ -3,11 +3,16 @@ #include <QString> -enum {ENG = 0, HUN = 1}; +struct LANG { + enum {ENG = 0, HUN = 1}; +}; QString TXT_APP_TITLE[] = { "NetChecker", "NetChecker" }; QString README_URL[] = { ":/rsrc/readme_en.html", ":/rsrc/readme_hu.html" }; QString TXT_NEXT_BTN[] = { "Next", "Tovább" }; QString TXT_DIAG_GROUP[] = { "Running diagnostics", "Diagnosztika futtatása" }; +QString TXT_EST_TIME[] = { "Estimated time", "Várható befejezés" }; +QString TXT_ALMOST_END[] = { "Please be patient...", "Kérem várjon türelemmel..." }; +QString TXT_FINISHED[] = { "Finished.", "Művelet befejeződött." }; QString TXT_LOG_GROUP[] = { "Log", "Napló" }; QString TXT_CLIPB_BTN[] = { "Copy to clipboard", "Másolás vágólapra" }; QString TXT_SAVE_BTN[] = { "Save to file...", "Mentés fájlba..." }; diff --git a/netchecker.pro b/netchecker.pro index 51e976cbb581157f7f88006a1eb3a4c005f07147..2c6a3ea82324ee773a86ae69046862a196b316f7 100644 --- a/netchecker.pro +++ b/netchecker.pro @@ -1,23 +1,24 @@ -QT += widgets network svg - -win32:RC_ICONS += rsrc/app.ico -macx:ICON = app.hqx - -HEADERS = \ - include/NetCheckerWindow.hpp \ - include/Diagnostic.hpp \ - include/Translation.hpp \ - include/ProcessHandler.hpp \ - include/Globals.hpp -SOURCES = \ - main.cpp \ - include/NetCheckerWindow.cpp - -# install -target.path = bin -INSTALLS += target - -RESOURCES += \ - resource.qrc - -CONFIG += c++11 +QT += widgets network svg + +win32:RC_ICONS += rsrc/app.ico +macx:ICON = app.hqx + +HEADERS = \ + include/NetCheckerWindow.hpp \ + include/Diagnostic.hpp \ + include/Translation.hpp \ + include/ProcessHandler.hpp \ + include/Globals.hpp +SOURCES = \ + main.cpp \ + include/NetCheckerWindow.cpp \ + include/Diagnostic.cpp + +# install +target.path = bin +INSTALLS += target + +RESOURCES += \ + resource.qrc + +CONFIG += c++11 diff --git a/netchecker.pro.user b/netchecker.pro.user index 7c45b2aaab5c54b226b7301a4a1c4fe37057aa9e..f29d2b40508d70fb9336a38c5b8136444e43cf18 100644 --- a/netchecker.pro.user +++ b/netchecker.pro.user @@ -1,259 +1,259 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE QtCreatorProject> -<!-- Written by QtCreator 3.4.2, 2015-08-10T01:50:36. --> -<qtcreator> - <data> - <variable>EnvironmentId</variable> - <value type="QByteArray">{8a982672-9a47-4b9c-b231-1954ba5d7e5c}</value> - </data> - <data> - <variable>ProjectExplorer.Project.ActiveTarget</variable> - <value type="int">0</value> - </data> - <data> - <variable>ProjectExplorer.Project.EditorSettings</variable> - <valuemap type="QVariantMap"> - <value type="bool" key="EditorConfiguration.AutoIndent">true</value> - <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value> - <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value> - <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0"> - <value type="QString" key="language">Cpp</value> - <valuemap type="QVariantMap" key="value"> - <value type="QByteArray" key="CurrentPreferences">CppGlobal</value> - </valuemap> - </valuemap> - <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1"> - <value type="QString" key="language">QmlJS</value> - <valuemap type="QVariantMap" key="value"> - <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value> - </valuemap> - </valuemap> - <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value> - <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value> - <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value> - <value type="int" key="EditorConfiguration.IndentSize">4</value> - <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value> - <value type="int" key="EditorConfiguration.MarginColumn">80</value> - <value type="bool" key="EditorConfiguration.MouseHiding">true</value> - <value type="bool" key="EditorConfiguration.MouseNavigation">true</value> - <value type="int" key="EditorConfiguration.PaddingMode">1</value> - <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value> - <value type="bool" key="EditorConfiguration.ShowMargin">false</value> - <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value> - <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value> - <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value> - <value type="int" key="EditorConfiguration.TabSize">8</value> - <value type="bool" key="EditorConfiguration.UseGlobal">true</value> - <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value> - <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value> - <value type="bool" key="EditorConfiguration.cleanIndentation">true</value> - <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value> - <value type="bool" key="EditorConfiguration.inEntireDocument">false</value> - </valuemap> - </data> - <data> - <variable>ProjectExplorer.Project.PluginSettings</variable> - <valuemap type="QVariantMap"/> - </data> - <data> - <variable>ProjectExplorer.Project.Target.0</variable> - <valuemap type="QVariantMap"> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.5.0 MinGW 32bit</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.5.0 MinGW 32bit</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.55.win32_mingw492_kit</value> - <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value> - <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> - <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> - <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> - <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">bin</value> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> - <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> - <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> - <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value> - <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> - <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> - <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value> - <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value> - </valuemap> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> - <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> - <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/> - <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> - <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> - <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> - </valuemap> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> - <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> - <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/> - <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> - <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> - <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> - <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> - <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> - <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value> - <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> - </valuemap> - <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> - <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">bin</value> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> - <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> - <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> - <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value> - <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> - <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> - <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value> - <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value> - </valuemap> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> - <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> - <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/> - <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> - <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> - <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> - </valuemap> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> - <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> - <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/> - <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> - <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> - <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> - <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> - <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> - <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value> - <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> - </valuemap> - <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value> - <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> - <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value> - </valuemap> - <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value> - <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/> - <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> - <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/> - <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value> - <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value> - <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value> - <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value> - <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value> - <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value> - <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value> - <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value> - <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value> - <value type="int" key="Analyzer.Valgrind.NumCallers">25</value> - <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/> - <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value> - <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value> - <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value> - <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value> - <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value> - <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds"> - <value type="int">0</value> - <value type="int">1</value> - <value type="int">2</value> - <value type="int">3</value> - <value type="int">4</value> - <value type="int">5</value> - <value type="int">6</value> - <value type="int">7</value> - <value type="int">8</value> - <value type="int">9</value> - <value type="int">10</value> - <value type="int">11</value> - <value type="int">12</value> - <value type="int">13</value> - <value type="int">14</value> - </valuelist> - <value type="int" key="PE.EnvironmentAspect.Base">2</value> - <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">netchecker</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/bebe/Documents/QtProjects/NetChecker/netchecker.pro</value> - <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value> - <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">netchecker.pro</value> - <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value> - <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value> - <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value> - <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> - <value type="bool" key="RunConfiguration.UseCppDebugger">false</value> - <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value> - <value type="bool" key="RunConfiguration.UseMultiProcess">false</value> - <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> - <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> - </valuemap> - <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value> - </valuemap> - </data> - <data> - <variable>ProjectExplorer.Project.TargetCount</variable> - <value type="int">1</value> - </data> - <data> - <variable>ProjectExplorer.Project.Updater.FileVersion</variable> - <value type="int">18</value> - </data> - <data> - <variable>Version</variable> - <value type="int">18</value> - </data> -</qtcreator> +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE QtCreatorProject> +<!-- Written by QtCreator 3.4.2, 2015-08-10T22:01:08. --> +<qtcreator> + <data> + <variable>EnvironmentId</variable> + <value type="QByteArray">{8a982672-9a47-4b9c-b231-1954ba5d7e5c}</value> + </data> + <data> + <variable>ProjectExplorer.Project.ActiveTarget</variable> + <value type="int">0</value> + </data> + <data> + <variable>ProjectExplorer.Project.EditorSettings</variable> + <valuemap type="QVariantMap"> + <value type="bool" key="EditorConfiguration.AutoIndent">true</value> + <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value> + <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value> + <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0"> + <value type="QString" key="language">Cpp</value> + <valuemap type="QVariantMap" key="value"> + <value type="QByteArray" key="CurrentPreferences">CppGlobal</value> + </valuemap> + </valuemap> + <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1"> + <value type="QString" key="language">QmlJS</value> + <valuemap type="QVariantMap" key="value"> + <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value> + </valuemap> + </valuemap> + <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value> + <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value> + <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value> + <value type="int" key="EditorConfiguration.IndentSize">4</value> + <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value> + <value type="int" key="EditorConfiguration.MarginColumn">80</value> + <value type="bool" key="EditorConfiguration.MouseHiding">true</value> + <value type="bool" key="EditorConfiguration.MouseNavigation">true</value> + <value type="int" key="EditorConfiguration.PaddingMode">1</value> + <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value> + <value type="bool" key="EditorConfiguration.ShowMargin">false</value> + <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value> + <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value> + <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value> + <value type="int" key="EditorConfiguration.TabSize">8</value> + <value type="bool" key="EditorConfiguration.UseGlobal">true</value> + <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value> + <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value> + <value type="bool" key="EditorConfiguration.cleanIndentation">true</value> + <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value> + <value type="bool" key="EditorConfiguration.inEntireDocument">false</value> + </valuemap> + </data> + <data> + <variable>ProjectExplorer.Project.PluginSettings</variable> + <valuemap type="QVariantMap"/> + </data> + <data> + <variable>ProjectExplorer.Project.Target.0</variable> + <valuemap type="QVariantMap"> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.5.0 MinGW 32bit</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.5.0 MinGW 32bit</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.55.win32_mingw492_kit</value> + <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value> + <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> + <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> + <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">bin</value> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value> + <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value> + </valuemap> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> + <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/> + <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> + </valuemap> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> + <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/> + <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> + <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> + <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> + <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value> + <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> + </valuemap> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> + <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">bin</value> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value> + <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value> + <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value> + </valuemap> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> + <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/> + <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> + </valuemap> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> + <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/> + <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> + <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> + <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> + <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> + <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value> + <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> + </valuemap> + <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> + <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value> + </valuemap> + <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> + <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/> + <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value> + <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value> + <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value> + <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value> + <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value> + <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value> + <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value> + <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value> + <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value> + <value type="int" key="Analyzer.Valgrind.NumCallers">25</value> + <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/> + <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value> + <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value> + <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value> + <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value> + <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value> + <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds"> + <value type="int">0</value> + <value type="int">1</value> + <value type="int">2</value> + <value type="int">3</value> + <value type="int">4</value> + <value type="int">5</value> + <value type="int">6</value> + <value type="int">7</value> + <value type="int">8</value> + <value type="int">9</value> + <value type="int">10</value> + <value type="int">11</value> + <value type="int">12</value> + <value type="int">13</value> + <value type="int">14</value> + </valuelist> + <value type="int" key="PE.EnvironmentAspect.Base">2</value> + <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">netchecker</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/bebe/Documents/QtProjects/NetChecker/netchecker.pro</value> + <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value> + <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">netchecker.pro</value> + <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value> + <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value> + <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value> + <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> + <value type="bool" key="RunConfiguration.UseCppDebugger">false</value> + <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value> + <value type="bool" key="RunConfiguration.UseMultiProcess">false</value> + <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> + <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> + </valuemap> + <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value> + </valuemap> + </data> + <data> + <variable>ProjectExplorer.Project.TargetCount</variable> + <value type="int">1</value> + </data> + <data> + <variable>ProjectExplorer.Project.Updater.FileVersion</variable> + <value type="int">18</value> + </data> + <data> + <variable>Version</variable> + <value type="int">18</value> + </data> +</qtcreator> diff --git a/resource.qrc b/resource.qrc index bf353a14bb6d663be918c22605bd16cd522c4754..79a68ba0f7214db584803c6fd8e18e1c67f65a75 100644 --- a/resource.qrc +++ b/resource.qrc @@ -1,9 +1,9 @@ -<RCC> - <qresource prefix="/"> - <file>rsrc/logo.svg</file> - <file>rsrc/readme_en.html</file> - <file>rsrc/readme_hu.html</file> - <file>rsrc/flag_eng.gif</file> - <file>rsrc/flag_hun.gif</file> - </qresource> -</RCC> +<RCC> + <qresource prefix="/"> + <file>rsrc/logo.svg</file> + <file>rsrc/readme_en.html</file> + <file>rsrc/readme_hu.html</file> + <file>rsrc/flag_eng.gif</file> + <file>rsrc/flag_hun.gif</file> + </qresource> +</RCC> diff --git a/rsrc/logo.svg b/rsrc/logo.svg index a654d310f7d6617e1c0ebffffb13ddbe3193dedb..3356d0eec89690d3f728e3c4bf303787eb882e89 100644 --- a/rsrc/logo.svg +++ b/rsrc/logo.svg @@ -1,29 +1,29 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg width="662pt" height="912pt" viewBox="0 0 662 912" version="1.1" xmlns="http://www.w3.org/2000/svg"> -<g id="#fbfcfdfe"> -<path fill="#fbfcfd" opacity="1.00" d=" M 216.88 0.00 L 444.61 0.00 C 444.91 44.40 444.62 88.81 444.75 133.22 C 446.80 133.68 448.85 134.10 450.92 134.49 C 450.98 95.08 450.86 55.68 450.98 16.28 C 469.64 16.24 488.30 16.26 506.97 16.27 C 507.10 61.63 506.82 106.99 507.10 152.35 C 564.60 176.42 613.50 221.67 639.19 278.76 C 653.14 308.66 659.82 341.43 662.00 374.18 L 662.00 392.42 C 659.75 462.51 632.33 536.64 572.80 577.71 C 554.31 591.19 525.62 600.82 507.00 582.38 C 507.00 614.29 506.96 646.21 507.01 678.13 C 524.79 669.76 541.82 659.90 558.31 649.24 C 567.33 660.40 576.42 671.52 585.46 682.66 C 566.78 694.23 548.20 705.98 529.17 716.97 C 542.80 730.56 557.24 743.51 570.47 757.42 C 570.52 808.94 570.65 860.48 570.41 912.00 L 451.49 912.00 C 450.19 857.82 451.31 803.41 450.93 749.14 C 448.81 749.57 446.66 749.95 444.68 750.86 C 444.79 801.18 444.71 851.51 444.72 901.84 C 368.77 901.89 292.83 901.87 216.89 901.85 C 216.80 850.11 216.94 798.37 216.82 746.63 C 214.87 746.06 212.92 745.52 210.96 745.00 C 210.90 800.50 210.97 855.99 210.93 911.49 C 171.05 911.52 131.17 911.52 91.29 911.49 C 91.26 860.01 91.22 808.52 91.31 757.04 C 106.05 742.74 120.83 728.48 135.56 714.18 C 69.99 678.77 21.57 613.92 7.46 540.61 C -6.83 467.46 -0.47 389.25 29.96 320.85 C 55.60 263.06 100.69 214.94 154.89 182.83 C 154.92 127.31 154.85 71.79 154.92 16.28 C 173.59 16.24 192.26 16.26 210.92 16.27 C 210.97 62.74 210.90 109.21 210.96 155.67 C 212.92 154.98 214.87 154.26 216.82 153.53 C 216.93 102.35 216.81 51.18 216.88 0.00 M 221.05 4.40 C 220.95 53.59 221.02 102.77 221.01 151.96 C 291.06 127.67 367.33 119.98 440.57 132.36 C 440.57 89.72 440.60 47.07 440.55 4.43 C 367.38 4.36 294.22 4.41 221.05 4.40 M 159.06 20.42 C 158.98 73.76 159.02 127.10 159.05 180.44 C 174.36 171.69 190.27 163.99 206.65 157.43 C 206.78 111.77 206.71 66.10 206.68 20.44 C 190.81 20.39 174.94 20.42 159.06 20.42 M 455.08 20.43 C 455.03 58.77 454.98 97.12 455.11 135.47 C 471.34 139.22 487.30 144.18 502.74 150.44 C 502.75 107.11 502.79 63.77 502.72 20.43 C 486.84 20.40 470.96 20.41 455.08 20.43 M 183.57 174.49 C 128.48 201.20 80.19 243.16 49.48 296.45 C 12.25 360.43 1.03 437.08 8.82 510.02 C 15.10 569.84 40.74 628.52 85.24 669.73 C 137.07 718.63 207.36 743.25 277.08 751.76 C 346.65 758.15 419.42 756.71 485.41 731.41 C 517.58 718.42 546.72 699.32 576.07 681.08 C 569.75 673.22 563.46 665.32 556.93 657.64 C 498.64 695.15 431.01 717.60 361.89 722.67 C 323.39 727.02 284.40 722.64 246.99 713.08 C 186.51 697.65 128.03 665.26 91.82 613.20 C 52.21 557.03 43.74 484.62 52.73 417.90 C 61.08 351.50 95.40 288.58 148.29 247.26 C 232.47 182.07 348.50 156.06 451.39 186.57 C 506.27 202.31 560.02 232.46 591.35 281.63 C 611.32 312.71 619.86 350.30 618.02 387.01 C 616.87 436.94 603.61 489.41 568.46 526.55 C 556.79 539.28 542.34 548.87 527.89 558.13 C 516.97 539.65 510.40 518.95 505.23 498.23 C 527.71 474.19 558.82 456.43 574.76 427.38 C 568.49 425.60 560.69 424.76 555.44 429.42 C 532.74 446.85 510.39 464.78 487.40 481.81 C 497.39 422.60 519.35 366.48 542.06 311.25 C 534.44 308.45 524.69 307.23 517.52 311.43 C 486.55 399.47 456.87 488.01 429.08 577.10 C 426.97 587.53 441.60 593.05 447.40 584.42 C 462.23 564.56 468.12 539.77 476.76 516.90 C 489.90 535.47 495.10 558.71 509.80 576.24 C 520.15 588.47 538.49 588.80 552.03 582.07 C 585.93 566.59 611.00 536.45 628.08 504.04 C 675.05 411.60 662.13 288.87 587.63 214.37 C 538.42 163.53 468.01 137.61 398.26 133.59 C 324.89 129.51 249.90 142.31 183.57 174.49 M 221.32 210.55 C 220.60 277.78 221.18 345.14 221.03 412.42 C 226.24 412.89 234.38 414.31 234.39 421.00 C 231.69 428.40 225.88 434.22 221.04 440.31 C 220.99 463.47 220.98 486.63 221.04 509.79 C 242.71 475.14 244.85 433.15 256.98 394.98 C 262.13 379.39 284.00 382.22 295.70 388.29 C 307.13 393.55 303.66 407.93 298.56 416.60 C 289.79 433.85 278.22 451.99 281.63 472.26 C 282.51 501.84 300.84 528.51 297.53 558.53 C 295.53 574.11 285.96 593.54 268.00 593.75 C 250.12 592.28 233.94 582.22 221.01 570.29 C 221.03 613.09 220.95 655.89 221.05 698.70 C 291.38 724.52 369.00 722.28 440.57 702.78 C 440.59 666.89 440.55 631.00 440.59 595.11 C 429.87 596.51 420.52 585.50 423.07 575.18 C 428.57 556.59 435.07 538.29 440.49 519.70 C 440.69 501.07 440.50 482.43 440.58 463.80 C 417.80 489.67 392.63 513.32 366.77 536.07 C 383.28 534.45 401.96 530.98 416.93 540.07 C 426.66 547.05 420.99 561.38 411.31 565.29 C 385.89 577.73 356.77 580.02 328.96 582.17 C 308.40 583.84 294.75 558.41 307.02 542.04 C 332.37 504.67 370.72 478.94 401.56 446.48 C 385.63 447.04 369.99 453.85 353.99 451.07 C 342.98 449.12 339.06 434.02 345.97 425.96 C 354.46 417.01 367.50 415.49 378.95 412.94 C 399.45 409.43 419.59 402.66 440.58 402.92 C 440.57 332.00 440.58 261.08 440.57 190.16 C 367.94 170.11 289.77 180.98 221.32 210.55 M 444.73 191.19 C 444.72 261.90 444.75 332.61 444.72 403.31 C 446.78 403.97 448.86 404.61 450.93 405.27 C 450.92 334.50 450.95 263.73 450.92 192.97 C 448.87 192.32 446.80 191.73 444.73 191.19 M 455.07 194.19 C 455.04 265.33 455.00 336.47 455.09 407.61 C 464.89 414.25 469.52 429.34 460.65 438.63 C 450.64 448.12 456.62 462.95 455.12 475.16 C 470.62 428.24 486.62 381.46 502.60 334.70 C 502.95 294.22 502.65 253.71 502.75 213.22 C 487.55 205.30 471.44 199.23 455.07 194.19 M 211.02 215.38 C 210.86 281.33 210.94 347.28 210.97 413.23 C 212.92 412.91 214.88 412.62 216.84 412.38 C 216.88 345.82 216.87 279.26 216.85 212.71 C 214.88 213.55 212.94 214.45 211.02 215.38 M 507.01 215.32 C 507.00 250.95 506.93 286.58 507.04 322.21 C 510.09 314.84 510.94 303.66 521.20 303.24 C 530.10 302.42 545.88 300.84 548.63 311.87 C 533.93 348.96 517.93 385.76 507.16 424.29 C 506.77 435.87 507.08 447.49 507.01 459.08 C 523.55 446.67 539.44 433.30 556.32 421.42 C 564.23 418.52 582.86 418.08 581.24 430.21 C 564.00 458.63 535.28 476.99 512.12 500.07 C 516.53 516.92 521.84 533.68 529.97 549.15 C 556.32 533.78 577.87 510.44 590.82 482.80 C 608.54 445.33 613.68 402.89 611.36 361.83 C 607.86 297.87 563.09 242.89 507.01 215.32 M 159.08 247.14 C 158.97 270.22 159.00 293.30 159.08 316.38 C 162.68 309.77 162.00 299.03 170.67 296.66 C 180.39 294.61 196.96 292.82 201.28 304.00 C 186.66 342.37 169.41 380.11 159.10 420.04 C 158.93 430.71 159.04 441.39 159.05 452.07 C 174.89 439.86 190.69 427.60 206.49 415.33 C 207.00 349.45 206.58 283.48 206.69 217.57 C 190.06 226.00 173.50 235.41 159.08 247.14 M 66.77 380.85 C 54.95 423.94 52.82 469.56 59.36 513.70 C 67.99 574.94 102.83 632.14 154.90 665.95 C 154.84 631.75 155.00 597.54 154.81 563.35 C 146.82 551.04 140.25 537.88 134.01 524.61 C 125.83 546.69 119.37 571.81 100.10 587.10 C 88.49 595.59 80.01 577.37 82.72 567.71 C 105.17 487.89 128.41 408.24 154.66 329.57 C 155.19 303.08 154.76 276.52 154.88 250.00 C 112.43 282.64 80.89 329.16 66.77 380.85 M 170.48 303.45 C 139.57 390.78 114.08 479.94 88.82 569.04 C 87.46 574.12 91.24 587.69 97.90 580.90 C 118.25 561.95 123.42 533.05 133.02 508.09 C 146.03 531.97 154.04 561.53 177.67 577.37 C 195.48 585.89 207.46 567.88 218.03 556.78 C 226.39 569.00 238.92 577.80 252.41 583.56 C 260.58 586.84 271.24 590.28 278.70 583.67 C 291.23 572.50 293.42 554.08 290.53 538.37 C 285.31 511.65 272.48 485.99 275.19 458.10 C 276.69 436.38 294.44 420.02 297.18 399.01 C 291.28 388.78 272.94 386.70 264.01 394.00 C 250.40 434.31 248.88 479.39 224.70 515.69 C 215.48 527.82 207.49 542.31 193.26 549.21 C 186.98 552.59 178.37 550.24 175.76 543.31 C 167.73 525.90 163.90 506.92 159.29 488.40 C 181.64 465.21 210.98 448.26 227.99 420.27 C 221.61 418.24 213.48 417.21 208.07 422.02 C 185.37 439.53 162.89 457.36 139.96 474.57 C 150.18 415.42 171.59 359.14 194.84 304.07 C 187.33 300.72 178.15 300.44 170.48 303.45 M 360.13 424.13 C 350.31 425.23 343.54 440.06 354.37 444.67 C 374.62 448.17 394.63 436.55 415.04 441.14 C 385.44 474.17 348.83 500.23 320.14 534.14 C 313.28 542.69 304.80 554.02 310.61 565.35 C 315.75 576.81 330.38 577.01 341.02 575.21 C 364.28 572.03 388.93 570.47 409.84 558.86 C 416.36 556.10 418.41 545.91 410.53 543.48 C 389.30 536.49 366.63 542.69 345.37 546.63 C 385.51 511.17 426.54 475.61 457.82 431.75 C 463.71 418.82 448.21 406.90 436.00 409.15 C 410.37 411.69 385.02 417.73 360.13 424.13 M 149.46 459.51 C 151.24 458.18 152.98 456.81 154.76 455.49 C 154.94 449.44 155.06 443.31 154.69 437.30 C 152.47 444.05 151.15 452.18 149.46 459.51 M 496.84 466.94 C 498.80 465.49 500.73 463.99 502.66 462.48 C 502.85 455.53 502.75 448.56 502.70 441.61 C 500.41 449.97 498.62 458.46 496.84 466.94 M 211.05 450.45 C 210.81 474.94 210.97 499.44 210.97 523.93 C 212.86 521.17 215.13 518.66 216.81 515.76 C 216.93 492.07 216.83 468.37 216.86 444.68 C 214.93 446.61 213.03 448.57 211.05 450.45 M 444.79 459.09 C 444.68 474.96 444.70 490.83 444.79 506.70 C 453.33 489.34 450.61 470.09 450.92 451.43 C 448.92 454.02 446.54 456.33 444.79 459.09 M 166.12 490.37 C 171.18 508.23 173.71 527.59 183.52 543.57 C 193.25 546.45 200.87 536.15 206.59 529.59 C 206.88 504.60 206.62 479.58 206.71 454.58 C 193.37 466.72 179.06 477.79 166.12 490.37 M 478.33 531.65 C 471.65 549.89 465.53 568.61 455.11 585.13 C 454.97 622.93 455.05 660.73 455.07 698.53 C 471.27 693.29 487.69 687.62 502.70 679.78 C 502.67 645.70 503.02 611.55 502.52 577.51 C 492.19 563.50 486.63 546.81 478.33 531.65 M 210.99 573.32 C 210.88 613.88 210.95 654.43 210.95 694.99 C 212.90 695.76 214.87 696.49 216.86 697.16 C 216.87 653.81 216.85 610.45 216.87 567.09 C 214.94 569.20 212.99 571.28 210.99 573.32 M 159.02 569.03 C 159.05 602.26 158.98 635.50 159.05 668.73 C 174.08 678.43 190.05 686.68 206.69 693.24 C 206.75 654.74 206.68 616.23 206.72 577.72 C 192.88 592.38 168.65 584.82 159.02 569.03 M 444.75 594.01 C 444.72 629.89 444.72 665.76 444.74 701.64 C 446.81 701.06 448.88 700.46 450.93 699.82 C 450.96 663.16 450.88 626.50 450.97 589.85 C 449.04 591.44 446.93 592.80 444.75 594.01 M 139.39 716.34 C 124.73 730.39 110.19 744.58 95.58 758.70 C 95.37 808.13 95.52 857.57 95.51 907.01 C 132.56 907.15 169.63 907.14 206.69 907.02 C 206.66 852.58 206.87 798.13 206.58 743.70 C 183.32 736.90 160.78 727.71 139.39 716.34 M 455.06 748.09 C 455.04 801.08 455.01 854.07 455.07 907.06 C 492.16 907.10 529.25 907.15 566.34 907.04 C 566.41 857.69 566.37 808.34 566.36 758.99 C 552.82 745.54 539.01 732.34 525.29 719.08 C 503.14 731.50 479.60 741.51 455.06 748.09 M 221.04 747.71 C 220.98 797.71 220.98 847.71 221.04 897.71 C 294.21 897.70 367.38 897.75 440.55 897.68 C 440.59 848.99 440.58 800.30 440.56 751.61 C 368.25 764.97 292.66 765.54 221.04 747.71 Z" /> -<path fill="#fbfcfd" opacity="1.00" d=" M 246.79 504.76 C 248.88 500.62 254.95 501.91 255.56 506.38 C 260.06 522.25 266.90 539.43 262.86 555.85 C 249.58 560.42 240.22 536.98 225.74 546.18 C 236.48 534.43 238.83 518.08 246.79 504.76 M 238.72 538.33 C 245.56 541.66 251.42 546.59 257.97 550.38 C 258.34 536.81 254.47 523.63 250.41 510.82 C 246.08 519.80 243.22 529.42 238.72 538.33 Z" /> -</g> -<g id="#28166fff"> -<path fill="#28166f" opacity="1.00" d=" M 221.05 4.40 C 294.22 4.41 367.38 4.36 440.55 4.43 C 440.60 47.07 440.57 89.72 440.57 132.36 C 367.33 119.98 291.06 127.67 221.01 151.96 C 221.02 102.77 220.95 53.59 221.05 4.40 Z" /> -<path fill="#28166f" opacity="1.00" d=" M 159.06 20.42 C 174.94 20.42 190.81 20.39 206.68 20.44 C 206.71 66.10 206.78 111.77 206.65 157.43 C 190.27 163.99 174.36 171.69 159.05 180.44 C 159.02 127.10 158.98 73.76 159.06 20.42 Z" /> -<path fill="#28166f" opacity="1.00" d=" M 455.08 20.43 C 470.96 20.41 486.84 20.40 502.72 20.43 C 502.79 63.77 502.75 107.11 502.74 150.44 C 487.30 144.18 471.34 139.22 455.11 135.47 C 454.98 97.12 455.03 58.77 455.08 20.43 Z" /> -<path fill="#28166f" opacity="1.00" d=" M 221.32 210.55 C 289.77 180.98 367.94 170.11 440.57 190.16 C 440.58 261.08 440.57 332.00 440.58 402.92 C 419.59 402.66 399.45 409.43 378.95 412.94 C 367.50 415.49 354.46 417.01 345.97 425.96 C 339.06 434.02 342.98 449.12 353.99 451.07 C 369.99 453.85 385.63 447.04 401.56 446.48 C 370.72 478.94 332.37 504.67 307.02 542.04 C 294.75 558.41 308.40 583.84 328.96 582.17 C 356.77 580.02 385.89 577.73 411.31 565.29 C 420.99 561.38 426.66 547.05 416.93 540.07 C 401.96 530.98 383.28 534.45 366.77 536.07 C 392.63 513.32 417.80 489.67 440.58 463.80 C 440.50 482.43 440.69 501.07 440.49 519.70 C 435.07 538.29 428.57 556.59 423.07 575.18 C 420.52 585.50 429.87 596.51 440.59 595.11 C 440.55 631.00 440.59 666.89 440.57 702.78 C 369.00 722.28 291.38 724.52 221.05 698.70 C 220.95 655.89 221.03 613.09 221.01 570.29 C 233.94 582.22 250.12 592.28 268.00 593.75 C 285.96 593.54 295.53 574.11 297.53 558.53 C 300.84 528.51 282.51 501.84 281.63 472.26 C 278.22 451.99 289.79 433.85 298.56 416.60 C 303.66 407.93 307.13 393.55 295.70 388.29 C 284.00 382.22 262.13 379.39 256.98 394.98 C 244.85 433.15 242.71 475.14 221.04 509.79 C 220.98 486.63 220.99 463.47 221.04 440.31 C 225.88 434.22 231.69 428.40 234.39 421.00 C 234.38 414.31 226.24 412.89 221.03 412.42 C 221.18 345.14 220.60 277.78 221.32 210.55 Z" /> -<path fill="#28166f" opacity="1.00" d=" M 455.07 194.19 C 471.44 199.23 487.55 205.30 502.75 213.22 C 502.65 253.71 502.95 294.22 502.60 334.70 C 486.62 381.46 470.62 428.24 455.12 475.16 C 456.62 462.95 450.64 448.12 460.65 438.63 C 469.52 429.34 464.89 414.25 455.09 407.61 C 455.00 336.47 455.04 265.33 455.07 194.19 Z" /> -<path fill="#28166f" opacity="1.00" d=" M 159.08 247.14 C 173.50 235.41 190.06 226.00 206.69 217.57 C 206.58 283.48 207.00 349.45 206.49 415.33 C 190.69 427.60 174.89 439.86 159.05 452.07 C 159.04 441.39 158.93 430.71 159.10 420.04 C 169.41 380.11 186.66 342.37 201.28 304.00 C 196.96 292.82 180.39 294.61 170.67 296.66 C 162.00 299.03 162.68 309.77 159.08 316.38 C 159.00 293.30 158.97 270.22 159.08 247.14 Z" /> -<path fill="#28166f" opacity="1.00" d=" M 496.84 466.94 C 498.62 458.46 500.41 449.97 502.70 441.61 C 502.75 448.56 502.85 455.53 502.66 462.48 C 500.73 463.99 498.80 465.49 496.84 466.94 Z" /> -<path fill="#28166f" opacity="1.00" d=" M 166.12 490.37 C 179.06 477.79 193.37 466.72 206.71 454.58 C 206.62 479.58 206.88 504.60 206.59 529.59 C 200.87 536.15 193.25 546.45 183.52 543.57 C 173.71 527.59 171.18 508.23 166.12 490.37 Z" /> -<path fill="#28166f" opacity="1.00" d=" M 238.72 538.33 C 243.22 529.42 246.08 519.80 250.41 510.82 C 254.47 523.63 258.34 536.81 257.97 550.38 C 251.42 546.59 245.56 541.66 238.72 538.33 Z" /> -<path fill="#28166f" opacity="1.00" d=" M 478.33 531.65 C 486.63 546.81 492.19 563.50 502.52 577.51 C 503.02 611.55 502.67 645.70 502.70 679.78 C 487.69 687.62 471.27 693.29 455.07 698.53 C 455.05 660.73 454.97 622.93 455.11 585.13 C 465.53 568.61 471.65 549.89 478.33 531.65 Z" /> -<path fill="#28166f" opacity="1.00" d=" M 159.02 569.03 C 168.65 584.82 192.88 592.38 206.72 577.72 C 206.68 616.23 206.75 654.74 206.69 693.24 C 190.05 686.68 174.08 678.43 159.05 668.73 C 158.98 635.50 159.05 602.26 159.02 569.03 Z" /> -<path fill="#28166f" opacity="1.00" d=" M 139.39 716.34 C 160.78 727.71 183.32 736.90 206.58 743.70 C 206.87 798.13 206.66 852.58 206.69 907.02 C 169.63 907.14 132.56 907.15 95.51 907.01 C 95.52 857.57 95.37 808.13 95.58 758.70 C 110.19 744.58 124.73 730.39 139.39 716.34 Z" /> -<path fill="#28166f" opacity="1.00" d=" M 455.06 748.09 C 479.60 741.51 503.14 731.50 525.29 719.08 C 539.01 732.34 552.82 745.54 566.36 758.99 C 566.37 808.34 566.41 857.69 566.34 907.04 C 529.25 907.15 492.16 907.10 455.07 907.06 C 455.01 854.07 455.04 801.08 455.06 748.09 Z" /> -<path fill="#28166f" opacity="1.00" d=" M 221.04 747.71 C 292.66 765.54 368.25 764.97 440.56 751.61 C 440.58 800.30 440.59 848.99 440.55 897.68 C 367.38 897.75 294.21 897.70 221.04 897.71 C 220.98 847.71 220.98 797.71 221.04 747.71 Z" /> -</g> -<g id="#6a7cb3fd"> -<path fill="#6a7cb3" opacity="1.00" d=" M 183.57 174.49 C 249.90 142.31 324.89 129.51 398.26 133.59 C 468.01 137.61 538.42 163.53 587.63 214.37 C 662.13 288.87 675.05 411.60 628.08 504.04 C 611.00 536.45 585.93 566.59 552.03 582.07 C 538.49 588.80 520.15 588.47 509.80 576.24 C 495.10 558.71 489.90 535.47 476.76 516.90 C 468.12 539.77 462.23 564.56 447.40 584.42 C 441.60 593.05 426.97 587.53 429.08 577.10 C 456.87 488.01 486.55 399.47 517.52 311.43 C 524.69 307.23 534.44 308.45 542.06 311.25 C 519.35 366.48 497.39 422.60 487.40 481.81 C 510.39 464.78 532.74 446.85 555.44 429.42 C 560.69 424.76 568.49 425.60 574.76 427.38 C 558.82 456.43 527.71 474.19 505.23 498.23 C 510.40 518.95 516.97 539.65 527.89 558.13 C 542.34 548.87 556.79 539.28 568.46 526.55 C 603.61 489.41 616.87 436.94 618.02 387.01 C 619.86 350.30 611.32 312.71 591.35 281.63 C 560.02 232.46 506.27 202.31 451.39 186.57 C 348.50 156.06 232.47 182.07 148.29 247.26 C 95.40 288.58 61.08 351.50 52.73 417.90 C 43.74 484.62 52.21 557.03 91.82 613.20 C 128.03 665.26 186.51 697.65 246.99 713.08 C 284.40 722.64 323.39 727.02 361.89 722.67 C 431.01 717.60 498.64 695.15 556.93 657.64 C 563.46 665.32 569.75 673.22 576.07 681.08 C 546.72 699.32 517.58 718.42 485.41 731.41 C 419.42 756.71 346.65 758.15 277.08 751.76 C 207.36 743.25 137.07 718.63 85.24 669.73 C 40.74 628.52 15.10 569.84 8.82 510.02 C 1.03 437.08 12.25 360.43 49.48 296.45 C 80.19 243.16 128.48 201.20 183.57 174.49 Z" /> -<path fill="#6a7cb3" opacity="1.00" d=" M 170.48 303.45 C 178.15 300.44 187.33 300.72 194.84 304.07 C 171.59 359.14 150.18 415.42 139.96 474.57 C 162.89 457.36 185.37 439.53 208.07 422.02 C 213.48 417.21 221.61 418.24 227.99 420.27 C 210.98 448.26 181.64 465.21 159.29 488.40 C 163.90 506.92 167.73 525.90 175.76 543.31 C 178.37 550.24 186.98 552.59 193.26 549.21 C 207.49 542.31 215.48 527.82 224.70 515.69 C 248.88 479.39 250.40 434.31 264.01 394.00 C 272.94 386.70 291.28 388.78 297.18 399.01 C 294.44 420.02 276.69 436.38 275.19 458.10 C 272.48 485.99 285.31 511.65 290.53 538.37 C 293.42 554.08 291.23 572.50 278.70 583.67 C 271.24 590.28 260.58 586.84 252.41 583.56 C 238.92 577.80 226.39 569.00 218.03 556.78 C 207.46 567.88 195.48 585.89 177.67 577.37 C 154.04 561.53 146.03 531.97 133.02 508.09 C 123.42 533.05 118.25 561.95 97.90 580.90 C 91.24 587.69 87.46 574.12 88.82 569.04 C 114.08 479.94 139.57 390.78 170.48 303.45 M 246.79 504.76 C 238.83 518.08 236.48 534.43 225.74 546.18 C 240.22 536.98 249.58 560.42 262.86 555.85 C 266.90 539.43 260.06 522.25 255.56 506.38 C 254.95 501.91 248.88 500.62 246.79 504.76 Z" /> -<path fill="#6a7cb3" opacity="1.00" d=" M 360.13 424.13 C 385.02 417.73 410.37 411.69 436.00 409.15 C 448.21 406.90 463.71 418.82 457.82 431.75 C 426.54 475.61 385.51 511.17 345.37 546.63 C 366.63 542.69 389.30 536.49 410.53 543.48 C 418.41 545.91 416.36 556.10 409.84 558.86 C 388.93 570.47 364.28 572.03 341.02 575.21 C 330.38 577.01 315.75 576.81 310.61 565.35 C 304.80 554.02 313.28 542.69 320.14 534.14 C 348.83 500.23 385.44 474.17 415.04 441.14 C 394.63 436.55 374.62 448.17 354.37 444.67 C 343.54 440.06 350.31 425.23 360.13 424.13 Z" /> -</g> -</svg> +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="662pt" height="912pt" viewBox="0 0 662 912" version="1.1" xmlns="http://www.w3.org/2000/svg"> +<g id="#fbfcfdfe"> +<path fill="#fbfcfd" opacity="1.00" d=" M 216.88 0.00 L 444.61 0.00 C 444.91 44.40 444.62 88.81 444.75 133.22 C 446.80 133.68 448.85 134.10 450.92 134.49 C 450.98 95.08 450.86 55.68 450.98 16.28 C 469.64 16.24 488.30 16.26 506.97 16.27 C 507.10 61.63 506.82 106.99 507.10 152.35 C 564.60 176.42 613.50 221.67 639.19 278.76 C 653.14 308.66 659.82 341.43 662.00 374.18 L 662.00 392.42 C 659.75 462.51 632.33 536.64 572.80 577.71 C 554.31 591.19 525.62 600.82 507.00 582.38 C 507.00 614.29 506.96 646.21 507.01 678.13 C 524.79 669.76 541.82 659.90 558.31 649.24 C 567.33 660.40 576.42 671.52 585.46 682.66 C 566.78 694.23 548.20 705.98 529.17 716.97 C 542.80 730.56 557.24 743.51 570.47 757.42 C 570.52 808.94 570.65 860.48 570.41 912.00 L 451.49 912.00 C 450.19 857.82 451.31 803.41 450.93 749.14 C 448.81 749.57 446.66 749.95 444.68 750.86 C 444.79 801.18 444.71 851.51 444.72 901.84 C 368.77 901.89 292.83 901.87 216.89 901.85 C 216.80 850.11 216.94 798.37 216.82 746.63 C 214.87 746.06 212.92 745.52 210.96 745.00 C 210.90 800.50 210.97 855.99 210.93 911.49 C 171.05 911.52 131.17 911.52 91.29 911.49 C 91.26 860.01 91.22 808.52 91.31 757.04 C 106.05 742.74 120.83 728.48 135.56 714.18 C 69.99 678.77 21.57 613.92 7.46 540.61 C -6.83 467.46 -0.47 389.25 29.96 320.85 C 55.60 263.06 100.69 214.94 154.89 182.83 C 154.92 127.31 154.85 71.79 154.92 16.28 C 173.59 16.24 192.26 16.26 210.92 16.27 C 210.97 62.74 210.90 109.21 210.96 155.67 C 212.92 154.98 214.87 154.26 216.82 153.53 C 216.93 102.35 216.81 51.18 216.88 0.00 M 221.05 4.40 C 220.95 53.59 221.02 102.77 221.01 151.96 C 291.06 127.67 367.33 119.98 440.57 132.36 C 440.57 89.72 440.60 47.07 440.55 4.43 C 367.38 4.36 294.22 4.41 221.05 4.40 M 159.06 20.42 C 158.98 73.76 159.02 127.10 159.05 180.44 C 174.36 171.69 190.27 163.99 206.65 157.43 C 206.78 111.77 206.71 66.10 206.68 20.44 C 190.81 20.39 174.94 20.42 159.06 20.42 M 455.08 20.43 C 455.03 58.77 454.98 97.12 455.11 135.47 C 471.34 139.22 487.30 144.18 502.74 150.44 C 502.75 107.11 502.79 63.77 502.72 20.43 C 486.84 20.40 470.96 20.41 455.08 20.43 M 183.57 174.49 C 128.48 201.20 80.19 243.16 49.48 296.45 C 12.25 360.43 1.03 437.08 8.82 510.02 C 15.10 569.84 40.74 628.52 85.24 669.73 C 137.07 718.63 207.36 743.25 277.08 751.76 C 346.65 758.15 419.42 756.71 485.41 731.41 C 517.58 718.42 546.72 699.32 576.07 681.08 C 569.75 673.22 563.46 665.32 556.93 657.64 C 498.64 695.15 431.01 717.60 361.89 722.67 C 323.39 727.02 284.40 722.64 246.99 713.08 C 186.51 697.65 128.03 665.26 91.82 613.20 C 52.21 557.03 43.74 484.62 52.73 417.90 C 61.08 351.50 95.40 288.58 148.29 247.26 C 232.47 182.07 348.50 156.06 451.39 186.57 C 506.27 202.31 560.02 232.46 591.35 281.63 C 611.32 312.71 619.86 350.30 618.02 387.01 C 616.87 436.94 603.61 489.41 568.46 526.55 C 556.79 539.28 542.34 548.87 527.89 558.13 C 516.97 539.65 510.40 518.95 505.23 498.23 C 527.71 474.19 558.82 456.43 574.76 427.38 C 568.49 425.60 560.69 424.76 555.44 429.42 C 532.74 446.85 510.39 464.78 487.40 481.81 C 497.39 422.60 519.35 366.48 542.06 311.25 C 534.44 308.45 524.69 307.23 517.52 311.43 C 486.55 399.47 456.87 488.01 429.08 577.10 C 426.97 587.53 441.60 593.05 447.40 584.42 C 462.23 564.56 468.12 539.77 476.76 516.90 C 489.90 535.47 495.10 558.71 509.80 576.24 C 520.15 588.47 538.49 588.80 552.03 582.07 C 585.93 566.59 611.00 536.45 628.08 504.04 C 675.05 411.60 662.13 288.87 587.63 214.37 C 538.42 163.53 468.01 137.61 398.26 133.59 C 324.89 129.51 249.90 142.31 183.57 174.49 M 221.32 210.55 C 220.60 277.78 221.18 345.14 221.03 412.42 C 226.24 412.89 234.38 414.31 234.39 421.00 C 231.69 428.40 225.88 434.22 221.04 440.31 C 220.99 463.47 220.98 486.63 221.04 509.79 C 242.71 475.14 244.85 433.15 256.98 394.98 C 262.13 379.39 284.00 382.22 295.70 388.29 C 307.13 393.55 303.66 407.93 298.56 416.60 C 289.79 433.85 278.22 451.99 281.63 472.26 C 282.51 501.84 300.84 528.51 297.53 558.53 C 295.53 574.11 285.96 593.54 268.00 593.75 C 250.12 592.28 233.94 582.22 221.01 570.29 C 221.03 613.09 220.95 655.89 221.05 698.70 C 291.38 724.52 369.00 722.28 440.57 702.78 C 440.59 666.89 440.55 631.00 440.59 595.11 C 429.87 596.51 420.52 585.50 423.07 575.18 C 428.57 556.59 435.07 538.29 440.49 519.70 C 440.69 501.07 440.50 482.43 440.58 463.80 C 417.80 489.67 392.63 513.32 366.77 536.07 C 383.28 534.45 401.96 530.98 416.93 540.07 C 426.66 547.05 420.99 561.38 411.31 565.29 C 385.89 577.73 356.77 580.02 328.96 582.17 C 308.40 583.84 294.75 558.41 307.02 542.04 C 332.37 504.67 370.72 478.94 401.56 446.48 C 385.63 447.04 369.99 453.85 353.99 451.07 C 342.98 449.12 339.06 434.02 345.97 425.96 C 354.46 417.01 367.50 415.49 378.95 412.94 C 399.45 409.43 419.59 402.66 440.58 402.92 C 440.57 332.00 440.58 261.08 440.57 190.16 C 367.94 170.11 289.77 180.98 221.32 210.55 M 444.73 191.19 C 444.72 261.90 444.75 332.61 444.72 403.31 C 446.78 403.97 448.86 404.61 450.93 405.27 C 450.92 334.50 450.95 263.73 450.92 192.97 C 448.87 192.32 446.80 191.73 444.73 191.19 M 455.07 194.19 C 455.04 265.33 455.00 336.47 455.09 407.61 C 464.89 414.25 469.52 429.34 460.65 438.63 C 450.64 448.12 456.62 462.95 455.12 475.16 C 470.62 428.24 486.62 381.46 502.60 334.70 C 502.95 294.22 502.65 253.71 502.75 213.22 C 487.55 205.30 471.44 199.23 455.07 194.19 M 211.02 215.38 C 210.86 281.33 210.94 347.28 210.97 413.23 C 212.92 412.91 214.88 412.62 216.84 412.38 C 216.88 345.82 216.87 279.26 216.85 212.71 C 214.88 213.55 212.94 214.45 211.02 215.38 M 507.01 215.32 C 507.00 250.95 506.93 286.58 507.04 322.21 C 510.09 314.84 510.94 303.66 521.20 303.24 C 530.10 302.42 545.88 300.84 548.63 311.87 C 533.93 348.96 517.93 385.76 507.16 424.29 C 506.77 435.87 507.08 447.49 507.01 459.08 C 523.55 446.67 539.44 433.30 556.32 421.42 C 564.23 418.52 582.86 418.08 581.24 430.21 C 564.00 458.63 535.28 476.99 512.12 500.07 C 516.53 516.92 521.84 533.68 529.97 549.15 C 556.32 533.78 577.87 510.44 590.82 482.80 C 608.54 445.33 613.68 402.89 611.36 361.83 C 607.86 297.87 563.09 242.89 507.01 215.32 M 159.08 247.14 C 158.97 270.22 159.00 293.30 159.08 316.38 C 162.68 309.77 162.00 299.03 170.67 296.66 C 180.39 294.61 196.96 292.82 201.28 304.00 C 186.66 342.37 169.41 380.11 159.10 420.04 C 158.93 430.71 159.04 441.39 159.05 452.07 C 174.89 439.86 190.69 427.60 206.49 415.33 C 207.00 349.45 206.58 283.48 206.69 217.57 C 190.06 226.00 173.50 235.41 159.08 247.14 M 66.77 380.85 C 54.95 423.94 52.82 469.56 59.36 513.70 C 67.99 574.94 102.83 632.14 154.90 665.95 C 154.84 631.75 155.00 597.54 154.81 563.35 C 146.82 551.04 140.25 537.88 134.01 524.61 C 125.83 546.69 119.37 571.81 100.10 587.10 C 88.49 595.59 80.01 577.37 82.72 567.71 C 105.17 487.89 128.41 408.24 154.66 329.57 C 155.19 303.08 154.76 276.52 154.88 250.00 C 112.43 282.64 80.89 329.16 66.77 380.85 M 170.48 303.45 C 139.57 390.78 114.08 479.94 88.82 569.04 C 87.46 574.12 91.24 587.69 97.90 580.90 C 118.25 561.95 123.42 533.05 133.02 508.09 C 146.03 531.97 154.04 561.53 177.67 577.37 C 195.48 585.89 207.46 567.88 218.03 556.78 C 226.39 569.00 238.92 577.80 252.41 583.56 C 260.58 586.84 271.24 590.28 278.70 583.67 C 291.23 572.50 293.42 554.08 290.53 538.37 C 285.31 511.65 272.48 485.99 275.19 458.10 C 276.69 436.38 294.44 420.02 297.18 399.01 C 291.28 388.78 272.94 386.70 264.01 394.00 C 250.40 434.31 248.88 479.39 224.70 515.69 C 215.48 527.82 207.49 542.31 193.26 549.21 C 186.98 552.59 178.37 550.24 175.76 543.31 C 167.73 525.90 163.90 506.92 159.29 488.40 C 181.64 465.21 210.98 448.26 227.99 420.27 C 221.61 418.24 213.48 417.21 208.07 422.02 C 185.37 439.53 162.89 457.36 139.96 474.57 C 150.18 415.42 171.59 359.14 194.84 304.07 C 187.33 300.72 178.15 300.44 170.48 303.45 M 360.13 424.13 C 350.31 425.23 343.54 440.06 354.37 444.67 C 374.62 448.17 394.63 436.55 415.04 441.14 C 385.44 474.17 348.83 500.23 320.14 534.14 C 313.28 542.69 304.80 554.02 310.61 565.35 C 315.75 576.81 330.38 577.01 341.02 575.21 C 364.28 572.03 388.93 570.47 409.84 558.86 C 416.36 556.10 418.41 545.91 410.53 543.48 C 389.30 536.49 366.63 542.69 345.37 546.63 C 385.51 511.17 426.54 475.61 457.82 431.75 C 463.71 418.82 448.21 406.90 436.00 409.15 C 410.37 411.69 385.02 417.73 360.13 424.13 M 149.46 459.51 C 151.24 458.18 152.98 456.81 154.76 455.49 C 154.94 449.44 155.06 443.31 154.69 437.30 C 152.47 444.05 151.15 452.18 149.46 459.51 M 496.84 466.94 C 498.80 465.49 500.73 463.99 502.66 462.48 C 502.85 455.53 502.75 448.56 502.70 441.61 C 500.41 449.97 498.62 458.46 496.84 466.94 M 211.05 450.45 C 210.81 474.94 210.97 499.44 210.97 523.93 C 212.86 521.17 215.13 518.66 216.81 515.76 C 216.93 492.07 216.83 468.37 216.86 444.68 C 214.93 446.61 213.03 448.57 211.05 450.45 M 444.79 459.09 C 444.68 474.96 444.70 490.83 444.79 506.70 C 453.33 489.34 450.61 470.09 450.92 451.43 C 448.92 454.02 446.54 456.33 444.79 459.09 M 166.12 490.37 C 171.18 508.23 173.71 527.59 183.52 543.57 C 193.25 546.45 200.87 536.15 206.59 529.59 C 206.88 504.60 206.62 479.58 206.71 454.58 C 193.37 466.72 179.06 477.79 166.12 490.37 M 478.33 531.65 C 471.65 549.89 465.53 568.61 455.11 585.13 C 454.97 622.93 455.05 660.73 455.07 698.53 C 471.27 693.29 487.69 687.62 502.70 679.78 C 502.67 645.70 503.02 611.55 502.52 577.51 C 492.19 563.50 486.63 546.81 478.33 531.65 M 210.99 573.32 C 210.88 613.88 210.95 654.43 210.95 694.99 C 212.90 695.76 214.87 696.49 216.86 697.16 C 216.87 653.81 216.85 610.45 216.87 567.09 C 214.94 569.20 212.99 571.28 210.99 573.32 M 159.02 569.03 C 159.05 602.26 158.98 635.50 159.05 668.73 C 174.08 678.43 190.05 686.68 206.69 693.24 C 206.75 654.74 206.68 616.23 206.72 577.72 C 192.88 592.38 168.65 584.82 159.02 569.03 M 444.75 594.01 C 444.72 629.89 444.72 665.76 444.74 701.64 C 446.81 701.06 448.88 700.46 450.93 699.82 C 450.96 663.16 450.88 626.50 450.97 589.85 C 449.04 591.44 446.93 592.80 444.75 594.01 M 139.39 716.34 C 124.73 730.39 110.19 744.58 95.58 758.70 C 95.37 808.13 95.52 857.57 95.51 907.01 C 132.56 907.15 169.63 907.14 206.69 907.02 C 206.66 852.58 206.87 798.13 206.58 743.70 C 183.32 736.90 160.78 727.71 139.39 716.34 M 455.06 748.09 C 455.04 801.08 455.01 854.07 455.07 907.06 C 492.16 907.10 529.25 907.15 566.34 907.04 C 566.41 857.69 566.37 808.34 566.36 758.99 C 552.82 745.54 539.01 732.34 525.29 719.08 C 503.14 731.50 479.60 741.51 455.06 748.09 M 221.04 747.71 C 220.98 797.71 220.98 847.71 221.04 897.71 C 294.21 897.70 367.38 897.75 440.55 897.68 C 440.59 848.99 440.58 800.30 440.56 751.61 C 368.25 764.97 292.66 765.54 221.04 747.71 Z" /> +<path fill="#fbfcfd" opacity="1.00" d=" M 246.79 504.76 C 248.88 500.62 254.95 501.91 255.56 506.38 C 260.06 522.25 266.90 539.43 262.86 555.85 C 249.58 560.42 240.22 536.98 225.74 546.18 C 236.48 534.43 238.83 518.08 246.79 504.76 M 238.72 538.33 C 245.56 541.66 251.42 546.59 257.97 550.38 C 258.34 536.81 254.47 523.63 250.41 510.82 C 246.08 519.80 243.22 529.42 238.72 538.33 Z" /> +</g> +<g id="#28166fff"> +<path fill="#28166f" opacity="1.00" d=" M 221.05 4.40 C 294.22 4.41 367.38 4.36 440.55 4.43 C 440.60 47.07 440.57 89.72 440.57 132.36 C 367.33 119.98 291.06 127.67 221.01 151.96 C 221.02 102.77 220.95 53.59 221.05 4.40 Z" /> +<path fill="#28166f" opacity="1.00" d=" M 159.06 20.42 C 174.94 20.42 190.81 20.39 206.68 20.44 C 206.71 66.10 206.78 111.77 206.65 157.43 C 190.27 163.99 174.36 171.69 159.05 180.44 C 159.02 127.10 158.98 73.76 159.06 20.42 Z" /> +<path fill="#28166f" opacity="1.00" d=" M 455.08 20.43 C 470.96 20.41 486.84 20.40 502.72 20.43 C 502.79 63.77 502.75 107.11 502.74 150.44 C 487.30 144.18 471.34 139.22 455.11 135.47 C 454.98 97.12 455.03 58.77 455.08 20.43 Z" /> +<path fill="#28166f" opacity="1.00" d=" M 221.32 210.55 C 289.77 180.98 367.94 170.11 440.57 190.16 C 440.58 261.08 440.57 332.00 440.58 402.92 C 419.59 402.66 399.45 409.43 378.95 412.94 C 367.50 415.49 354.46 417.01 345.97 425.96 C 339.06 434.02 342.98 449.12 353.99 451.07 C 369.99 453.85 385.63 447.04 401.56 446.48 C 370.72 478.94 332.37 504.67 307.02 542.04 C 294.75 558.41 308.40 583.84 328.96 582.17 C 356.77 580.02 385.89 577.73 411.31 565.29 C 420.99 561.38 426.66 547.05 416.93 540.07 C 401.96 530.98 383.28 534.45 366.77 536.07 C 392.63 513.32 417.80 489.67 440.58 463.80 C 440.50 482.43 440.69 501.07 440.49 519.70 C 435.07 538.29 428.57 556.59 423.07 575.18 C 420.52 585.50 429.87 596.51 440.59 595.11 C 440.55 631.00 440.59 666.89 440.57 702.78 C 369.00 722.28 291.38 724.52 221.05 698.70 C 220.95 655.89 221.03 613.09 221.01 570.29 C 233.94 582.22 250.12 592.28 268.00 593.75 C 285.96 593.54 295.53 574.11 297.53 558.53 C 300.84 528.51 282.51 501.84 281.63 472.26 C 278.22 451.99 289.79 433.85 298.56 416.60 C 303.66 407.93 307.13 393.55 295.70 388.29 C 284.00 382.22 262.13 379.39 256.98 394.98 C 244.85 433.15 242.71 475.14 221.04 509.79 C 220.98 486.63 220.99 463.47 221.04 440.31 C 225.88 434.22 231.69 428.40 234.39 421.00 C 234.38 414.31 226.24 412.89 221.03 412.42 C 221.18 345.14 220.60 277.78 221.32 210.55 Z" /> +<path fill="#28166f" opacity="1.00" d=" M 455.07 194.19 C 471.44 199.23 487.55 205.30 502.75 213.22 C 502.65 253.71 502.95 294.22 502.60 334.70 C 486.62 381.46 470.62 428.24 455.12 475.16 C 456.62 462.95 450.64 448.12 460.65 438.63 C 469.52 429.34 464.89 414.25 455.09 407.61 C 455.00 336.47 455.04 265.33 455.07 194.19 Z" /> +<path fill="#28166f" opacity="1.00" d=" M 159.08 247.14 C 173.50 235.41 190.06 226.00 206.69 217.57 C 206.58 283.48 207.00 349.45 206.49 415.33 C 190.69 427.60 174.89 439.86 159.05 452.07 C 159.04 441.39 158.93 430.71 159.10 420.04 C 169.41 380.11 186.66 342.37 201.28 304.00 C 196.96 292.82 180.39 294.61 170.67 296.66 C 162.00 299.03 162.68 309.77 159.08 316.38 C 159.00 293.30 158.97 270.22 159.08 247.14 Z" /> +<path fill="#28166f" opacity="1.00" d=" M 496.84 466.94 C 498.62 458.46 500.41 449.97 502.70 441.61 C 502.75 448.56 502.85 455.53 502.66 462.48 C 500.73 463.99 498.80 465.49 496.84 466.94 Z" /> +<path fill="#28166f" opacity="1.00" d=" M 166.12 490.37 C 179.06 477.79 193.37 466.72 206.71 454.58 C 206.62 479.58 206.88 504.60 206.59 529.59 C 200.87 536.15 193.25 546.45 183.52 543.57 C 173.71 527.59 171.18 508.23 166.12 490.37 Z" /> +<path fill="#28166f" opacity="1.00" d=" M 238.72 538.33 C 243.22 529.42 246.08 519.80 250.41 510.82 C 254.47 523.63 258.34 536.81 257.97 550.38 C 251.42 546.59 245.56 541.66 238.72 538.33 Z" /> +<path fill="#28166f" opacity="1.00" d=" M 478.33 531.65 C 486.63 546.81 492.19 563.50 502.52 577.51 C 503.02 611.55 502.67 645.70 502.70 679.78 C 487.69 687.62 471.27 693.29 455.07 698.53 C 455.05 660.73 454.97 622.93 455.11 585.13 C 465.53 568.61 471.65 549.89 478.33 531.65 Z" /> +<path fill="#28166f" opacity="1.00" d=" M 159.02 569.03 C 168.65 584.82 192.88 592.38 206.72 577.72 C 206.68 616.23 206.75 654.74 206.69 693.24 C 190.05 686.68 174.08 678.43 159.05 668.73 C 158.98 635.50 159.05 602.26 159.02 569.03 Z" /> +<path fill="#28166f" opacity="1.00" d=" M 139.39 716.34 C 160.78 727.71 183.32 736.90 206.58 743.70 C 206.87 798.13 206.66 852.58 206.69 907.02 C 169.63 907.14 132.56 907.15 95.51 907.01 C 95.52 857.57 95.37 808.13 95.58 758.70 C 110.19 744.58 124.73 730.39 139.39 716.34 Z" /> +<path fill="#28166f" opacity="1.00" d=" M 455.06 748.09 C 479.60 741.51 503.14 731.50 525.29 719.08 C 539.01 732.34 552.82 745.54 566.36 758.99 C 566.37 808.34 566.41 857.69 566.34 907.04 C 529.25 907.15 492.16 907.10 455.07 907.06 C 455.01 854.07 455.04 801.08 455.06 748.09 Z" /> +<path fill="#28166f" opacity="1.00" d=" M 221.04 747.71 C 292.66 765.54 368.25 764.97 440.56 751.61 C 440.58 800.30 440.59 848.99 440.55 897.68 C 367.38 897.75 294.21 897.70 221.04 897.71 C 220.98 847.71 220.98 797.71 221.04 747.71 Z" /> +</g> +<g id="#6a7cb3fd"> +<path fill="#6a7cb3" opacity="1.00" d=" M 183.57 174.49 C 249.90 142.31 324.89 129.51 398.26 133.59 C 468.01 137.61 538.42 163.53 587.63 214.37 C 662.13 288.87 675.05 411.60 628.08 504.04 C 611.00 536.45 585.93 566.59 552.03 582.07 C 538.49 588.80 520.15 588.47 509.80 576.24 C 495.10 558.71 489.90 535.47 476.76 516.90 C 468.12 539.77 462.23 564.56 447.40 584.42 C 441.60 593.05 426.97 587.53 429.08 577.10 C 456.87 488.01 486.55 399.47 517.52 311.43 C 524.69 307.23 534.44 308.45 542.06 311.25 C 519.35 366.48 497.39 422.60 487.40 481.81 C 510.39 464.78 532.74 446.85 555.44 429.42 C 560.69 424.76 568.49 425.60 574.76 427.38 C 558.82 456.43 527.71 474.19 505.23 498.23 C 510.40 518.95 516.97 539.65 527.89 558.13 C 542.34 548.87 556.79 539.28 568.46 526.55 C 603.61 489.41 616.87 436.94 618.02 387.01 C 619.86 350.30 611.32 312.71 591.35 281.63 C 560.02 232.46 506.27 202.31 451.39 186.57 C 348.50 156.06 232.47 182.07 148.29 247.26 C 95.40 288.58 61.08 351.50 52.73 417.90 C 43.74 484.62 52.21 557.03 91.82 613.20 C 128.03 665.26 186.51 697.65 246.99 713.08 C 284.40 722.64 323.39 727.02 361.89 722.67 C 431.01 717.60 498.64 695.15 556.93 657.64 C 563.46 665.32 569.75 673.22 576.07 681.08 C 546.72 699.32 517.58 718.42 485.41 731.41 C 419.42 756.71 346.65 758.15 277.08 751.76 C 207.36 743.25 137.07 718.63 85.24 669.73 C 40.74 628.52 15.10 569.84 8.82 510.02 C 1.03 437.08 12.25 360.43 49.48 296.45 C 80.19 243.16 128.48 201.20 183.57 174.49 Z" /> +<path fill="#6a7cb3" opacity="1.00" d=" M 170.48 303.45 C 178.15 300.44 187.33 300.72 194.84 304.07 C 171.59 359.14 150.18 415.42 139.96 474.57 C 162.89 457.36 185.37 439.53 208.07 422.02 C 213.48 417.21 221.61 418.24 227.99 420.27 C 210.98 448.26 181.64 465.21 159.29 488.40 C 163.90 506.92 167.73 525.90 175.76 543.31 C 178.37 550.24 186.98 552.59 193.26 549.21 C 207.49 542.31 215.48 527.82 224.70 515.69 C 248.88 479.39 250.40 434.31 264.01 394.00 C 272.94 386.70 291.28 388.78 297.18 399.01 C 294.44 420.02 276.69 436.38 275.19 458.10 C 272.48 485.99 285.31 511.65 290.53 538.37 C 293.42 554.08 291.23 572.50 278.70 583.67 C 271.24 590.28 260.58 586.84 252.41 583.56 C 238.92 577.80 226.39 569.00 218.03 556.78 C 207.46 567.88 195.48 585.89 177.67 577.37 C 154.04 561.53 146.03 531.97 133.02 508.09 C 123.42 533.05 118.25 561.95 97.90 580.90 C 91.24 587.69 87.46 574.12 88.82 569.04 C 114.08 479.94 139.57 390.78 170.48 303.45 M 246.79 504.76 C 238.83 518.08 236.48 534.43 225.74 546.18 C 240.22 536.98 249.58 560.42 262.86 555.85 C 266.90 539.43 260.06 522.25 255.56 506.38 C 254.95 501.91 248.88 500.62 246.79 504.76 Z" /> +<path fill="#6a7cb3" opacity="1.00" d=" M 360.13 424.13 C 385.02 417.73 410.37 411.69 436.00 409.15 C 448.21 406.90 463.71 418.82 457.82 431.75 C 426.54 475.61 385.51 511.17 345.37 546.63 C 366.63 542.69 389.30 536.49 410.53 543.48 C 418.41 545.91 416.36 556.10 409.84 558.86 C 388.93 570.47 364.28 572.03 341.02 575.21 C 330.38 577.01 315.75 576.81 310.61 565.35 C 304.80 554.02 313.28 542.69 320.14 534.14 C 348.83 500.23 385.44 474.17 415.04 441.14 C 394.63 436.55 374.62 448.17 354.37 444.67 C 343.54 440.06 350.31 425.23 360.13 424.13 Z" /> +</g> +</svg> diff --git a/rsrc/readme_en.html b/rsrc/readme_en.html index eeb684753e965b5613a8ee1857ba8972a528d7e9..0c8c760bfdfcf4bae81fd47581cec7fa34bc68f5 100644 --- a/rsrc/readme_en.html +++ b/rsrc/readme_en.html @@ -1,5 +1,5 @@ -<h3 align="center">Very English</h3> -<p> - Big localization. <u>Bilingual as hell.</u><br/> - <b>Easy to youze.</b> -</p> +<h3 align="center">Very English</h3> +<p> + Big localization. <u>Bilingual as hell.</u><br/> + <b>Easy to youze.</b> +</p> diff --git a/rsrc/readme_hu.html b/rsrc/readme_hu.html index f88d2524ea863eb0e2d80c2413d61bc3b42f4cb6..9e57c901d92b1c0706a92b6ff3b35ab91eb7007a 100644 --- a/rsrc/readme_hu.html +++ b/rsrc/readme_hu.html @@ -1,5 +1,5 @@ -<h3 align="center">Magyar leírás</h3> -<p> - Unicode, ékezetek, HTML. <u>Kezelhetőség.</u><br/> - <b>Na még mit mondjak...</b> -</p> +<h3 align="center">Magyar leírás</h3> +<p> + Unicode, ékezetek, HTML. <u>Kezelhetőség.</u><br/> + <b>Na még mit mondjak...</b> +</p>