From 0ba5d7e1bf623c40d8b0f2816a3b4fd53e3f7e6c Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 7 Aug 2020 21:28:52 +0100 Subject: [PATCH 01/36] More flexibility for QDateTime round/truncate routine --- .gitignore | 1 + CMakeLists.txt | 4 +- qt_helpers.cpp | 8 +-- qt_helpers.hpp | 8 +-- tests/CMakeLists.txt | 23 +++++++ tests/test_qt_helpers.cpp | 138 ++++++++++++++++++++++++++++++++++++++ widgets/mainwindow.cpp | 4 +- 7 files changed, 175 insertions(+), 11 deletions(-) create mode 100644 tests/CMakeLists.txt create mode 100644 tests/test_qt_helpers.cpp diff --git a/.gitignore b/.gitignore index 2bd99ec81..9c636d134 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ jnq* *.mod *.pro.user *.txt +!**/CMakeLists.txt cmake-build-debug cmake-build-release CMakeFiles diff --git a/CMakeLists.txt b/CMakeLists.txt index f160d6b82..17f863042 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -926,7 +926,9 @@ endif () if (WSJT_GENERATE_DOCS) add_subdirectory (doc) endif (WSJT_GENERATE_DOCS) - +if (EXISTS ${CMAKE_SOURCE_DIR}/tests AND IS_DIRECTORY ${CMAKE_SOURCE_DIR}/tests) + add_subdirectory (tests) +endif () # # Library building setup diff --git a/qt_helpers.cpp b/qt_helpers.cpp index 3f41d0f87..dd474e191 100644 --- a/qt_helpers.cpp +++ b/qt_helpers.cpp @@ -37,14 +37,14 @@ void update_dynamic_property (QWidget * widget, char const * property, QVariant widget->update (); } -QDateTime qt_round_date_time_to (QDateTime dt, int seconds) +QDateTime qt_round_date_time_to (QDateTime dt, int milliseconds) { - dt.setSecsSinceEpoch (dt.addSecs (seconds - 1).toSecsSinceEpoch () / seconds * seconds); + dt.setMSecsSinceEpoch (dt.addMSecs (milliseconds / 2).toMSecsSinceEpoch () / milliseconds * milliseconds); return dt; } -QDateTime qt_truncate_date_time_to (QDateTime dt, int seconds) +QDateTime qt_truncate_date_time_to (QDateTime dt, int milliseconds) { - dt.setSecsSinceEpoch (dt.toSecsSinceEpoch () / seconds * seconds); + dt.setMSecsSinceEpoch (dt.toMSecsSinceEpoch () / milliseconds * milliseconds); return dt; } diff --git a/qt_helpers.hpp b/qt_helpers.hpp index 638c50e2a..aae8c5f07 100644 --- a/qt_helpers.hpp +++ b/qt_helpers.hpp @@ -69,11 +69,11 @@ QString font_as_stylesheet (QFont const&); // conditional style sheet updates void update_dynamic_property (QWidget *, char const * property, QVariant const& value); -// round a QDateTime instance to an interval -QDateTime qt_round_date_time_to (QDateTime dt, int seconds); +// round a QDateTime instance to an integral interval of milliseconds +QDateTime qt_round_date_time_to (QDateTime dt, int milliseconds); -// truncate a QDateTime to an interval -QDateTime qt_truncate_date_time_to (QDateTime dt, int seconds); +// truncate a QDateTime to an integral interval of milliseconds +QDateTime qt_truncate_date_time_to (QDateTime dt, int milliseconds); template class VPtr diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 000000000..4b3462337 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,23 @@ +find_package (Qt5Test 5 REQUIRED) + +# +# Compiler options +# +set (CMAKE_CXX_STANDARD 11) +add_compile_options ("$<$:-Wall;-Wno-conversion;-fno-second-underscore;-fno-f2c>") +add_compile_options ("$<$,$>:-fbounds-check>") +add_compile_options ("$<$,$>>:-funroll-all-loops>") +add_compile_options ("$<$,$>,$,$,$>>:-Wall;-Wextra>") +add_compile_options ("$<$,$>:-Wno-pragmas>") +add_compile_options ("$<$,$>,$>>:-fdata-sections;-ffunction-sections>") +if (${OPENMP_FOUND} OR APPLE) + add_compile_options ("$<$,$>,$>:${OpenMP_C_FLAGS}>") +endif () + +# Tell CMake to run moc when necessary +set (CMAKE_AUTOMOC ON) +include_directories (${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) + +add_executable (test_qt_helpers test_qt_helpers.cpp) +target_link_libraries (test_qt_helpers wsjt_qt Qt5::Test) +add_test (test_qt_helpers test_qt_helpers) diff --git a/tests/test_qt_helpers.cpp b/tests/test_qt_helpers.cpp new file mode 100644 index 000000000..cb6744df2 --- /dev/null +++ b/tests/test_qt_helpers.cpp @@ -0,0 +1,138 @@ +#include +#include +#include + +#include "qt_helpers.hpp" + +class TestQtHelpers + : public QObject +{ + Q_OBJECT + +public: + +private: + Q_SLOT void round_15s_date_time_up () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 500}}; + QCOMPARE (qt_round_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 30))); + } + + Q_SLOT void truncate_15s_date_time_up () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 500}}; + QCOMPARE (qt_truncate_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void round_15s_date_time_down () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 499}}; + QCOMPARE (qt_round_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void truncate_15s_date_time_down () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 499}}; + QCOMPARE (qt_truncate_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void round_15s_date_time_on () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 15}}; + QCOMPARE (qt_round_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void truncate_15s_date_time_on () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 15}}; + QCOMPARE (qt_truncate_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void round_15s_date_time_under () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 14, 999}}; + QCOMPARE (qt_round_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void truncate_15s_date_time_under () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 14, 999}}; + QCOMPARE (qt_truncate_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15))); + } + + Q_SLOT void round_15s_date_time_over () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 15, 1}}; + QCOMPARE (qt_round_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void truncate_15s_date_time_over () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 15, 1}}; + QCOMPARE (qt_truncate_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void round_7p5s_date_time_up () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 26, 250}}; + QCOMPARE (qt_round_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 30))); + } + + Q_SLOT void truncate_7p5s_date_time_up () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 26, 250}}; + QCOMPARE (qt_truncate_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void round_7p5s_date_time_down () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 26, 249}}; + QCOMPARE (qt_round_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void truncate_7p5s_date_time_down () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 26, 249}}; + QCOMPARE (qt_truncate_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void round_7p5s_date_time_on () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 500}}; + QCOMPARE (qt_round_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void truncate_7p5s_date_time_on () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 500}}; + QCOMPARE (qt_truncate_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void round_7p5s_date_time_under () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 499}}; + QCOMPARE (qt_round_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void truncate_7p5s_date_time_under () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 499}}; + QCOMPARE (qt_truncate_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void round_7p5s_date_time_over () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 501}}; + QCOMPARE (qt_round_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void truncate_7p5s_date_time_over () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 501}}; + QCOMPARE (qt_truncate_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } +}; + +QTEST_MAIN (TestQtHelpers); + +#include "test_qt_helpers.moc" diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 6c2a32c25..b91207089 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -8017,8 +8017,8 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout QString MainWindow::beacon_start_time (int n) { - auto bt = qt_truncate_date_time_to (QDateTime::currentDateTimeUtc ().addSecs (n), m_TRperiod); - if (m_TRperiod < 60) + auto bt = qt_truncate_date_time_to (QDateTime::currentDateTimeUtc ().addSecs (n), m_TRperiod * 1.e3); + if (m_TRperiod < 60.) { return bt.toString ("HHmmss"); } From 7bafb5b71e27b023b9cf33955ae217cad37f26e6 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 7 Aug 2020 22:40:15 +0100 Subject: [PATCH 02/36] Qt5.7 backwards compatibility --- Network/MessageClient.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Network/MessageClient.cpp b/Network/MessageClient.cpp index b545dd44e..1d571a5dd 100644 --- a/Network/MessageClient.cpp +++ b/Network/MessageClient.cpp @@ -465,7 +465,11 @@ void MessageClient::set_server (QString const& server) { // queue a host address lookup TRACE_UDP ("server host DNS lookup:" << server); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) m_->dns_lookup_id_ = QHostInfo::lookupHost (server, &*m_, &MessageClient::impl::host_info_results); +#else + m_->dns_lookup_id_ = QHostInfo::lookupHost (server, &*m_, SLOT (host_info_results (QHostInfo))); +#endif } } From 31742156fd22ff878d765a0c4f9267136610279f Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 7 Aug 2020 22:53:21 +0100 Subject: [PATCH 03/36] Qt v5.8 backwards compatibility --- Network/PSKReporter.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Network/PSKReporter.cpp b/Network/PSKReporter.cpp index 5a367e58f..59408c284 100644 --- a/Network/PSKReporter.cpp +++ b/Network/PSKReporter.cpp @@ -402,7 +402,13 @@ void PSKReporter::impl::send_report (bool send_residue) writeUtfString (tx_out, spot.grid_); tx_out << quint8 (1u) // REPORTER_SOURCE_AUTOMATIC - << static_cast (spot.time_.toSecsSinceEpoch ()); + << static_cast ( +#if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0) + spot.time_.toSecsSinceEpoch () +#else + spot.time_.toMSecsSinceEpoch () / 1000 +#endif + ); } auto len = payload_.size () + tx_data_.size (); @@ -429,7 +435,13 @@ void PSKReporter::impl::send_report (bool send_residue) // insert Length and Export Time set_length (message, payload_); message.device ()->seek (2 * sizeof (quint16)); - message << static_cast (QDateTime::currentDateTime ().toSecsSinceEpoch ()); + message << static_cast ( +#if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0) + QDateTime::currentDateTime ().toSecsSinceEpoch () +#else + QDateTime::currentDateTime ().toMSecsSinceEpoch () / 1000 +#endif + ); // Send data to PSK Reporter site socket_->write (payload_); // TODO: handle errors From bf58cd43aa32aee8ecb3cd4b55116074143e4d45 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 13:20:52 +0100 Subject: [PATCH 04/36] Improve contrast of coloured widgets in dark style --- widgets/mainwindow.cpp | 56 +++++++++++++++++++++--------------------- widgets/mainwindow.ui | 1 + 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index b91207089..e9a533e1d 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -943,8 +943,8 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook - ui->label_9->setStyleSheet("QLabel{background-color: #aabec8}"); - ui->label_10->setStyleSheet("QLabel{background-color: #aabec8}"); + ui->label_9->setStyleSheet("QLabel{color: #000000; background-color: #aabec8}"); + ui->label_10->setStyleSheet("QLabel{color: #000000; background-color: #aabec8}"); // this must be done before initializing the mode as some modes need // to turn off split on the rig e.g. WSPR @@ -1244,7 +1244,7 @@ void MainWindow::readSettings() } ui->WSPR_prefer_type_1_check_box->setChecked (m_settings->value ("WSPRPreferType1", true).toBool ()); m_uploadWSPRSpots=m_settings->value("UploadSpots",false).toBool(); - if(!m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet("QCheckBox{background-color: yellow}"); + if(!m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet("QCheckBox{color: #000000; background-color: yellow}"); ui->cbNoOwnCall->setChecked(m_settings->value("NoOwnCall",false).toBool()); ui->band_hopping_group_box->setChecked (m_settings->value ("BandHopping", false).toBool()); // setup initial value of tx attenuator @@ -2280,7 +2280,7 @@ void MainWindow::createStatusBar() //createStatusBar { tx_status_label.setAlignment (Qt::AlignHCenter); tx_status_label.setMinimumSize (QSize {150, 18}); - tx_status_label.setStyleSheet ("QLabel{background-color: #00ff00}"); + tx_status_label.setStyleSheet ("QLabel{color: #000000; background-color: #00ff00}"); tx_status_label.setFrameStyle (QFrame::Panel | QFrame::Sunken); statusBar()->addWidget (&tx_status_label); @@ -2328,37 +2328,37 @@ void MainWindow::setup_status_bar (bool vhf) mode_label.setText (m_mode); } if ("ISCAT" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ff9933}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff9933}"); } else if ("JT9" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ff6ec7}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff6ec7}"); } else if ("JT4" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #cc99ff}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #cc99ff}"); } else if ("Echo" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #66ffff}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #66ffff}"); } else if ("JT9+JT65" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ffff66}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ffff66}"); } else if ("JT65" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #66ff66}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #66ff66}"); } else if ("QRA64" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #99ff33}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #99ff33}"); } else if ("MSK144" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ff6666}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff6666}"); } else if ("FT4" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ff0099}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff0099}"); } else if ("FT8" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ff6699}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff6699}"); } else if ("FST4" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #99ff66}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #99ff66}"); } else if ("FST4W" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #6699ff}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #6699ff}"); } else if ("FreqCal" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ff9933}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff9933}"); } last_tx_label.setText (QString {}); if (m_mode.contains (QRegularExpression {R"(^(Echo|ISCAT))"})) { if (band_hopping_label.isVisible ()) statusBar ()->removeWidget (&band_hopping_label); } else if (m_mode=="WSPR") { - mode_label.setStyleSheet ("QLabel{background-color: #ff66ff}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff66ff}"); if (!band_hopping_label.isVisible ()) { statusBar ()->addWidget (&band_hopping_label); band_hopping_label.show (); @@ -2689,7 +2689,7 @@ void MainWindow::on_actionOpen_triggered() //Open File m_path=fname; int i1=fname.lastIndexOf("/"); QString baseName=fname.mid(i1+1); - tx_status_label.setStyleSheet("QLabel{background-color: #99ffff}"); + tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #99ffff}"); tx_status_label.setText(" " + baseName + " "); on_stopButton_clicked(); m_diskData=true; @@ -2769,7 +2769,7 @@ void MainWindow::on_actionOpen_next_in_directory_triggered() //Open Next m_path=fname; int i1=fname.lastIndexOf("/"); QString baseName=fname.mid(i1+1); - tx_status_label.setStyleSheet("QLabel{background-color: #99ffff}"); + tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #99ffff}"); tx_status_label.setText(" " + baseName + " "); m_diskData=true; read_wav_file (fname); @@ -4276,11 +4276,11 @@ void MainWindow::guiUpdate() m_nsendingsh=0; if(s[4]==64) m_nsendingsh=1; if(m_nsendingsh==1 or m_currentMessageType==7) { - tx_status_label.setStyleSheet("QLabel{background-color: #66ffff}"); + tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #66ffff}"); } else if(m_nsendingsh==-1 or m_currentMessageType==6) { - tx_status_label.setStyleSheet("QLabel{background-color: #ffccff}"); + tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #ffccff}"); } else { - tx_status_label.setStyleSheet("QLabel{background-color: #ffff33}"); + tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #ffff33}"); } if(m_tune) { tx_status_label.setText("Tx: TUNE"); @@ -4299,11 +4299,11 @@ void MainWindow::guiUpdate() } } else if(m_monitoring) { if (!m_tx_watchdog) { - tx_status_label.setStyleSheet("QLabel{background-color: #00ff00}"); + tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #00ff00}"); auto t = tr ("Receiving"); if(m_mode=="MSK144") { int npct=int(100.0*m_fCPUmskrtd/0.298667); - if(npct>90) tx_status_label.setStyleSheet("QLabel{background-color: #ff0000}"); + if(npct>90) tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #ff0000}"); t += QString {" %1%"}.arg (npct, 2); } tx_status_label.setText (t); @@ -5017,7 +5017,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie // m_nextGrid=message_words.at(3); // m_nextRpt=message.report(); // ui->labNextCall->setText("Next: " + m_nextCall); -// ui->labNextCall->setStyleSheet("QLabel {background-color: #66ff66}"); +// ui->labNextCall->setStyleSheet("QLabel {color: #000000; background-color: #66ff66}"); // } return; } @@ -8125,7 +8125,7 @@ void MainWindow::on_cbUploadWSPR_Spots_toggled(bool b) m_uploadWSPRSpots=b; if(m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet(""); if(!m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet( - "QCheckBox{background-color: yellow}"); + "QCheckBox{color: #000000; background-color: yellow}"); } void MainWindow::on_WSPRfreqSpinBox_valueChanged(int n) @@ -8442,7 +8442,7 @@ void MainWindow::tx_watchdog (bool triggered) m_bTxTime=false; if (m_tune) stop_tuning (); if (m_auto) auto_tx_mode (false); - tx_status_label.setStyleSheet ("QLabel{background-color: #ff0000}"); + tx_status_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff0000}"); tx_status_label.setText (tr ("Runaway Tx watchdog")); QApplication::alert (this); } diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 422227bac..4eed5fecd 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -376,6 +376,7 @@ QPushButton:checked { + color: #000000; background-color: #00ff00; border-style: outset; border-width: 1px; From 9c436686408f16c3b05d2912bf6c16b999c84a98 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 13:43:41 +0100 Subject: [PATCH 05/36] Break unnecessary Qt link dependencies in Fortran utilities --- CMakeLists.txt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 17f863042..7b0931ace 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -222,9 +222,12 @@ set (WSJT_QT_CONF_DESTINATION ${QT_CONF_DESTINATION} CACHE PATH "Path for the qt # # Project sources # +set (fort_qt_CXXSRCS + lib/shmem.cpp + ) + set (wsjt_qt_CXXSRCS qt_helpers.cpp - lib/shmem.cpp widgets/MessageBox.cpp MetaDataRegistry.cpp Network/NetworkServerLookup.cpp @@ -730,6 +733,7 @@ set (qcp_CXXSRCS set (all_CXXSRCS ${wsjt_CXXSRCS} + ${fort_qt_CXXSRCS} ${wsjt_qt_CXXSRCS} ${wsjt_qtmm_CXXSRCS} ${wsjtx_CXXSRCS} @@ -1258,6 +1262,11 @@ if (WIN32) target_link_libraries (wsjt_qt Qt5::AxContainer Qt5::AxBase) endif (WIN32) +# build a library of package Qt functionality used in Fortran utilities +add_library (fort_qt STATIC ${fort_qt_CXXSRCS}) +target_link_libraries (fort_qt Qt5::Core) + +# build a library of WSJT Qt multimedia components add_library (wsjt_qtmm STATIC ${wsjt_qtmm_CXXSRCS} ${wsjt_qtmm_GENUISRCS}) target_link_libraries (wsjt_qtmm Qt5::Multimedia) @@ -1305,9 +1314,9 @@ if (${OPENMP_FOUND} OR APPLE) LINK_FLAGS -Wl,--stack,16777216 ) endif () - target_link_libraries (jt9 wsjt_fort_omp wsjt_cxx wsjt_qt) + target_link_libraries (jt9 wsjt_fort_omp wsjt_cxx fort_qt) else (${OPENMP_FOUND} OR APPLE) - target_link_libraries (jt9 wsjt_fort wsjt_cxx Qt5::Core) + target_link_libraries (jt9 wsjt_fort wsjt_cxx fort_qt) endif (${OPENMP_FOUND} OR APPLE) if(WSJT_BUILD_UTILS) From f975f2c181d8f4fef16a735d242dc2535d97ac0b Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 15:06:31 +0100 Subject: [PATCH 06/36] Further widget contrast improvements for use with dark stylesheets --- Configuration.ui | 6 ++++-- widgets/mainwindow.ui | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Configuration.ui b/Configuration.ui index bc8e7f596..eae6ab94f 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -1493,7 +1493,8 @@ both here. false - background-color: rgb(255, 255, 255); + background-color: rgb(255, 255, 255); +color: rgb(0, 0, 0); TextLabel @@ -1541,7 +1542,8 @@ both here. - background-color: rgb(255, 255, 255); + background-color: rgb(255, 255, 255); +color: rgb(0, 0, 0); TextLabel diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 4eed5fecd..ece61762c 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -448,6 +448,7 @@ QPushButton:checked { + color: rgb(0, 0, 0); background-color: cyan; border-style: outset; border-width: 1px; @@ -481,6 +482,7 @@ QPushButton:checked { + color: rgb(0, 0, 0); background-color: red; border-style: outset; border-width: 1px; @@ -524,6 +526,7 @@ QPushButton:checked { + color: rgb(0, 0, 0); background-color: red; border-style: outset; border-width: 1px; @@ -998,6 +1001,7 @@ Not available to nonstandard callsign holders. QPushButton:checked { + color: rgb(0, 0, 0); background-color: red; border-style: outset; border-width: 1px; @@ -2381,6 +2385,7 @@ list. The list can be maintained in Settings (F2). QPushButton:checked { + color: rgb(0, 0, 0); background-color: red; border-style: outset; border-width: 1px; From a0ceace5b48ed56bd393ed14b833606f3638483d Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 16:25:14 +0100 Subject: [PATCH 07/36] User configurable audio device buffer sizes Adjusting these may help with audio drop-outs, particularly on slower CPU systems or heavily loaded systems. Smaller buffer sizes leave less margin for process interruptions, larger sizes waste resources that could impact other processes. --- Audio/soundin.cpp | 5 +- Audio/soundout.cpp | 19 ++--- Audio/soundout.h | 6 +- Configuration.cpp | 52 +++++++++--- Configuration.hpp | 2 + Configuration.ui | 185 +++++++++++++++++++++++++++++------------ widgets/mainwindow.cpp | 25 +++--- widgets/mainwindow.h | 2 - 8 files changed, 201 insertions(+), 95 deletions(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index e08d45271..3e61b41b1 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -41,7 +41,8 @@ bool SoundInput::audioError () const return result; } -void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, AudioDevice * sink, unsigned downSampleFactor, AudioDevice::Channel channel) +void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, AudioDevice * sink + , unsigned downSampleFactor, AudioDevice::Channel channel) { Q_ASSERT (sink); @@ -79,7 +80,9 @@ void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, Audi connect (m_stream.data(), &QAudioInput::stateChanged, this, &SoundInput::handleStateChanged); + qDebug () << "SoundIn default buffer size (bytes):" << m_stream->bufferSize (); m_stream->setBufferSize (m_stream->format ().bytesForFrames (framesPerBuffer)); + qDebug () << "SoundIn selected buffer size (bytes):" << m_stream->bufferSize (); if (sink->initialize (QIODevice::WriteOnly, channel)) { m_stream->start (sink); diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index 0264ad91e..48bea9cc6 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -9,15 +9,6 @@ #include "moc_soundout.cpp" -/* -#if defined (WIN32) -# define MS_BUFFERED 1000u -#else -# define MS_BUFFERED 2000u -#endif -*/ -# define MS_BUFFERED 200u - bool SoundOutput::audioError () const { bool result (true); @@ -50,11 +41,11 @@ bool SoundOutput::audioError () const return result; } -void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, unsigned msBuffered) +void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, int frames_buffered) { Q_ASSERT (0 < channels && channels < 3); - m_msBuffered = msBuffered; + m_framesBuffered = frames_buffered; QAudioFormat format (device.preferredFormat ()); // qDebug () << "Preferred audio output format:" << format; @@ -101,9 +92,9 @@ void SoundOutput::restart (QIODevice * source) // we have to set this before every start on the stream because the // Windows implementation seems to forget the buffer size after a // stop. - m_stream->setBufferSize (m_stream->format().bytesForDuration((m_msBuffered ? m_msBuffered : MS_BUFFERED) * 1000)); - // qDebug() << "B" << m_stream->bufferSize() << - // m_stream->periodSize() << m_stream->notifyInterval(); + qDebug () << "SoundOut default buffer size (bytes):" << m_stream->bufferSize (); + m_stream->setBufferSize (m_stream->format().bytesForFrames (m_framesBuffered)); + qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize (); m_stream->setCategory ("production"); m_stream->start (source); } diff --git a/Audio/soundout.h b/Audio/soundout.h index 1e4b3a948..2699176f3 100644 --- a/Audio/soundout.h +++ b/Audio/soundout.h @@ -18,7 +18,7 @@ class SoundOutput public: SoundOutput () - : m_msBuffered {0u} + : m_framesBuffered {0} , m_volume {1.0} { } @@ -26,7 +26,7 @@ public: qreal attenuation () const; public Q_SLOTS: - void setFormat (QAudioDeviceInfo const& device, unsigned channels, unsigned msBuffered = 0u); + void setFormat (QAudioDeviceInfo const& device, unsigned channels, int frames_buffered = 0); void restart (QIODevice *); void suspend (); void resume (); @@ -47,7 +47,7 @@ private Q_SLOTS: private: QScopedPointer m_stream; - unsigned m_msBuffered; + int m_framesBuffered; qreal m_volume; }; diff --git a/Configuration.cpp b/Configuration.cpp index 0cbe744e6..4aeda730d 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -242,6 +242,8 @@ namespace // Magic numbers for file validation constexpr quint32 qrg_magic {0xadbccbdb}; constexpr quint32 qrg_version {100}; // M.mm + + constexpr int default_audio_buffer_size = 10; } @@ -649,9 +651,11 @@ private: QAudioDeviceInfo audio_input_device_; bool default_audio_input_device_selected_; AudioDevice::Channel audio_input_channel_; + int audio_input_buffer_size_; QAudioDeviceInfo audio_output_device_; bool default_audio_output_device_selected_; AudioDevice::Channel audio_output_channel_; + int audio_output_buffer_size_; friend class Configuration; }; @@ -681,8 +685,10 @@ bool Configuration::is_active () const {return m_->isVisible ();} QAudioDeviceInfo const& Configuration::audio_input_device () const {return m_->audio_input_device_;} AudioDevice::Channel Configuration::audio_input_channel () const {return m_->audio_input_channel_;} +int Configuration::audio_input_buffer_size () const {return m_->audio_input_buffer_size_ * 1024;} QAudioDeviceInfo const& Configuration::audio_output_device () const {return m_->audio_output_device_;} AudioDevice::Channel Configuration::audio_output_channel () const {return m_->audio_output_channel_;} +int Configuration::audio_output_buffer_size () const {return m_->audio_output_buffer_size_ * 1024;} bool Configuration::restart_audio_input () const {return m_->restart_sound_input_device_;} bool Configuration::restart_audio_output () const {return m_->restart_sound_output_device_;} auto Configuration::type_2_msg_gen () const -> Type2MsgGen {return m_->type_2_msg_gen_;} @@ -977,7 +983,9 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network , degrade_ {0.} // initialize to zero each run, not // saved in settings , default_audio_input_device_selected_ {false} + , audio_input_buffer_size_ {default_audio_buffer_size} , default_audio_output_device_selected_ {false} + , audio_output_buffer_size_ {default_audio_buffer_size} { ui_->setupUi (this); @@ -1189,18 +1197,6 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network // ui_->highlighting_list_view->setModel (&next_decode_highlighing_model_); - // - // load combo boxes with audio setup choices - // - default_audio_input_device_selected_ = load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &audio_input_device_); - default_audio_output_device_selected_ = load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &audio_output_device_); - - update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); - update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); - - ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); - ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); - enumerate_rigs (); initialize_models (); @@ -1238,6 +1234,21 @@ void Configuration::impl::initialize_models () ui_->sbDegrade->setValue (degrade_); ui_->sbBandwidth->setValue (RxBandwidth_); ui_->PTT_method_button_group->button (rig_params_.ptt_type)->setChecked (true); + + // + // load combo boxes with audio setup choices + // + default_audio_input_device_selected_ = load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &audio_input_device_); + default_audio_output_device_selected_ = load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &audio_output_device_); + + update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); + update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); + + ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); + ui_->audio_ip_buffer_spin_box->setValue (audio_input_buffer_size_); + ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); + ui_->audio_op_buffer_spin_box->setValue (audio_output_buffer_size_); + ui_->save_path_display_label->setText (save_directory_.absolutePath ()); ui_->azel_path_display_label->setText (azel_directory_.absolutePath ()); ui_->CW_id_after_73_check_box->setChecked (id_after_73_); @@ -1446,6 +1457,10 @@ void Configuration::impl::read_settings () audio_input_channel_ = AudioDevice::fromString (settings_->value ("AudioInputChannel", "Mono").toString ()); audio_output_channel_ = AudioDevice::fromString (settings_->value ("AudioOutputChannel", "Mono").toString ()); + // retrieve audio buffer size values + audio_input_buffer_size_ = settings_->value ("AudioInputBufferSize", default_audio_buffer_size).toInt (); + audio_output_buffer_size_ = settings_->value ("AudioOutputBufferSize", default_audio_buffer_size).toInt (); + type_2_msg_gen_ = settings_->value ("Type2MsgGen", QVariant::fromValue (Configuration::type_2_msg_3_full)).value (); monitor_off_at_startup_ = settings_->value ("MonitorOFF", false).toBool (); @@ -1587,6 +1602,8 @@ void Configuration::impl::write_settings () settings_->setValue ("AudioInputChannel", AudioDevice::toString (audio_input_channel_)); settings_->setValue ("AudioOutputChannel", AudioDevice::toString (audio_output_channel_)); + settings_->setValue ("AudioInputBufferSize", audio_input_buffer_size_); + settings_->setValue ("AudioOutputBufferSize", audio_output_buffer_size_); settings_->setValue ("Type2MsgGen", QVariant::fromValue (type_2_msg_gen_)); settings_->setValue ("MonitorOFF", monitor_off_at_startup_); settings_->setValue ("MonitorLastUsed", monitor_last_used_); @@ -2041,6 +2058,17 @@ void Configuration::impl::accept () } Q_ASSERT (audio_output_channel_ <= AudioDevice::Both); + if (audio_input_buffer_size_ != ui_->audio_ip_buffer_spin_box->value ()) + { + audio_input_buffer_size_ = ui_->audio_ip_buffer_spin_box->value (); + restart_sound_input_device_ = true; + } + if (audio_output_buffer_size_ != ui_->audio_op_buffer_spin_box->value ()) + { + audio_output_buffer_size_ = ui_->audio_op_buffer_spin_box->value (); + restart_sound_output_device_ = true; + } + my_callsign_ = ui_->callsign_line_edit->text (); my_grid_ = ui_->grid_line_edit->text (); FD_exchange_= ui_->Field_Day_Exchange->text ().toUpper (); diff --git a/Configuration.hpp b/Configuration.hpp index 882a78629..3087ea855 100644 --- a/Configuration.hpp +++ b/Configuration.hpp @@ -87,8 +87,10 @@ public: QAudioDeviceInfo const& audio_input_device () const; AudioDevice::Channel audio_input_channel () const; + int audio_input_buffer_size () const; QAudioDeviceInfo const& audio_output_device () const; AudioDevice::Channel audio_output_channel () const; + int audio_output_buffer_size () const; // These query methods should be used after a call to exec() to // determine if either the audio input or audio output stream diff --git a/Configuration.ui b/Configuration.ui index eae6ab94f..57dca9b04 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -6,8 +6,8 @@ 0 0 - 559 - 553 + 553 + 563 @@ -1349,46 +1349,6 @@ radio interface behave as expected. Soundcard - - - - - 1 - 0 - - - - Select the audio CODEC to use for transmitting. -If this is your default device for system sounds then -ensure that all system sounds are disabled otherwise -you will broadcast any systems sounds generated during -transmitting periods. - - - - - - - - 1 - 0 - - - - Select the audio CODEC to use for receiving. - - - - - - - &Input: - - - sound_input_combo_box - - - @@ -1416,6 +1376,16 @@ transmitting periods. + + + + &Input: + + + sound_input_combo_box + + + @@ -1446,6 +1416,81 @@ both here. + + + + Audio output buffer size in kilo-frames + +Adjust for minimum dropped samples reported. Too low values are likely to cause dropped samples causing audio drop-outs. + + + k + + + 4 + + + 128 + + + 10 + + + + + + + + 1 + 0 + + + + Select the audio CODEC to use for receiving. + + + + + + + Audio input buffer size in kilo-frames + +Adjust for minimum dropped samples reported. Too low values are likely to cause dropped samples causing audio drop-outs. + + + k + + + + + + 4 + + + 128 + + + 10 + + + + + + + + 1 + 0 + + + + Select the audio CODEC to use for transmitting. +If this is your default device for system sounds then +ensure that all system sounds are disabled otherwise +you will broadcast any systems sounds generated during +transmitting periods. + + + @@ -1456,6 +1501,26 @@ both here. + + + + Buffer: + + + audio_ip_buffer_spin_box + + + + + + + Buffer: + + + audio_op_buffer_spin_box + + + @@ -2951,14 +3016,20 @@ Right click for insert and delete options. use_dynamic_grid region_combo_box type_2_msg_gen_combo_box + decodes_from_top_check_box + insert_blank_check_box + miles_check_box TX_messages_check_box DXCC_check_box + ppfx_check_box font_push_button decoded_text_font_push_button monitor_off_check_box monitor_last_used_check_box quick_call_check_box disable_TX_on_73_check_box + force_call_1st_check_box + alternate_bindings_check_box CW_id_after_73_check_box enable_VHF_features_check_box tx_QSY_check_box @@ -2977,8 +3048,8 @@ Right click for insert and delete options. CAT_one_stop_bit_radio_button CAT_two_stop_bit_radio_button CAT_handshake_default_radio_button - CAT_handshake_none_radio_button CAT_handshake_xon_radio_button + CAT_handshake_none_radio_button CAT_handshake_hardware_radio_button force_DTR_combo_box force_RTS_combo_box @@ -2999,8 +3070,10 @@ Right click for insert and delete options. test_PTT_push_button sound_input_combo_box sound_input_channel_combo_box + audio_ip_buffer_spin_box sound_output_combo_box sound_output_channel_combo_box + audio_op_buffer_spin_box save_path_select_push_button azel_path_select_push_button checkBoxPwrBandTxMemory @@ -3016,6 +3089,7 @@ Right click for insert and delete options. clear_DX_check_box opCallEntry psk_reporter_check_box + psk_reporter_tcpip_check_box udp_server_line_edit udp_server_port_spin_box accept_udp_requests_check_box @@ -3030,9 +3104,13 @@ Right click for insert and delete options. stations_table_view highlighting_list_view reset_highlighting_to_defaults_push_button + highlight_by_mode_check_box + only_fields_check_box + include_WAE_check_box + rescan_log_push_button LotW_CSV_URL_line_edit - LotW_CSV_fetch_push_button LotW_days_since_upload_spin_box + LotW_CSV_fetch_push_button sbNtrials sbAggressive cbTwoPass @@ -3041,13 +3119,18 @@ Right click for insert and delete options. sbTxDelay cbx2ToneSpacing cbx4ToneSpacing + rbLowSidelobes + rbMaxSensitivity + gbSpecialOpActivity rbFox + rbHound rbNA_VHF_Contest - rbEU_VHF_Contest rbField_Day Field_Day_Exchange + rbEU_VHF_Contest rbRTTY_Roundup RTTY_Exchange + rbWW_DIGI @@ -3117,13 +3200,13 @@ Right click for insert and delete options. - - - - - - + + + + + + diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index e9a533e1d..c9ee10b8a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -394,8 +394,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, }, m_sfx {"P", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A"}, mem_jt9 {shdmem}, - m_msAudioOutputBuffered (0u), - m_framesAudioInputBuffered (RX_SAMPLE_RATE / 10), m_downSampleFactor (downSampleFactor), m_audioThreadPriority (QThread::HighPriority), m_bandEdited {false}, @@ -937,8 +935,12 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect (&m_wav_future_watcher, &QFutureWatcher::finished, this, &MainWindow::diskDat); connect(&watcher3, SIGNAL(finished()),this,SLOT(fast_decode_done())); - Q_EMIT startAudioInputStream (m_config.audio_input_device (), m_framesAudioInputBuffered, m_detector, m_downSampleFactor, m_config.audio_input_channel ()); - Q_EMIT initializeAudioOutputStream (m_config.audio_output_device (), AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2, m_msAudioOutputBuffered); + Q_EMIT startAudioInputStream (m_config.audio_input_device () + , m_config.audio_input_buffer_size () + , m_detector, m_downSampleFactor, m_config.audio_input_channel ()); + Q_EMIT initializeAudioOutputStream (m_config.audio_output_device () + , AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2 + , m_config.audio_output_buffer_size ()); Q_EMIT transmitFrequency (ui->TxFreqSpinBox->value () - m_XIT); enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook @@ -1277,8 +1279,6 @@ void MainWindow::readSettings() // use these initialisation settings to tune the audio o/p buffer // size and audio thread priority m_settings->beginGroup ("Tune"); - m_msAudioOutputBuffered = m_settings->value ("Audio/OutputBufferMs").toInt (); - m_framesAudioInputBuffered = m_settings->value ("Audio/InputBufferFrames", RX_SAMPLE_RATE / 10).toInt (); m_audioThreadPriority = static_cast (m_settings->value ("Audio/ThreadPriority", QThread::HighPriority).toInt () % 8); m_settings->endGroup (); @@ -1799,15 +1799,16 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog if(m_config.spot_to_psk_reporter ()) pskSetLocal (); if(m_config.restart_audio_input ()) { - Q_EMIT startAudioInputStream (m_config.audio_input_device (), - m_framesAudioInputBuffered, m_detector, m_downSampleFactor, - m_config.audio_input_channel ()); + Q_EMIT startAudioInputStream (m_config.audio_input_device () + , m_config.audio_input_buffer_size () + , m_detector, m_downSampleFactor + , m_config.audio_input_channel ()); } if(m_config.restart_audio_output ()) { - Q_EMIT initializeAudioOutputStream (m_config.audio_output_device (), - AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2, - m_msAudioOutputBuffered); + Q_EMIT initializeAudioOutputStream (m_config.audio_output_device () + , AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2 + , m_config.audio_output_buffer_size ()); } displayDialFrequency (); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 79f65d080..2f95ac801 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -666,8 +666,6 @@ private: QSharedMemory *mem_jt9; QString m_QSOText; - unsigned m_msAudioOutputBuffered; - unsigned m_framesAudioInputBuffered; unsigned m_downSampleFactor; QThread::Priority m_audioThreadPriority; bool m_bandEdited; From f32c927306cc701a00288ebc357d291d6b2af1b4 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 16:52:03 +0100 Subject: [PATCH 08/36] Control audio buffer size defaults from Configuration class --- Configuration.ui | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Configuration.ui b/Configuration.ui index 57dca9b04..eaa68bf30 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -1432,9 +1432,6 @@ Adjust for minimum dropped samples reported. Too low values are likely to cause 128 - - 10 - @@ -1469,9 +1466,6 @@ Adjust for minimum dropped samples reported. Too low values are likely to cause 128 - - 10 - From 6ea62d9476cbe2a8c61bb0fe9fc165131bc17049 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 16:53:24 +0100 Subject: [PATCH 09/36] Remove default audio devices from audio configuration This enforces an audio input device in the settings dialog since we can't do anything without an input device. A nil audio output device is allowed with a warning. --- Audio/soundin.cpp | 5 +- Audio/soundout.cpp | 4 +- Configuration.cpp | 175 +++++++-------------------------------------- 3 files changed, 31 insertions(+), 153 deletions(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index 3e61b41b1..e6e8ef783 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -63,14 +63,13 @@ void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, Audi Q_EMIT error (tr ("Requested input audio format is not valid.")); return; } - - if (!device.isFormatSupported (format)) + else if (!device.isFormatSupported (format)) { // qDebug () << "Nearest supported audio format:" << device.nearestFormat (format); Q_EMIT error (tr ("Requested input audio format is not supported on device.")); return; } -// qDebug () << "Selected audio input format:" << format; + // qDebug () << "Selected audio input format:" << format; m_stream.reset (new QAudioInput {device, format}); if (audioError ()) diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index 48bea9cc6..ecd7ce723 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -59,11 +59,11 @@ void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, { Q_EMIT error (tr ("Requested output audio format is not valid.")); } - if (!device.isFormatSupported (format)) + else if (!device.isFormatSupported (format)) { Q_EMIT error (tr ("Requested output audio format is not supported on device.")); } -// qDebug () << "Selected audio output format:" << format; + qDebug () << "Selected audio output format:" << format; m_stream.reset (new QAudioOutput (device, format)); audioError (); diff --git a/Configuration.cpp b/Configuration.cpp index 4aeda730d..2a09dad6a 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -431,7 +431,7 @@ private: void read_settings (); void write_settings (); - bool load_audio_devices (QAudio::Mode, QComboBox *, QAudioDeviceInfo *); + void load_audio_devices (QAudio::Mode, QComboBox *, QAudioDeviceInfo *); void update_audio_channels (QComboBox const *, int, QComboBox *, bool); void initialize_models (); @@ -479,8 +479,6 @@ private: Q_SLOT void on_force_DTR_combo_box_currentIndexChanged (int); Q_SLOT void on_force_RTS_combo_box_currentIndexChanged (int); Q_SLOT void on_rig_combo_box_currentIndexChanged (int); - Q_SLOT void on_sound_input_combo_box_currentTextChanged (QString const&); - Q_SLOT void on_sound_output_combo_box_currentTextChanged (QString const&); Q_SLOT void on_add_macro_push_button_clicked (bool = false); Q_SLOT void on_delete_macro_push_button_clicked (bool = false); Q_SLOT void on_PTT_method_button_group_buttonClicked (int); @@ -649,11 +647,9 @@ private: bool pwrBandTuneMemory_; QAudioDeviceInfo audio_input_device_; - bool default_audio_input_device_selected_; AudioDevice::Channel audio_input_channel_; int audio_input_buffer_size_; QAudioDeviceInfo audio_output_device_; - bool default_audio_output_device_selected_; AudioDevice::Channel audio_output_channel_; int audio_output_buffer_size_; @@ -982,9 +978,7 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network , transceiver_command_number_ {0} , degrade_ {0.} // initialize to zero each run, not // saved in settings - , default_audio_input_device_selected_ {false} , audio_input_buffer_size_ {default_audio_buffer_size} - , default_audio_output_device_selected_ {false} , audio_output_buffer_size_ {default_audio_buffer_size} { ui_->setupUi (this); @@ -1238,8 +1232,11 @@ void Configuration::impl::initialize_models () // // load combo boxes with audio setup choices // - default_audio_input_device_selected_ = load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &audio_input_device_); - default_audio_output_device_selected_ = load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &audio_output_device_); + // + // load combo boxes with audio setup choices + // + load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &audio_input_device_); + load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &audio_output_device_); update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); @@ -1406,23 +1403,11 @@ void Configuration::impl::read_settings () // retrieve audio input device // auto saved_name = settings_->value ("SoundInName").toString (); - - // deal with special Windows default audio devices - auto default_device = QAudioDeviceInfo::defaultInputDevice (); - if (saved_name == default_device.deviceName ()) + Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (QAudio::AudioInput)) // available audio input devices { - audio_input_device_ = default_device; - default_audio_input_device_selected_ = true; - } - else - { - default_audio_input_device_selected_ = false; - Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (QAudio::AudioInput)) // available audio input devices + if (p.deviceName () == saved_name) { - if (p.deviceName () == saved_name) - { - audio_input_device_ = p; - } + audio_input_device_ = p; } } } @@ -1432,23 +1417,11 @@ void Configuration::impl::read_settings () // retrieve audio output device // auto saved_name = settings_->value("SoundOutName").toString(); - - // deal with special Windows default audio devices - auto default_device = QAudioDeviceInfo::defaultOutputDevice (); - if (saved_name == default_device.deviceName ()) + Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (QAudio::AudioOutput)) // available audio output devices { - audio_output_device_ = default_device; - default_audio_output_device_selected_ = true; - } - else - { - default_audio_output_device_selected_ = false; - Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (QAudio::AudioOutput)) // available audio output devices + if (p.deviceName () == saved_name) { - if (p.deviceName () == saved_name) - { - audio_output_device_ = p; - } + audio_output_device_ = p; } } } @@ -1581,25 +1554,8 @@ void Configuration::impl::write_settings () settings_->setValue ("PTTport", rig_params_.ptt_port); settings_->setValue ("SaveDir", save_directory_.absolutePath ()); settings_->setValue ("AzElDir", azel_directory_.absolutePath ()); - - if (default_audio_input_device_selected_) - { - settings_->setValue ("SoundInName", QAudioDeviceInfo::defaultInputDevice ().deviceName ()); - } - else - { - settings_->setValue ("SoundInName", audio_input_device_.deviceName ()); - } - - if (default_audio_output_device_selected_) - { - settings_->setValue ("SoundOutName", QAudioDeviceInfo::defaultOutputDevice ().deviceName ()); - } - else - { - settings_->setValue ("SoundOutName", audio_output_device_.deviceName ()); - } - + settings_->setValue ("SoundInName", audio_input_device_.deviceName ()); + settings_->setValue ("SoundOutName", audio_output_device_.deviceName ()); settings_->setValue ("AudioInputChannel", AudioDevice::toString (audio_input_channel_)); settings_->setValue ("AudioOutputChannel", AudioDevice::toString (audio_output_channel_)); settings_->setValue ("AudioInputBufferSize", audio_input_buffer_size_); @@ -1816,8 +1772,8 @@ bool Configuration::impl::validate () if (ui_->sound_output_combo_box->currentIndex () < 0 && !QAudioDeviceInfo::availableDevices (QAudio::AudioOutput).empty ()) { - MessageBox::critical_message (this, tr ("Invalid audio out device")); - return false; + MessageBox::warning_message (this, tr ("Invalid audio output device")); + // don't reject as we can work without an audio output } if (!ui_->PTT_method_button_group->checkedButton ()->isEnabled ()) @@ -1990,25 +1946,12 @@ void Configuration::impl::accept () auto const& device_name = ui_->sound_input_combo_box->currentText (); if (device_name != audio_input_device_.deviceName ()) { - auto const& default_device = QAudioDeviceInfo::defaultInputDevice (); - if (device_name == default_device.deviceName ()) + audio_input_device_ = QAudioDeviceInfo {}; + Q_FOREACH (auto const& d, QAudioDeviceInfo::availableDevices (QAudio::AudioInput)) { - audio_input_device_ = default_device; - } - else - { - bool found {false}; - Q_FOREACH (auto const& d, QAudioDeviceInfo::availableDevices (QAudio::AudioInput)) + if (device_name == d.deviceName ()) { - if (device_name == d.deviceName ()) - { - audio_input_device_ = d; - found = true; - } - } - if (!found) - { - audio_input_device_ = default_device; + audio_input_device_ = d; } } restart_sound_input_device_ = true; @@ -2019,25 +1962,12 @@ void Configuration::impl::accept () auto const& device_name = ui_->sound_output_combo_box->currentText (); if (device_name != audio_output_device_.deviceName ()) { - auto const& default_device = QAudioDeviceInfo::defaultOutputDevice (); - if (device_name == default_device.deviceName ()) + audio_output_device_ = QAudioDeviceInfo {}; + Q_FOREACH (auto const& d, QAudioDeviceInfo::availableDevices (QAudio::AudioOutput)) { - audio_output_device_ = default_device; - } - else - { - bool found {false}; - Q_FOREACH (auto const& d, QAudioDeviceInfo::availableDevices (QAudio::AudioOutput)) + if (device_name == d.deviceName ()) { - if (device_name == d.deviceName ()) - { - audio_output_device_ = d; - found = true; - } - } - if (!found) - { - audio_output_device_ = default_device; + audio_output_device_ = d; } } restart_sound_output_device_ = true; @@ -2334,16 +2264,6 @@ void Configuration::impl::on_PTT_method_button_group_buttonClicked (int /* id */ set_rig_invariants (); } -void Configuration::impl::on_sound_input_combo_box_currentTextChanged (QString const& text) -{ - default_audio_input_device_selected_ = QAudioDeviceInfo::defaultInputDevice ().deviceName () == text; -} - -void Configuration::impl::on_sound_output_combo_box_currentTextChanged (QString const& text) -{ - default_audio_output_device_selected_ = QAudioDeviceInfo::defaultOutputDevice ().deviceName () == text; -} - void Configuration::impl::on_add_macro_line_edit_editingFinished () { ui_->add_macro_line_edit->setText (ui_->add_macro_line_edit->text ().toUpper ()); @@ -2861,47 +2781,18 @@ void Configuration::impl::close_rig () } } -// load the available audio devices into the selection combo box and -// select the default device if the current device isn't set or isn't -// available -bool Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * combo_box, QAudioDeviceInfo * device) +// load the available audio devices into the selection combo box +void Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * combo_box, QAudioDeviceInfo * device) { using std::copy; using std::back_inserter; - bool result {false}; - combo_box->clear (); int current_index = -1; - int default_index = -1; - - int extra_items {0}; - - auto const& default_device = (mode == QAudio::AudioInput ? QAudioDeviceInfo::defaultInputDevice () : QAudioDeviceInfo::defaultOutputDevice ()); - - // deal with special default audio devices on Windows - if ("Default Input Device" == default_device.deviceName () - || "Default Output Device" == default_device.deviceName ()) - { - default_index = 0; - - QList channel_counts; - auto scc = default_device.supportedChannelCounts (); - copy (scc.cbegin (), scc.cend (), back_inserter (channel_counts)); - - combo_box->addItem (default_device.deviceName (), channel_counts); - ++extra_items; - if (default_device == *device) - { - current_index = 0; - result = true; - } - } - Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (mode)) { -// qDebug () << "Audio device: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); + // qDebug () << "Audio device: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); // convert supported channel counts into something we can store in the item model QList channel_counts; @@ -2913,20 +2804,8 @@ bool Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * com { current_index = combo_box->count () - 1; } - else if (p == default_device) - { - default_index = combo_box->count () - 1; - } - } - if (current_index < 0) // not found - use default - { - *device = default_device; - result = true; - current_index = default_index; } combo_box->setCurrentIndex (current_index); - - return result; } // enable only the channels that are supported by the selected audio device From 02e19b687f1bad8e6539d95f78241d465ed5e6b0 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 17:12:48 +0100 Subject: [PATCH 10/36] Status message to report approximate # of dropped Rx audio frames This is a first cut at this to evaluate buffer size adjustments on supported platforms. A final version might limit status bar reports to >1000 dropped frames or similar. --- Audio/soundin.cpp | 18 ++++++++++++++++-- Audio/soundin.h | 6 +++++- main.cpp | 2 +- widgets/mainwindow.cpp | 30 ++++++++++++++++++++++-------- widgets/mainwindow.h | 1 + 5 files changed, 45 insertions(+), 12 deletions(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index e6e8ef783..5589393b9 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -117,9 +117,9 @@ void SoundInput::resume () } } -void SoundInput::handleStateChanged (QAudio::State newState) const +void SoundInput::handleStateChanged (QAudio::State newState) { - // qDebug () << "SoundInput::handleStateChanged: newState:" << newState; + qDebug () << "SoundInput::handleStateChanged: newState:" << newState; switch (newState) { @@ -128,6 +128,7 @@ void SoundInput::handleStateChanged (QAudio::State newState) const break; case QAudio::ActiveState: + reset (false); Q_EMIT status (tr ("Receiving")); break; @@ -154,6 +155,19 @@ void SoundInput::handleStateChanged (QAudio::State newState) const } } +void SoundInput::reset (bool report_dropped_frames) +{ + if (m_stream) + { + if (report_dropped_frames) + { + auto lost_usec = m_stream->elapsedUSecs () - m_stream->processedUSecs () - cummulative_lost_usec_; + Q_EMIT dropped_frames (m_stream->format ().framesForDuration (lost_usec), lost_usec); + } + cummulative_lost_usec_ = m_stream->elapsedUSecs () - m_stream->processedUSecs (); + } +} + void SoundInput::stop() { if (m_stream) diff --git a/Audio/soundin.h b/Audio/soundin.h index 325d5e89d..7e2c71d39 100644 --- a/Audio/soundin.h +++ b/Audio/soundin.h @@ -24,6 +24,7 @@ public: SoundInput (QObject * parent = nullptr) : QObject {parent} , m_sink {nullptr} + , cummulative_lost_usec_ {0} { } @@ -35,18 +36,21 @@ public: Q_SLOT void suspend (); Q_SLOT void resume (); Q_SLOT void stop (); + Q_SLOT void reset (bool report_dropped_frames); Q_SIGNAL void error (QString message) const; Q_SIGNAL void status (QString message) const; + Q_SIGNAL void dropped_frames (qint32 dropped, qint64 usec); private: // used internally - Q_SLOT void handleStateChanged (QAudio::State) const; + Q_SLOT void handleStateChanged (QAudio::State); bool audioError () const; QScopedPointer m_stream; QPointer m_sink; + qint64 cummulative_lost_usec_; }; #endif diff --git a/main.cpp b/main.cpp index 62e85e90f..c167a0396 100644 --- a/main.cpp +++ b/main.cpp @@ -97,7 +97,7 @@ namespace int main(int argc, char *argv[]) { // ### Add timestamps to all debug messages -// qSetMessagePattern ("[%{time yyyyMMdd HH:mm:ss.zzz t} %{if-debug}D%{endif}%{if-info}I%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{message}"); + qSetMessagePattern ("[%{time yyyyMMdd HH:mm:ss.zzz t} %{if-debug}D%{endif}%{if-info}I%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{message}"); init_random_seed (); diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index c9ee10b8a..6625e8fd9 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -469,9 +469,13 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect (this, &MainWindow::startAudioInputStream, m_soundInput, &SoundInput::start); connect (this, &MainWindow::suspendAudioInputStream, m_soundInput, &SoundInput::suspend); connect (this, &MainWindow::resumeAudioInputStream, m_soundInput, &SoundInput::resume); + connect (this, &MainWindow::reset_audio_input_stream, m_soundInput, &SoundInput::reset); connect (this, &MainWindow::finished, m_soundInput, &SoundInput::stop); connect(m_soundInput, &SoundInput::error, this, &MainWindow::showSoundInError); // connect(m_soundInput, &SoundInput::status, this, &MainWindow::showStatusMessage); + connect (m_soundInput, &SoundInput::dropped_frames, this, [this] (qint32 dropped_frames, qint64 usec) { + showStatusMessage (tr ("%1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6)); + }); connect (&m_audioThread, &QThread::finished, m_soundInput, &QObject::deleteLater); connect (this, &MainWindow::finished, this, &MainWindow::close); @@ -935,12 +939,18 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect (&m_wav_future_watcher, &QFutureWatcher::finished, this, &MainWindow::diskDat); connect(&watcher3, SIGNAL(finished()),this,SLOT(fast_decode_done())); - Q_EMIT startAudioInputStream (m_config.audio_input_device () - , m_config.audio_input_buffer_size () - , m_detector, m_downSampleFactor, m_config.audio_input_channel ()); - Q_EMIT initializeAudioOutputStream (m_config.audio_output_device () - , AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2 - , m_config.audio_output_buffer_size ()); + if (!m_config.audio_input_device ().isNull ()) + { + Q_EMIT startAudioInputStream (m_config.audio_input_device () + , m_config.audio_input_buffer_size () + , m_detector, m_downSampleFactor, m_config.audio_input_channel ()); + } + if (!m_config.audio_output_device ().isNull ()) + { + Q_EMIT initializeAudioOutputStream (m_config.audio_output_device () + , AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2 + , m_config.audio_output_buffer_size ()); + } Q_EMIT transmitFrequency (ui->TxFreqSpinBox->value () - m_XIT); enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook @@ -1536,6 +1546,10 @@ void MainWindow::dataSink(qint64 frames) if(m_mode!="WSPR") decode(); //Start decoder if(m_mode=="FT8" and !m_diskData and (m_ihsym==m_earlyDecode or m_ihsym==m_earlyDecode2)) return; + if (!m_diskData) + { + Q_EMIT reset_audio_input_stream (true); // signals dropped samples + } if(!m_diskData and (m_saveAll or m_saveDecoded or m_mode=="WSPR" or m_mode=="FST4W")) { //Always save unless "Save None"; may delete later if(m_TRperiod < 60) { @@ -2280,10 +2294,10 @@ bool MainWindow::eventFilter (QObject * object, QEvent * event) void MainWindow::createStatusBar() //createStatusBar { tx_status_label.setAlignment (Qt::AlignHCenter); - tx_status_label.setMinimumSize (QSize {150, 18}); + tx_status_label.setMinimumSize (QSize {100, 18}); tx_status_label.setStyleSheet ("QLabel{color: #000000; background-color: #00ff00}"); tx_status_label.setFrameStyle (QFrame::Panel | QFrame::Sunken); - statusBar()->addWidget (&tx_status_label); + statusBar()->addPermanentWidget (&tx_status_label); config_label.setAlignment (Qt::AlignHCenter); config_label.setMinimumSize (QSize {80, 18}); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 2f95ac801..a1673ec71 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -346,6 +346,7 @@ private: int TRperiod=60) const; Q_SIGNAL void outAttenuationChanged (qreal) const; Q_SIGNAL void toggleShorthand () const; + Q_SIGNAL void reset_audio_input_stream (bool report_dropped_frames) const; private: void set_mode (QString const& mode); From 2e413713a379bf2443c01d5a1264d1bc7e11cce7 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 19:40:42 +0100 Subject: [PATCH 11/36] Tidy dropped frame status bar message --- Audio/soundin.cpp | 1 + widgets/mainwindow.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index 5589393b9..a2856c255 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -163,6 +163,7 @@ void SoundInput::reset (bool report_dropped_frames) { auto lost_usec = m_stream->elapsedUSecs () - m_stream->processedUSecs () - cummulative_lost_usec_; Q_EMIT dropped_frames (m_stream->format ().framesForDuration (lost_usec), lost_usec); + qDebug () << "SoundInput::reset: frames dropped:" << m_stream->format ().framesForDuration (lost_usec) << "sec:" << lost_usec / 1.e6; } cummulative_lost_usec_ = m_stream->elapsedUSecs () - m_stream->processedUSecs (); } diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 6625e8fd9..f6cd97753 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -474,7 +474,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect(m_soundInput, &SoundInput::error, this, &MainWindow::showSoundInError); // connect(m_soundInput, &SoundInput::status, this, &MainWindow::showStatusMessage); connect (m_soundInput, &SoundInput::dropped_frames, this, [this] (qint32 dropped_frames, qint64 usec) { - showStatusMessage (tr ("%1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6)); + showStatusMessage (tr ("%1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6, 5, 'f', 3)); }); connect (&m_audioThread, &QThread::finished, m_soundInput, &QObject::deleteLater); From b5765401dc26acb41dac905c91ae0b2b61f7cf85 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 9 Aug 2020 14:21:25 -0400 Subject: [PATCH 12/36] TEMPORARY: Diagnostic routine for the "Save All" missing files problem. --- lib/symspec.f90 | 32 ++++++++++++++++++++++++++++++++ widgets/mainwindow.cpp | 2 ++ 2 files changed, 34 insertions(+) diff --git a/lib/symspec.f90 b/lib/symspec.f90 index a3bed192f..64c88815e 100644 --- a/lib/symspec.f90 +++ b/lib/symspec.f90 @@ -126,3 +126,35 @@ subroutine symspec(shared_data,k,TRperiod,nsps,ingain,bLowSidelobes, & return end subroutine symspec + +subroutine chk_samples(ihsym,k,nstop) + + integer*8 count0,count1,clkfreq + integer itime(8) + real*8 dtime,fsample + character*12 ctime + data count0/-1/,k0/99999999/,maxhsym/0/ + save count0,k0,maxhsym + + if(k.lt.k0 .or. count0.eq.-1) then + call system_clock(count0,clkfreq) + maxhsym=0 + endif + if((mod(ihsym,100).eq.0 .or. ihsym.ge.nstop-100) .and. & + k0.ne.99999999) then + call system_clock(count1,clkfreq) + dtime=dfloat(count1-count0)/dfloat(clkfreq) + if(dtime.lt.28.0) return + if(dtime.gt.1.d-6) fsample=(k-3456)/dtime + call date_and_time(values=itime) + sec=itime(7)+0.001*itime(8) + write(ctime,3000) itime(5)-itime(4)/60,itime(6),sec +3000 format(i2.2,':',i2.2,':',f6.3) + write(33,3033) ctime,dtime,ihsym,nstop,k,fsample +3033 format(a12,f12.6,2i7,i10,f15.3) + flush(33) + endif + k0=k + + return +end subroutine chk_samples diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 56c99f1a6..2a09e185e 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -178,6 +178,7 @@ extern "C" { void get_ft4msg_(int* idecode, char* line, int len); + void chk_samples_(int* m_ihsym,int* k, int* m_hsymStop); } int volatile itone[NUM_ISCAT_SYMBOLS]; //Audio tones for all Tx symbols @@ -1439,6 +1440,7 @@ void MainWindow::dataSink(qint64 frames) if(m_mode.startsWith("FST4")) npct=ui->sbNB->value(); symspec_(&dec_data,&k,&m_TRperiod,&nsps,&m_inGain,&bLowSidelobes,&nsmo,&m_px,s, &m_df3,&m_ihsym,&m_npts8,&m_pxmax,&npct); + chk_samples_(&m_ihsym,&k,&m_hsymStop); if(m_mode=="WSPR" or m_mode=="FST4W") wspr_downsample_(dec_data.d2,&k); if(m_ihsym <=0) return; if(ui) ui->signal_meter_widget->setValue(m_px,m_pxmax); // Update thermometer From 1892f39df37c7fb52a95792c7328c2e8b87caf75 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 10 Aug 2020 01:42:26 +0100 Subject: [PATCH 13/36] Revert "TEMPORARY: Diagnostic routine for the "Save All" missing files problem." This reverts commit b5765401dc26acb41dac905c91ae0b2b61f7cf85. --- lib/symspec.f90 | 32 -------------------------------- widgets/mainwindow.cpp | 2 -- 2 files changed, 34 deletions(-) diff --git a/lib/symspec.f90 b/lib/symspec.f90 index 64c88815e..a3bed192f 100644 --- a/lib/symspec.f90 +++ b/lib/symspec.f90 @@ -126,35 +126,3 @@ subroutine symspec(shared_data,k,TRperiod,nsps,ingain,bLowSidelobes, & return end subroutine symspec - -subroutine chk_samples(ihsym,k,nstop) - - integer*8 count0,count1,clkfreq - integer itime(8) - real*8 dtime,fsample - character*12 ctime - data count0/-1/,k0/99999999/,maxhsym/0/ - save count0,k0,maxhsym - - if(k.lt.k0 .or. count0.eq.-1) then - call system_clock(count0,clkfreq) - maxhsym=0 - endif - if((mod(ihsym,100).eq.0 .or. ihsym.ge.nstop-100) .and. & - k0.ne.99999999) then - call system_clock(count1,clkfreq) - dtime=dfloat(count1-count0)/dfloat(clkfreq) - if(dtime.lt.28.0) return - if(dtime.gt.1.d-6) fsample=(k-3456)/dtime - call date_and_time(values=itime) - sec=itime(7)+0.001*itime(8) - write(ctime,3000) itime(5)-itime(4)/60,itime(6),sec -3000 format(i2.2,':',i2.2,':',f6.3) - write(33,3033) ctime,dtime,ihsym,nstop,k,fsample -3033 format(a12,f12.6,2i7,i10,f15.3) - flush(33) - endif - k0=k - - return -end subroutine chk_samples diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 2a09e185e..56c99f1a6 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -178,7 +178,6 @@ extern "C" { void get_ft4msg_(int* idecode, char* line, int len); - void chk_samples_(int* m_ihsym,int* k, int* m_hsymStop); } int volatile itone[NUM_ISCAT_SYMBOLS]; //Audio tones for all Tx symbols @@ -1440,7 +1439,6 @@ void MainWindow::dataSink(qint64 frames) if(m_mode.startsWith("FST4")) npct=ui->sbNB->value(); symspec_(&dec_data,&k,&m_TRperiod,&nsps,&m_inGain,&bLowSidelobes,&nsmo,&m_px,s, &m_df3,&m_ihsym,&m_npts8,&m_pxmax,&npct); - chk_samples_(&m_ihsym,&k,&m_hsymStop); if(m_mode=="WSPR" or m_mode=="FST4W") wspr_downsample_(dec_data.d2,&k); if(m_ihsym <=0) return; if(ui) ui->signal_meter_widget->setValue(m_px,m_pxmax); // Update thermometer From ecde374cee29864f56da3942eaeb716a52949bc0 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 10 Aug 2020 11:01:38 +0100 Subject: [PATCH 14/36] Trying a fixed audio input buffer size --- Audio/soundin.cpp | 6 +++++- Detector/Detector.cpp | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index a2856c255..8fede3524 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -81,11 +81,13 @@ void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, Audi qDebug () << "SoundIn default buffer size (bytes):" << m_stream->bufferSize (); m_stream->setBufferSize (m_stream->format ().bytesForFrames (framesPerBuffer)); + m_stream->setBufferSize (m_stream->format ().bytesForFrames (3456 * 4 * 5)); qDebug () << "SoundIn selected buffer size (bytes):" << m_stream->bufferSize (); if (sink->initialize (QIODevice::WriteOnly, channel)) { m_stream->start (sink); audioError (); + cummulative_lost_usec_ = -1; } else { @@ -159,7 +161,9 @@ void SoundInput::reset (bool report_dropped_frames) { if (m_stream) { - if (report_dropped_frames) + if (cummulative_lost_usec_ >= 0 // don't report first time as we + // don't yet known latency + && report_dropped_frames) { auto lost_usec = m_stream->elapsedUSecs () - m_stream->processedUSecs () - cummulative_lost_usec_; Q_EMIT dropped_frames (m_stream->format ().framesForDuration (lost_usec), lost_usec); diff --git a/Detector/Detector.cpp b/Detector/Detector.cpp index 06b9c6b2d..7feb5a298 100644 --- a/Detector/Detector.cpp +++ b/Detector/Detector.cpp @@ -56,6 +56,7 @@ void Detector::clear () qint64 Detector::writeData (char const * data, qint64 maxSize) { + qDebug () << "Detector::writeData: size:" << maxSize; static unsigned mstr0=999999; qint64 ms0 = QDateTime::currentMSecsSinceEpoch() % 86400000; unsigned mstr = ms0 % int(1000.0*m_period); // ms into the nominal Tx start time @@ -119,8 +120,7 @@ qint64 Detector::writeData (char const * data, qint64 maxSize) remaining -= numFramesProcessed; } - - - return maxSize; // we drop any data past the end of the buffer on - // the floor until the next period starts + // we drop any data past the end of the buffer on the floor until + // the next period starts + return maxSize; } From 0cf14dfcc9e3f3a6f353bda809c3f4d06ad27c91 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 11 Aug 2020 13:48:01 +0100 Subject: [PATCH 15/36] Remove user adjustable audio buffer sizes from Settings Fixed buffer sizes are used. Rx use s 3456 x 1st downsample rate x 5 audio frames of buffer space. On Windows this means that each chunk (periodSize()) delivered from the audio stream is our initial DSP processing chunk size, thus matching audio buffer latency exactly with WSJT-X's own front end latency. This should result in optimal resilience to high system loads that might starve the soundcard ADC of buffers to fill and case dropped audio frames. For Tx a buffer sufficient for 1 s of audio is used at present, on Windows the period size will be set to 1/40 of that which gives reasonably low latency and plenty of resilience to high system loads that might starve the soundcard DAC of audio frames to render. Note that a 1 s buffer will make the "Pwr" slider slow to respond, we may have to reduce the Tx audio buffer size if this is seen as a problem. --- Audio/soundin.cpp | 13 ++-- Audio/soundout.cpp | 19 ++---- Configuration.cpp | 27 -------- Configuration.hpp | 2 - Configuration.ui | 135 +++++++++++----------------------------- Detector/Detector.cpp | 2 +- Modulator/Modulator.cpp | 2 +- widgets/mainwindow.cpp | 40 ++++++++---- 8 files changed, 79 insertions(+), 161 deletions(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index 8fede3524..19c41f61b 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -79,15 +79,16 @@ void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, Audi connect (m_stream.data(), &QAudioInput::stateChanged, this, &SoundInput::handleStateChanged); - qDebug () << "SoundIn default buffer size (bytes):" << m_stream->bufferSize (); - m_stream->setBufferSize (m_stream->format ().bytesForFrames (framesPerBuffer)); - m_stream->setBufferSize (m_stream->format ().bytesForFrames (3456 * 4 * 5)); - qDebug () << "SoundIn selected buffer size (bytes):" << m_stream->bufferSize (); + //qDebug () << "SoundIn default buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); + // the Windows MME version of QAudioInput uses 1/5 of the buffer + // size for period size other platforms seem to optimize themselves + m_stream->setBufferSize (m_stream->format ().bytesForFrames (framesPerBuffer * 5)); if (sink->initialize (QIODevice::WriteOnly, channel)) { m_stream->start (sink); audioError (); cummulative_lost_usec_ = -1; + //qDebug () << "SoundIn selected buffer size (bytes):" << m_stream->bufferSize () << "peirod size:" << m_stream->periodSize (); } else { @@ -121,7 +122,7 @@ void SoundInput::resume () void SoundInput::handleStateChanged (QAudio::State newState) { - qDebug () << "SoundInput::handleStateChanged: newState:" << newState; + //qDebug () << "SoundInput::handleStateChanged: newState:" << newState; switch (newState) { @@ -167,7 +168,7 @@ void SoundInput::reset (bool report_dropped_frames) { auto lost_usec = m_stream->elapsedUSecs () - m_stream->processedUSecs () - cummulative_lost_usec_; Q_EMIT dropped_frames (m_stream->format ().framesForDuration (lost_usec), lost_usec); - qDebug () << "SoundInput::reset: frames dropped:" << m_stream->format ().framesForDuration (lost_usec) << "sec:" << lost_usec / 1.e6; + //qDebug () << "SoundInput::reset: frames dropped:" << m_stream->format ().framesForDuration (lost_usec) << "sec:" << lost_usec / 1.e6; } cummulative_lost_usec_ = m_stream->elapsedUSecs () - m_stream->processedUSecs (); } diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index ecd7ce723..71625a3f6 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -79,24 +79,17 @@ void SoundOutput::restart (QIODevice * source) { Q_ASSERT (m_stream); - // - // This buffer size is critical since for proper sound streaming. If - // it is too short; high activity levels on the machine can starve - // the audio buffer. On the other hand the Windows implementation - // seems to take the length of the buffer in time to stop the audio - // stream even if reset() is used. - // - // 2 seconds seems a reasonable compromise except for Windows - // where things are probably broken. - // // we have to set this before every start on the stream because the // Windows implementation seems to forget the buffer size after a // stop. - qDebug () << "SoundOut default buffer size (bytes):" << m_stream->bufferSize (); - m_stream->setBufferSize (m_stream->format().bytesForFrames (m_framesBuffered)); - qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize (); + //qDebug () << "SoundOut default buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); + if (m_framesBuffered) + { + m_stream->setBufferSize (m_stream->format().bytesForFrames (m_framesBuffered)); + } m_stream->setCategory ("production"); m_stream->start (source); + //qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); } void SoundOutput::suspend () diff --git a/Configuration.cpp b/Configuration.cpp index 2a09dad6a..9b7d99eaf 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -242,8 +242,6 @@ namespace // Magic numbers for file validation constexpr quint32 qrg_magic {0xadbccbdb}; constexpr quint32 qrg_version {100}; // M.mm - - constexpr int default_audio_buffer_size = 10; } @@ -648,10 +646,8 @@ private: QAudioDeviceInfo audio_input_device_; AudioDevice::Channel audio_input_channel_; - int audio_input_buffer_size_; QAudioDeviceInfo audio_output_device_; AudioDevice::Channel audio_output_channel_; - int audio_output_buffer_size_; friend class Configuration; }; @@ -681,10 +677,8 @@ bool Configuration::is_active () const {return m_->isVisible ();} QAudioDeviceInfo const& Configuration::audio_input_device () const {return m_->audio_input_device_;} AudioDevice::Channel Configuration::audio_input_channel () const {return m_->audio_input_channel_;} -int Configuration::audio_input_buffer_size () const {return m_->audio_input_buffer_size_ * 1024;} QAudioDeviceInfo const& Configuration::audio_output_device () const {return m_->audio_output_device_;} AudioDevice::Channel Configuration::audio_output_channel () const {return m_->audio_output_channel_;} -int Configuration::audio_output_buffer_size () const {return m_->audio_output_buffer_size_ * 1024;} bool Configuration::restart_audio_input () const {return m_->restart_sound_input_device_;} bool Configuration::restart_audio_output () const {return m_->restart_sound_output_device_;} auto Configuration::type_2_msg_gen () const -> Type2MsgGen {return m_->type_2_msg_gen_;} @@ -978,8 +972,6 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network , transceiver_command_number_ {0} , degrade_ {0.} // initialize to zero each run, not // saved in settings - , audio_input_buffer_size_ {default_audio_buffer_size} - , audio_output_buffer_size_ {default_audio_buffer_size} { ui_->setupUi (this); @@ -1242,9 +1234,7 @@ void Configuration::impl::initialize_models () update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); - ui_->audio_ip_buffer_spin_box->setValue (audio_input_buffer_size_); ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); - ui_->audio_op_buffer_spin_box->setValue (audio_output_buffer_size_); ui_->save_path_display_label->setText (save_directory_.absolutePath ()); ui_->azel_path_display_label->setText (azel_directory_.absolutePath ()); @@ -1430,10 +1420,6 @@ void Configuration::impl::read_settings () audio_input_channel_ = AudioDevice::fromString (settings_->value ("AudioInputChannel", "Mono").toString ()); audio_output_channel_ = AudioDevice::fromString (settings_->value ("AudioOutputChannel", "Mono").toString ()); - // retrieve audio buffer size values - audio_input_buffer_size_ = settings_->value ("AudioInputBufferSize", default_audio_buffer_size).toInt (); - audio_output_buffer_size_ = settings_->value ("AudioOutputBufferSize", default_audio_buffer_size).toInt (); - type_2_msg_gen_ = settings_->value ("Type2MsgGen", QVariant::fromValue (Configuration::type_2_msg_3_full)).value (); monitor_off_at_startup_ = settings_->value ("MonitorOFF", false).toBool (); @@ -1558,8 +1544,6 @@ void Configuration::impl::write_settings () settings_->setValue ("SoundOutName", audio_output_device_.deviceName ()); settings_->setValue ("AudioInputChannel", AudioDevice::toString (audio_input_channel_)); settings_->setValue ("AudioOutputChannel", AudioDevice::toString (audio_output_channel_)); - settings_->setValue ("AudioInputBufferSize", audio_input_buffer_size_); - settings_->setValue ("AudioOutputBufferSize", audio_output_buffer_size_); settings_->setValue ("Type2MsgGen", QVariant::fromValue (type_2_msg_gen_)); settings_->setValue ("MonitorOFF", monitor_off_at_startup_); settings_->setValue ("MonitorLastUsed", monitor_last_used_); @@ -1988,17 +1972,6 @@ void Configuration::impl::accept () } Q_ASSERT (audio_output_channel_ <= AudioDevice::Both); - if (audio_input_buffer_size_ != ui_->audio_ip_buffer_spin_box->value ()) - { - audio_input_buffer_size_ = ui_->audio_ip_buffer_spin_box->value (); - restart_sound_input_device_ = true; - } - if (audio_output_buffer_size_ != ui_->audio_op_buffer_spin_box->value ()) - { - audio_output_buffer_size_ = ui_->audio_op_buffer_spin_box->value (); - restart_sound_output_device_ = true; - } - my_callsign_ = ui_->callsign_line_edit->text (); my_grid_ = ui_->grid_line_edit->text (); FD_exchange_= ui_->Field_Day_Exchange->text ().toUpper (); diff --git a/Configuration.hpp b/Configuration.hpp index 3087ea855..882a78629 100644 --- a/Configuration.hpp +++ b/Configuration.hpp @@ -87,10 +87,8 @@ public: QAudioDeviceInfo const& audio_input_device () const; AudioDevice::Channel audio_input_channel () const; - int audio_input_buffer_size () const; QAudioDeviceInfo const& audio_output_device () const; AudioDevice::Channel audio_output_channel () const; - int audio_output_buffer_size () const; // These query methods should be used after a call to exec() to // determine if either the audio input or audio output stream diff --git a/Configuration.ui b/Configuration.ui index eaa68bf30..610bc85ad 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -6,8 +6,8 @@ 0 0 - 553 - 563 + 554 + 557 @@ -1349,31 +1349,14 @@ radio interface behave as expected. Soundcard - - - - Select the channel to use for receiving. + + + + Ou&tput: + + + sound_output_combo_box - - - Mono - - - - - Left - - - - - Right - - - - - Both - - @@ -1416,24 +1399,6 @@ both here. - - - - Audio output buffer size in kilo-frames - -Adjust for minimum dropped samples reported. Too low values are likely to cause dropped samples causing audio drop-outs. - - - k - - - 4 - - - 128 - - - @@ -1447,27 +1412,6 @@ Adjust for minimum dropped samples reported. Too low values are likely to cause - - - - Audio input buffer size in kilo-frames - -Adjust for minimum dropped samples reported. Too low values are likely to cause dropped samples causing audio drop-outs. - - - k - - - - - - 4 - - - 128 - - - @@ -1485,34 +1429,31 @@ transmitting periods. - - - - Ou&tput: - - - sound_output_combo_box - - - - - - - Buffer: - - - audio_ip_buffer_spin_box - - - - - - - Buffer: - - - audio_op_buffer_spin_box + + + + Select the channel to use for receiving. + + + Mono + + + + + Left + + + + + Right + + + + + Both + + @@ -3064,10 +3005,8 @@ Right click for insert and delete options. test_PTT_push_button sound_input_combo_box sound_input_channel_combo_box - audio_ip_buffer_spin_box sound_output_combo_box sound_output_channel_combo_box - audio_op_buffer_spin_box save_path_select_push_button azel_path_select_push_button checkBoxPwrBandTxMemory @@ -3194,13 +3133,13 @@ Right click for insert and delete options. - - - + - + + + diff --git a/Detector/Detector.cpp b/Detector/Detector.cpp index 7feb5a298..d70dd42ff 100644 --- a/Detector/Detector.cpp +++ b/Detector/Detector.cpp @@ -56,7 +56,7 @@ void Detector::clear () qint64 Detector::writeData (char const * data, qint64 maxSize) { - qDebug () << "Detector::writeData: size:" << maxSize; + //qDebug () << "Detector::writeData: size:" << maxSize; static unsigned mstr0=999999; qint64 ms0 = QDateTime::currentMSecsSinceEpoch() % 86400000; unsigned mstr = ms0 % int(1000.0*m_period); // ms into the nominal Tx start time diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index d43de8292..e99b21a46 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -142,7 +142,7 @@ void Modulator::close () qint64 Modulator::readData (char * data, qint64 maxSize) { - // qDebug () << "readData: maxSize:" << maxSize; + //qDebug () << "readData: maxSize:" << maxSize; double toneFrequency=1500.0; if(m_nsps==6) { diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 56c99f1a6..beadaadc8 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -209,6 +209,8 @@ namespace QRegularExpression grid_regexp {"\\A(?![Rr]{2}73)[A-Ra-r]{2}[0-9]{2}([A-Xa-x]{2}){0,1}\\z"}; auto quint32_max = std::numeric_limits::max (); constexpr int N_WIDGETS {34}; + constexpr int rx_chunk_size {3456}; // audio samples at 12000 Hz + constexpr int tx_audio_buffer_size {48000}; // audio samples at 48000 Hz bool message_is_73 (int type, QStringList const& msg_parts) { @@ -474,7 +476,18 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect(m_soundInput, &SoundInput::error, this, &MainWindow::showSoundInError); // connect(m_soundInput, &SoundInput::status, this, &MainWindow::showStatusMessage); connect (m_soundInput, &SoundInput::dropped_frames, this, [this] (qint32 dropped_frames, qint64 usec) { - showStatusMessage (tr ("%1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6, 5, 'f', 3)); + if (dropped_frames > 4800) // 1/10 second + { + showStatusMessage (tr ("%1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6, 5, 'f', 3)); + } + if (dropped_frames > 24000) // 1/2 + // second + { + MessageBox::warning_message (this + , tr ("Audio Source") + , tr ("Excessive dropped samples") + , tr ("Reduce system load, or increase audio buffer size")); + } }); connect (&m_audioThread, &QThread::finished, m_soundInput, &QObject::deleteLater); @@ -942,14 +955,14 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, if (!m_config.audio_input_device ().isNull ()) { Q_EMIT startAudioInputStream (m_config.audio_input_device () - , m_config.audio_input_buffer_size () + , rx_chunk_size * m_downSampleFactor , m_detector, m_downSampleFactor, m_config.audio_input_channel ()); } if (!m_config.audio_output_device ().isNull ()) { Q_EMIT initializeAudioOutputStream (m_config.audio_output_device () , AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2 - , m_config.audio_output_buffer_size ()); + , tx_audio_buffer_size); } Q_EMIT transmitFrequency (ui->TxFreqSpinBox->value () - m_XIT); @@ -1628,14 +1641,15 @@ QString MainWindow::save_wave_file (QString const& name, short const * data, int format.setChannelCount (1); format.setSampleSize (16); format.setSampleType (QAudioFormat::SignedInt); - auto source = QString {"%1, %2"}.arg (my_callsign).arg (my_grid); - auto comment = QString {"Mode=%1%2, Freq=%3%4"} - .arg (mode) - .arg (QString {(mode.contains ('J') && !mode.contains ('+')) || mode.startsWith ("FST4") - ? QString {", Sub Mode="} + QChar {'A' + sub_mode} - : QString {}}) - .arg (Radio::frequency_MHz_string (frequency)) - .arg (QString {mode!="WSPR" ? QString {", DXCall=%1, DXGrid=%2"} + auto source = QString {"%1; %2"}.arg (my_callsign).arg (my_grid); + auto comment = QString {"Mode=%1%2; Freq=%3%4"} + .arg (mode) + .arg (QString {(mode.contains ('J') && !mode.contains ('+')) + || mode.startsWith ("FST4") || mode.startsWith ("QRA") + ? QString {"; Sub Mode="} + QString::number (int (samples / 12000)) + QChar {'A' + sub_mode} + : QString {}}) + .arg (Radio::frequency_MHz_string (frequency)) + .arg (QString {mode!="WSPR" ? QString {"; DXCall=%1; DXGrid=%2"} .arg (his_call) .arg (his_grid).toLocal8Bit () : ""}); BWFFile::InfoDictionary list_info { @@ -1814,7 +1828,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog if(m_config.restart_audio_input ()) { Q_EMIT startAudioInputStream (m_config.audio_input_device () - , m_config.audio_input_buffer_size () + , rx_chunk_size * m_downSampleFactor , m_detector, m_downSampleFactor , m_config.audio_input_channel ()); } @@ -1822,7 +1836,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog if(m_config.restart_audio_output ()) { Q_EMIT initializeAudioOutputStream (m_config.audio_output_device () , AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2 - , m_config.audio_output_buffer_size ()); + , tx_audio_buffer_size); } displayDialFrequency (); From 4f68dfda402aa6d40fbde3ee18fd4e535779e4d3 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 11 Aug 2020 14:27:46 +0100 Subject: [PATCH 16/36] Only tune audio buffer sizes on Windows --- Audio/soundin.cpp | 4 ++++ Audio/soundout.cpp | 2 ++ 2 files changed, 6 insertions(+) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index 19c41f61b..ad9e43444 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -82,7 +82,11 @@ void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, Audi //qDebug () << "SoundIn default buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); // the Windows MME version of QAudioInput uses 1/5 of the buffer // size for period size other platforms seem to optimize themselves +#if defined (Q_OS_WIN) m_stream->setBufferSize (m_stream->format ().bytesForFrames (framesPerBuffer * 5)); +#else + Q_UNUSED (framesPerBuffer); +#endif if (sink->initialize (QIODevice::WriteOnly, channel)) { m_stream->start (sink); diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index 71625a3f6..cda5fa333 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -85,7 +85,9 @@ void SoundOutput::restart (QIODevice * source) //qDebug () << "SoundOut default buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); if (m_framesBuffered) { +#if defined (Q_OS_WIN) m_stream->setBufferSize (m_stream->format().bytesForFrames (m_framesBuffered)); +#endif } m_stream->setCategory ("production"); m_stream->start (source); From 8e37dbd8c166878c5047eb24a98d1056474be8ee Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 11 Aug 2020 16:08:21 +0100 Subject: [PATCH 17/36] Increased threshold for status message and warning on dropped frames --- widgets/mainwindow.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index beadaadc8..b9025ad6a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -476,17 +476,16 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect(m_soundInput, &SoundInput::error, this, &MainWindow::showSoundInError); // connect(m_soundInput, &SoundInput::status, this, &MainWindow::showStatusMessage); connect (m_soundInput, &SoundInput::dropped_frames, this, [this] (qint32 dropped_frames, qint64 usec) { - if (dropped_frames > 4800) // 1/10 second + if (dropped_frames > 48000 / 5) // 1/5 second { showStatusMessage (tr ("%1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6, 5, 'f', 3)); } - if (dropped_frames > 24000) // 1/2 - // second + if (dropped_frames > 48000) // 1 second { MessageBox::warning_message (this , tr ("Audio Source") , tr ("Excessive dropped samples") - , tr ("Reduce system load, or increase audio buffer size")); + , tr ("Reduce system load")); } }); connect (&m_audioThread, &QThread::finished, m_soundInput, &QObject::deleteLater); From e27b09b5902ab5b87b1eae2b732d94cf8f72b781 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 11 Aug 2020 16:09:51 +0100 Subject: [PATCH 18/36] Revert Tx status widget on status bar to non-permanent placement --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index b9025ad6a..da27e66b1 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -2310,7 +2310,7 @@ void MainWindow::createStatusBar() //createStatusBar tx_status_label.setMinimumSize (QSize {100, 18}); tx_status_label.setStyleSheet ("QLabel{color: #000000; background-color: #00ff00}"); tx_status_label.setFrameStyle (QFrame::Panel | QFrame::Sunken); - statusBar()->addPermanentWidget (&tx_status_label); + statusBar()->addWidget (&tx_status_label); config_label.setAlignment (Qt::AlignHCenter); config_label.setMinimumSize (QSize {80, 18}); From 185f57013658530f6c39e7dcd891f89bc2c63550 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 11 Aug 2020 20:07:00 +0100 Subject: [PATCH 19/36] Avoid accessing shared memory after it has been deleted --- widgets/mainwindow.cpp | 114 +++++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 55 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index da27e66b1..c9d8d662a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3137,56 +3137,58 @@ void MainWindow::decode() //decode() //newdat=1 ==> this is new data, must do the big FFT //nagain=1 ==> decode only at fQSO +/- Tol - char *to = (char*)mem_jt9->data(); - char *from = (char*) dec_data.ipc; - int size=sizeof(struct dec_data); - if(dec_data.params.newdat==0) { - int noffset {offsetof (struct dec_data, params.nutc)}; - to += noffset; - from += noffset; - size -= noffset; - } - if(m_mode=="ISCAT" or m_mode=="MSK144" or m_bFast9) { - float t0=m_t0; - float t1=m_t1; - qApp->processEvents(); //Update the waterfall - if(m_nPick > 0) { - t0=m_t0Pick; - t1=m_t1Pick; + if (auto * to = reinterpret_cast (mem_jt9->data())) + { + char *from = (char*) dec_data.ipc; + int size=sizeof(struct dec_data); + if(dec_data.params.newdat==0) { + int noffset {offsetof (struct dec_data, params.nutc)}; + to += noffset; + from += noffset; + size -= noffset; + } + if(m_mode=="ISCAT" or m_mode=="MSK144" or m_bFast9) { + float t0=m_t0; + float t1=m_t1; + qApp->processEvents(); //Update the waterfall + if(m_nPick > 0) { + t0=m_t0Pick; + t1=m_t1Pick; + } + static short int d2b[360000]; + narg[0]=dec_data.params.nutc; + if(m_kdone>int(12000.0*m_TRperiod)) { + m_kdone=int(12000.0*m_TRperiod); + } + narg[1]=m_kdone; + narg[2]=m_nSubMode; + narg[3]=dec_data.params.newdat; + narg[4]=dec_data.params.minSync; + narg[5]=m_nPick; + narg[6]=1000.0*t0; + narg[7]=1000.0*t1; + narg[8]=2; //Max decode lines per decode attempt + if(dec_data.params.minSync<0) narg[8]=50; + if(m_mode=="ISCAT") narg[9]=101; //ISCAT + if(m_mode=="JT9") narg[9]=102; //Fast JT9 + if(m_mode=="MSK144") narg[9]=104; //MSK144 + narg[10]=ui->RxFreqSpinBox->value(); + narg[11]=ui->sbFtol->value (); + narg[12]=0; + narg[13]=-1; + narg[14]=m_config.aggressive(); + memcpy(d2b,dec_data.d2,2*360000); + watcher3.setFuture (QtConcurrent::run (std::bind (fast_decode_,&d2b[0], + &narg[0],&m_TRperiod,&m_msg[0][0], + dec_data.params.mycall,dec_data.params.hiscall,8000,12,12))); + } else { + mem_jt9->lock (); + memcpy(to, from, qMin(mem_jt9->size(), size)); + mem_jt9->unlock (); + to_jt9(m_ihsym,1,-1); //Send m_ihsym to jt9[.exe] and start decoding + decodeBusy(true); + } } - static short int d2b[360000]; - narg[0]=dec_data.params.nutc; - if(m_kdone>int(12000.0*m_TRperiod)) { - m_kdone=int(12000.0*m_TRperiod); - } - narg[1]=m_kdone; - narg[2]=m_nSubMode; - narg[3]=dec_data.params.newdat; - narg[4]=dec_data.params.minSync; - narg[5]=m_nPick; - narg[6]=1000.0*t0; - narg[7]=1000.0*t1; - narg[8]=2; //Max decode lines per decode attempt - if(dec_data.params.minSync<0) narg[8]=50; - if(m_mode=="ISCAT") narg[9]=101; //ISCAT - if(m_mode=="JT9") narg[9]=102; //Fast JT9 - if(m_mode=="MSK144") narg[9]=104; //MSK144 - narg[10]=ui->RxFreqSpinBox->value(); - narg[11]=ui->sbFtol->value (); - narg[12]=0; - narg[13]=-1; - narg[14]=m_config.aggressive(); - memcpy(d2b,dec_data.d2,2*360000); - watcher3.setFuture (QtConcurrent::run (std::bind (fast_decode_,&d2b[0], - &narg[0],&m_TRperiod,&m_msg[0][0], - dec_data.params.mycall,dec_data.params.hiscall,8000,12,12))); - } else { - mem_jt9->lock (); - memcpy(to, from, qMin(mem_jt9->size(), size)); - mem_jt9->unlock (); - to_jt9(m_ihsym,1,-1); //Send m_ihsym to jt9[.exe] and start decoding - decodeBusy(true); - } } void::MainWindow::fast_decode_done() @@ -3234,12 +3236,14 @@ void::MainWindow::fast_decode_done() void MainWindow::to_jt9(qint32 n, qint32 istart, qint32 idone) { - dec_data_t * dd = reinterpret_cast (mem_jt9->data()); - mem_jt9->lock (); - dd->ipc[0]=n; - if(istart>=0) dd->ipc[1]=istart; - if(idone>=0) dd->ipc[2]=idone; - mem_jt9->unlock (); + if (auto * dd = reinterpret_cast (mem_jt9->data())) + { + mem_jt9->lock (); + dd->ipc[0]=n; + if(istart>=0) dd->ipc[1]=istart; + if(idone>=0) dd->ipc[2]=idone; + mem_jt9->unlock (); + } } void MainWindow::decodeDone () From c06758007162a5874718249055d86523a0bcc889 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 11 Aug 2020 20:09:42 +0100 Subject: [PATCH 20/36] Performance optimization of frequencies and station info table views --- Configuration.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Configuration.cpp b/Configuration.cpp index 9b7d99eaf..0d45e2a7a 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -1124,7 +1124,9 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network ui_->frequencies_table_view->setModel (&next_frequencies_); ui_->frequencies_table_view->horizontalHeader ()->setSectionResizeMode (QHeaderView::ResizeToContents); + ui_->frequencies_table_view->horizontalHeader ()->setResizeContentsPrecision (0); ui_->frequencies_table_view->verticalHeader ()->setSectionResizeMode (QHeaderView::ResizeToContents); + ui_->frequencies_table_view->verticalHeader ()->setResizeContentsPrecision (0); ui_->frequencies_table_view->sortByColumn (FrequencyList_v2::frequency_column, Qt::AscendingOrder); ui_->frequencies_table_view->setColumnHidden (FrequencyList_v2::frequency_mhz_column, true); @@ -1164,7 +1166,9 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network stations_.sort (StationList::band_column); ui_->stations_table_view->setModel (&next_stations_); ui_->stations_table_view->horizontalHeader ()->setSectionResizeMode (QHeaderView::ResizeToContents); + ui_->stations_table_view->horizontalHeader ()->setResizeContentsPrecision (0); ui_->stations_table_view->verticalHeader ()->setSectionResizeMode (QHeaderView::ResizeToContents); + ui_->stations_table_view->verticalHeader ()->setResizeContentsPrecision (0); ui_->stations_table_view->sortByColumn (StationList::band_column, Qt::AscendingOrder); // stations delegates From e69226b29ac31e3e4d31a2d2a71cd0cf260d5511 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 12 Aug 2020 02:33:15 +0100 Subject: [PATCH 21/36] Avoid enumerating audio devices until absolutely necessary Enumerating audio devices with QAudioDeviceInfo::availableDevices() takes a long time on Linux with pulseaudio. This change only enumerates up to the selected device when configuring and only enumerates the whole list when the Settings->Audio tab is current. This change also warns with a message box when Tx is started with no audio output device configured. --- Audio/soundout.cpp | 6 +++- Configuration.cpp | 82 +++++++++++++++++++++++----------------------- 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index cda5fa333..16a515370 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -77,7 +77,11 @@ void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, void SoundOutput::restart (QIODevice * source) { - Q_ASSERT (m_stream); + if (!m_stream) + { + Q_EMIT error (tr ("No audio output device configured.")); + return; + } // we have to set this before every start on the stream because the // Windows implementation seems to forget the buffer size after a diff --git a/Configuration.cpp b/Configuration.cpp index 0d45e2a7a..59be7f867 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -137,6 +137,8 @@ #include #include #include +#include +#include #include #include #include @@ -401,6 +403,7 @@ class Configuration::impl final public: using FrequencyDelta = Radio::FrequencyDelta; using port_type = Configuration::port_type; + using audio_info_type = QPair >; explicit impl (Configuration * self , QNetworkAccessManager * network_manager @@ -429,6 +432,7 @@ private: void read_settings (); void write_settings (); + Q_SLOT void lazy_models_load (int); void load_audio_devices (QAudio::Mode, QComboBox *, QAudioDeviceInfo *); void update_audio_channels (QComboBox const *, int, QComboBox *, bool); @@ -1094,6 +1098,7 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network // // setup hooks to keep audio channels aligned with devices // + connect (ui_->configuration_tabs, &QTabWidget::currentChanged, this, &Configuration::impl::lazy_models_load); { using namespace std; using namespace std::placeholders; @@ -1201,6 +1206,29 @@ Configuration::impl::~impl () write_settings (); } +void Configuration::impl::lazy_models_load (int current_tab_index) +{ + switch (current_tab_index) + { + case 2: // Audio + // + // load combo boxes with audio setup choices + // + load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &audio_input_device_); + load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &audio_output_device_); + + update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); + update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); + + ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); + ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); + break; + + default: + break; + } +} + void Configuration::impl::initialize_models () { auto pal = ui_->callsign_line_edit->palette (); @@ -1225,21 +1253,6 @@ void Configuration::impl::initialize_models () ui_->sbBandwidth->setValue (RxBandwidth_); ui_->PTT_method_button_group->button (rig_params_.ptt_type)->setChecked (true); - // - // load combo boxes with audio setup choices - // - // - // load combo boxes with audio setup choices - // - load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &audio_input_device_); - load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &audio_output_device_); - - update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); - update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); - - ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); - ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); - ui_->save_path_display_label->setText (save_directory_.absolutePath ()); ui_->azel_path_display_label->setText (azel_directory_.absolutePath ()); ui_->CW_id_after_73_check_box->setChecked (id_after_73_); @@ -1402,6 +1415,7 @@ void Configuration::impl::read_settings () if (p.deviceName () == saved_name) { audio_input_device_ = p; + break; } } } @@ -1416,6 +1430,7 @@ void Configuration::impl::read_settings () if (p.deviceName () == saved_name) { audio_output_device_ = p; + break; } } } @@ -1750,15 +1765,13 @@ void Configuration::impl::set_rig_invariants () bool Configuration::impl::validate () { - if (ui_->sound_input_combo_box->currentIndex () < 0 - && !QAudioDeviceInfo::availableDevices (QAudio::AudioInput).empty ()) + if (ui_->sound_input_combo_box->currentIndex () < 0) { MessageBox::critical_message (this, tr ("Invalid audio input device")); return false; } - if (ui_->sound_output_combo_box->currentIndex () < 0 - && !QAudioDeviceInfo::availableDevices (QAudio::AudioOutput).empty ()) + if (ui_->sound_output_combo_box->currentIndex () < 0) { MessageBox::warning_message (this, tr ("Invalid audio output device")); // don't reject as we can work without an audio output @@ -1931,33 +1944,19 @@ void Configuration::impl::accept () // Check to see whether SoundInThread must be restarted, // and save user parameters. { - auto const& device_name = ui_->sound_input_combo_box->currentText (); - if (device_name != audio_input_device_.deviceName ()) + auto const& selected_device = ui_->sound_input_combo_box->currentData ().value ().first; + if (selected_device != audio_input_device_) { - audio_input_device_ = QAudioDeviceInfo {}; - Q_FOREACH (auto const& d, QAudioDeviceInfo::availableDevices (QAudio::AudioInput)) - { - if (device_name == d.deviceName ()) - { - audio_input_device_ = d; - } - } + audio_input_device_ = selected_device; restart_sound_input_device_ = true; } } { - auto const& device_name = ui_->sound_output_combo_box->currentText (); - if (device_name != audio_output_device_.deviceName ()) + auto const& selected_device = ui_->sound_output_combo_box->currentData ().value ().first; + if (selected_device != audio_output_device_) { - audio_output_device_ = QAudioDeviceInfo {}; - Q_FOREACH (auto const& d, QAudioDeviceInfo::availableDevices (QAudio::AudioOutput)) - { - if (device_name == d.deviceName ()) - { - audio_output_device_ = d; - } - } + audio_output_device_ = selected_device; restart_sound_output_device_ = true; } } @@ -2776,7 +2775,7 @@ void Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * com auto scc = p.supportedChannelCounts (); copy (scc.cbegin (), scc.cend (), back_inserter (channel_counts)); - combo_box->addItem (p.deviceName (), channel_counts); + combo_box->addItem (p.deviceName (), QVariant::fromValue (audio_info_type {p, channel_counts})); if (p == *device) { current_index = combo_box->count () - 1; @@ -2794,7 +2793,8 @@ void Configuration::impl::update_audio_channels (QComboBox const * source_combo_ combo_box->setItemData (i, combo_box_item_disabled, Qt::UserRole - 1); } - Q_FOREACH (QVariant const& v, source_combo_box->itemData (index).toList ()) + Q_FOREACH (QVariant const& v + , (source_combo_box->itemData (index).value ().second)) { // enable valid options int n {v.toInt ()}; From 11abe7c60f9de3b17f6b8a027baee5fdf20f7f0b Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 13 Aug 2020 10:30:49 +0100 Subject: [PATCH 22/36] Cosmetic reformating --- Audio/AudioDevice.hpp | 52 +++++++++++++++++++++--------------------- widgets/mainwindow.cpp | 20 ++++++++-------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/Audio/AudioDevice.hpp b/Audio/AudioDevice.hpp index c4354687c..3ab19f0f4 100644 --- a/Audio/AudioDevice.hpp +++ b/Audio/AudioDevice.hpp @@ -43,23 +43,23 @@ protected: qint16 const * begin (reinterpret_cast (source)); for ( qint16 const * i = begin; i != begin + numFrames * (bytesPerFrame () / sizeof (qint16)); i += bytesPerFrame () / sizeof (qint16)) { - switch (m_channel) - { - case Mono: - *dest++ = *i; - break; + switch (m_channel) + { + case Mono: + *dest++ = *i; + break; - case Right: - *dest++ = *(i + 1); - break; + case Right: + *dest++ = *(i + 1); + break; - case Both: // should be able to happen but if it - // does we'll take left - Q_ASSERT (Both == m_channel); - case Left: - *dest++ = *i; - break; - } + case Both: // should be able to happen but if it + // does we'll take left + Q_ASSERT (Both == m_channel); + case Left: + *dest++ = *i; + break; + } } } @@ -68,23 +68,23 @@ protected: switch (m_channel) { case Mono: - *dest++ = sample; - break; + *dest++ = sample; + break; case Left: - *dest++ = sample; - *dest++ = 0; - break; + *dest++ = sample; + *dest++ = 0; + break; case Right: - *dest++ = 0; - *dest++ = sample; - break; + *dest++ = 0; + *dest++ = sample; + break; case Both: - *dest++ = sample; - *dest++ = sample; - break; + *dest++ = sample; + *dest++ = sample; + break; } return dest; } diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index c9d8d662a..ed6692fdb 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -484,8 +484,8 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, { MessageBox::warning_message (this , tr ("Audio Source") - , tr ("Excessive dropped samples") - , tr ("Reduce system load")); + , tr ("Reduce system load") + , tr ("Excessive dropped samples - %1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6, 5, 'f', 3)); } }); connect (&m_audioThread, &QThread::finished, m_soundInput, &QObject::deleteLater); @@ -2950,7 +2950,7 @@ void MainWindow::on_actionSpecial_mouse_commands_triggered() Click to set Rx frequency.
Shift-click to set Tx frequency.
Ctrl-click or Right-click to set Rx and Tx frequencies.
- Double-click to also decode at Rx frequency.
+ Double-click to also decode at Rx frequency.
@@ -2958,10 +2958,10 @@ void MainWindow::on_actionSpecial_mouse_commands_triggered() Double-click to copy second callsign to Dx Call,
locator to Dx Grid, change Rx and Tx frequency to
decoded signal's frequency, and generate standard
- messages.
- If Hold Tx Freq is checked or first callsign in message
- is your own call, Tx frequency is not changed unless
- Ctrl is held down.
+ messages.
+ If Hold Tx Freq is checked or first callsign in message
+ is your own call, Tx frequency is not changed unless
+ Ctrl is held down.
@@ -5270,11 +5270,11 @@ bool MainWindow::stdCall(QString const& w) { static QRegularExpression standard_call_re { R"( - ^\s* # optional leading spaces + ^\s* # optional leading spaces ( [A-Z]{0,2} | [A-Z][0-9] | [0-9][A-Z] ) # part 1 ( [0-9][A-Z]{0,3} ) # part 2 - (/R | /P)? # optional suffix - \s*$ # optional trailing spaces + (/R | /P)? # optional suffix + \s*$ # optional trailing spaces )", QRegularExpression::CaseInsensitiveOption | QRegularExpression::ExtendedPatternSyntaxOption}; return standard_call_re.match (w).hasMatch (); } From 7eb229ecdec0fd04e7656a0b25a55c0c86567f6e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 13 Aug 2020 10:31:23 +0100 Subject: [PATCH 23/36] Reduce Tx audio buffer size improve Pwr control granularity --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index ed6692fdb..d66b98788 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -210,7 +210,7 @@ namespace auto quint32_max = std::numeric_limits::max (); constexpr int N_WIDGETS {34}; constexpr int rx_chunk_size {3456}; // audio samples at 12000 Hz - constexpr int tx_audio_buffer_size {48000}; // audio samples at 48000 Hz + constexpr int tx_audio_buffer_size {48000 / 5}; // audio frames at 48000 Hz bool message_is_73 (int type, QStringList const& msg_parts) { From f7377e686f400126bb8e2a366bf8c304002738cf Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 14 Aug 2020 14:47:07 +0100 Subject: [PATCH 24/36] Move bundled cty.dat from resources FS to installation data dir This file is only used at start up so there is little point to keeping it in program memory. --- CMakeLists.txt | 2 +- logbook/AD1CCty.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b0931ace..be835a24d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -748,7 +748,6 @@ set (all_C_and_CXXSRCS ) set (TOP_LEVEL_RESOURCES - cty.dat icons/Darwin/wsjtx.iconset/icon_128x128.png contrib/gpl-v3-logo.svg artwork/splash.png @@ -1574,6 +1573,7 @@ install (FILES ) install (FILES + cty.dat contrib/Ephemeris/JPLEPH DESTINATION ${CMAKE_INSTALL_DATADIR}/${CMAKE_PROJECT_NAME} #COMPONENT runtime diff --git a/logbook/AD1CCty.cpp b/logbook/AD1CCty.cpp index 23d34fb43..4112ddfb3 100644 --- a/logbook/AD1CCty.cpp +++ b/logbook/AD1CCty.cpp @@ -319,12 +319,12 @@ AD1CCty::AD1CCty (Configuration const * configuration) { Q_ASSERT (configuration); // TODO: G4WJS - consider doing the following asynchronously to - // speed up startup. Not urgent as it takes less than 1s on a Core + // speed up startup. Not urgent as it takes less than 0.5s on a Core // i7 reading BIG CTY.DAT. QDir dataPath {QStandardPaths::writableLocation (QStandardPaths::DataLocation)}; m_->path_ = dataPath.exists (file_name) ? dataPath.absoluteFilePath (file_name) // user override - : QString {":/"} + file_name; // or original in the resources FS + : configuration->data_dir ().absoluteFilePath (file_name); // or original QFile file {m_->path_}; if (file.open (QFile::ReadOnly)) { From 7cc7687c90ab126057a323703093f159dab703a3 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 02:45:25 +0100 Subject: [PATCH 25/36] Fix an off-by-one defect in WSPR random scheduling Scheduler now correctly honours 0% and 100% schedules an dno longer need special cases in UI code. --- WSPR/WSPRBandHopping.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WSPR/WSPRBandHopping.cpp b/WSPR/WSPRBandHopping.cpp index 84d09116d..cf7cc2f94 100644 --- a/WSPR/WSPRBandHopping.cpp +++ b/WSPR/WSPRBandHopping.cpp @@ -220,7 +220,7 @@ public: , carry_ {false} , seed_ {{rand (), rand (), rand (), rand (), rand (), rand (), rand (), rand ()}} , gen_ {seed_} - , dist_ {1, 100} + , dist_ {0, 99} { auto num_bands = configuration_->bands ()->rowCount (); for (auto& flags : bands_) From e17ad223ae7008443c6a1a012f77fb723c19074c Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 02:57:23 +0100 Subject: [PATCH 26/36] Tx Next button enables automatic Tx Also a number of WSPR/FST4W code clean-ups including getting the Tx Next button to function as intended. --- widgets/mainwindow.cpp | 79 +++++++++++++++++------------------------- widgets/mainwindow.h | 2 -- widgets/mainwindow.ui | 15 ++++++-- 3 files changed, 44 insertions(+), 52 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index d66b98788..cbca7272b 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -285,7 +285,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_idleMinutes {0}, m_nSubMode {0}, m_nclearave {1}, - m_pctx {0}, m_nseq {0}, m_nWSPRdecodes {0}, m_k0 {9999999}, @@ -311,7 +310,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_bShMsgs {false}, m_bSWL {false}, m_uploading {false}, - m_txNext {false}, m_grid6 {false}, m_tuneup {false}, m_bTxTime {false}, @@ -996,7 +994,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, } m_saveDecoded=ui->actionSave_decoded->isChecked(); m_saveAll=ui->actionSave_all->isChecked(); - ui->sbTxPercent->setValue(m_pctx); ui->TxPowerComboBox->setCurrentIndex(int(.3 * m_dBm + .2)); ui->cbUploadWSPR_Spots->setChecked(m_uploadWSPRSpots); if((m_ndepth&7)==1) ui->actionQuickDecode->setChecked(true); @@ -1019,12 +1016,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_isort=-3; m_max_dB=70; m_CQtype="CQ"; - - if(m_mode=="WSPR" and m_pctx>0) { - QPalette palette {ui->sbTxPercent->palette ()}; - palette.setColor(QPalette::Base,Qt::yellow); - ui->sbTxPercent->setPalette(palette); - } fixStop(); VHF_features_enabled(m_config.enable_VHF_features()); m_wideGraph->setVHF(m_config.enable_VHF_features()); @@ -1168,7 +1159,7 @@ void MainWindow::writeSettings() m_settings->setValue("GUItab",ui->tabWidget->currentIndex()); m_settings->setValue("OutBufSize",outBufSize); m_settings->setValue ("HoldTxFreq", ui->cbHoldTxFreq->isChecked ()); - m_settings->setValue("PctTx",m_pctx); + m_settings->setValue("PctTx", ui->sbTxPercent->value ()); m_settings->setValue("dBm",m_dBm); m_settings->setValue("RR73",m_send_RR73); m_settings->setValue ("WSPRPreferType1", ui->WSPR_prefer_type_1_check_box->isChecked ()); @@ -1259,7 +1250,8 @@ void MainWindow::readSettings() ui->TxFreqSpinBox->setValue(0); // ensure a change is signaled ui->TxFreqSpinBox->setValue(m_settings->value("TxFreq",1500).toInt()); m_ndepth=m_settings->value("NDepth",3).toInt(); - m_pctx=m_settings->value("PctTx",20).toInt(); + ui->sbTxPercent->setValue (m_settings->value ("PctTx", 20).toInt ()); + on_sbTxPercent_valueChanged (ui->sbTxPercent->value ()); m_dBm=m_settings->value("dBm",37).toInt(); m_send_RR73=m_settings->value("RR73",false).toBool(); if(m_send_RR73) { @@ -1268,7 +1260,6 @@ void MainWindow::readSettings() } ui->WSPR_prefer_type_1_check_box->setChecked (m_settings->value ("WSPRPreferType1", true).toBool ()); m_uploadWSPRSpots=m_settings->value("UploadSpots",false).toBool(); - if(!m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet("QCheckBox{color: #000000; background-color: yellow}"); ui->cbNoOwnCall->setChecked(m_settings->value("NoOwnCall",false).toBool()); ui->band_hopping_group_box->setChecked (m_settings->value ("BandHopping", false).toBool()); // setup initial value of tx attenuator @@ -1937,18 +1928,14 @@ void MainWindow::on_autoButton_clicked (bool checked) m_nclearave=1; echocom_.nsum=0; } - if(m_mode=="WSPR" or m_mode=="FST4W") { - QPalette palette {ui->sbTxPercent->palette ()}; - if(m_auto or m_pctx==0) { - palette.setColor(QPalette::Base,Qt::white); - } else { - palette.setColor(QPalette::Base,Qt::yellow); - } - ui->sbTxPercent->setPalette(palette); - } m_tAutoOn=QDateTime::currentMSecsSinceEpoch()/1000; } +void MainWindow::on_sbTxPercent_valueChanged (int n) +{ + update_dynamic_property (ui->sbTxPercent, "notx", !n); +} + void MainWindow::auto_tx_mode (bool state) { ui->autoButton->setChecked (state); @@ -3753,16 +3740,11 @@ void MainWindow::guiUpdate() if(m_mode=="WSPR" or m_mode=="FST4W") { if(m_nseq==0 and m_ntr==0) { //Decide whether to Tx or Rx m_tuneup=false; //This is not an ATU tuneup - if(ui->sbTxPercent->isEnabled () && m_pctx==0) m_WSPR_tx_next = false; //Don't transmit if m_pctx=0 bool btx = m_auto && m_WSPR_tx_next; // To Tx, we need m_auto and // scheduled transmit - if(m_auto and m_txNext) btx=true; //TxNext button overrides - if(m_auto && ui->sbTxPercent->isEnabled () && m_pctx==100) btx=true; //Always transmit - if(btx) { m_ntr=-1; //This says we will have transmitted - m_txNext=false; - ui->pbTxNext->setChecked(false); + ui->pbTxNext->setChecked (false); m_bTxTime=true; //Start a WSPR or FST4W Tx sequence } else { // This will be a WSPR or FST4W Rx sequence. @@ -7210,14 +7192,15 @@ void MainWindow::handle_transceiver_update (Transceiver::TransceiverState const& { Transceiver::TransceiverState old_state {m_rigState}; //transmitDisplay (s.ptt ()); - if (s.ptt () && !m_rigState.ptt ()) { // safe to start audio + if (s.ptt () // && !m_rigState.ptt () + ) { // safe to start audio // (caveat - DX Lab Suite Commander) if (m_tx_when_ready && g_iptt) { // waiting to Tx and still needed int ms_delay=1000*m_config.txDelay(); if(m_mode=="FT4") ms_delay=20; ptt1Timer.start(ms_delay); //Start-of-transmission sequencer delay + m_tx_when_ready = false; } - m_tx_when_ready = false; } m_rigState = s; auto old_freqNominal = m_freqNominal; @@ -8104,17 +8087,18 @@ void MainWindow::uploadWSPRSpots (bool direct_post, QString const& decode_text) QString rfreq = QString("%1").arg((m_dialFreqRxWSPR + 1500) / 1e6, 0, 'f', 6); QString tfreq = QString("%1").arg((m_dialFreqRxWSPR + ui->TxFreqSpinBox->value()) / 1e6, 0, 'f', 6); + auto pct = QString::number (ui->autoButton->isChecked () ? ui->sbTxPercent->value () : 0); if (!direct_post) { wsprNet->upload (m_config.my_callsign (), m_config.my_grid (), rfreq, tfreq, - m_mode, m_TRperiod, QString::number (ui->autoButton->isChecked () ? m_pctx : 0), + m_mode, m_TRperiod, pct, QString::number (m_dBm), version (), m_config.writeable_data_dir ().absoluteFilePath ("wspr_spots.txt")); } else { wsprNet->post (m_config.my_callsign (), m_config.my_grid (), rfreq, tfreq, - m_mode, m_TRperiod, QString::number (ui->autoButton->isChecked () ? m_pctx : 0), + m_mode, m_TRperiod, pct, QString::number (m_dBm), version (), decode_text); } if (!decode_text.size ()) @@ -8140,24 +8124,9 @@ void MainWindow::on_TxPowerComboBox_currentIndexChanged(int index) m_dBm = ui->TxPowerComboBox->itemData (index).toInt (); } -void MainWindow::on_sbTxPercent_valueChanged(int n) -{ - m_pctx=n; - if(m_pctx>0) { - ui->pbTxNext->setEnabled(true); - } else { - m_txNext=false; - ui->pbTxNext->setChecked(false); - ui->pbTxNext->setEnabled(false); - } -} - void MainWindow::on_cbUploadWSPR_Spots_toggled(bool b) { m_uploadWSPRSpots=b; - if(m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet(""); - if(!m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet( - "QCheckBox{color: #000000; background-color: yellow}"); } void MainWindow::on_WSPRfreqSpinBox_valueChanged(int n) @@ -8167,11 +8136,21 @@ void MainWindow::on_WSPRfreqSpinBox_valueChanged(int n) void MainWindow::on_pbTxNext_clicked(bool b) { - m_txNext=b; + if (b && !ui->autoButton->isChecked ()) + { + m_WSPR_tx_next = false; // cancel any pending start from schedule + ui->autoButton->click (); // make sure Tx is possible + } } void MainWindow::WSPR_scheduling () { + if (ui->pbTxNext->isEnabled () && ui->pbTxNext->isChecked ()) + { + // Tx Next button overrides all scheduling + m_WSPR_tx_next = true; + return; + } QString t=ui->RoundRobin->currentText(); if(m_mode=="FST4W" and t != tr ("Random")) { bool ok; @@ -8184,10 +8163,14 @@ void MainWindow::WSPR_scheduling () int nsec=ms/1000; int ntr=m_TRperiod; int j=((nsec+ntr-1) % (n*ntr))/ntr; - m_WSPR_tx_next=(i==j); + m_WSPR_tx_next = i == j; return; } m_WSPR_tx_next = false; + if (!ui->sbTxPercent->isEnabled () || !ui->sbTxPercent->value ()) + { + return; // don't schedule if %age disabled or zero + } if (m_config.is_transceiver_online () // need working rig control for hopping && !m_config.is_dummy_rig () && ui->band_hopping_group_box->isChecked ()) { diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index a1673ec71..48cdf0c01 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -446,7 +446,6 @@ private: qint32 m_nclearave; qint32 m_minSync; qint32 m_dBm; - qint32 m_pctx; qint32 m_nseq; qint32 m_nWSPRdecodes; qint32 m_k0; @@ -505,7 +504,6 @@ private: bool m_bSWL; bool m_uploadWSPRSpots; bool m_uploading; - bool m_txNext; bool m_grid6; bool m_tuneup; bool m_bTxTime; diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index ece61762c..f16f26c42 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2163,6 +2163,12 @@ list. The list can be maintained in Settings (F2). Percentage of minute sequences devoted to transmitting. + + QSpinBox:enabled[notx="true"] { + color: rgb(0, 0, 0); + background-color: rgb(255, 255, 0); +} + Qt::AlignCenter @@ -2346,6 +2352,12 @@ list. The list can be maintained in Settings (F2). Upload decoded messages to WSPRnet.org. + + QCheckBox:unchecked { + color: rgb(0, 0, 0); + background-color: rgb(255, 255, 0); +} + Upload spots @@ -2491,8 +2503,7 @@ list. The list can be maintained in Settings (F2). } QLabel[oob="true"] { background-color: red; -} - +} 14.078 000 From 45f28aff45b206811e777126bef6dc3fd1a9c933 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 03:01:54 +0100 Subject: [PATCH 27/36] Updated cty.dat file - 4th Aug 2020 Big CTY --- cty.dat | 1609 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 814 insertions(+), 795 deletions(-) diff --git a/cty.dat b/cty.dat index 991e3c52a..db7d3ba98 100644 --- a/cty.dat +++ b/cty.dat @@ -118,7 +118,7 @@ West Malaysia: 28: 54: AS: 3.95: -102.23: -8.0: 9M2: 9M,9W,=9M0SEA,=9M6/PA0RRS/2,=9M6/ZS6EZ/2,=9M6XX/2,=9M6YBG/2,=9M8DX/2,=9M8SYA/2,=9W6KOM/2, =9W6MAN/2; East Malaysia: 28: 54: OC: 2.68: -113.32: -8.0: 9M6: - =9M4CKT/6,=9M4CRP/6,=9M9/7M2VPR,=9M9/CCL, + =9M4CAK,=9M4CKT/6,=9M4CRP/6,=9M9/7M2VPR,=9M9/CCL, 9M6,9W6,=9M1CSS,=9M2/G3TMA/6,=9M2/PG5M/6,=9M2/R6AF/6,=9M2GCN/6,=9M2MDX/6,=9M4ARD/6,=9M4CBP, =9M4CCB,=9M4CKT,=9M4CMY,=9M4CRB,=9M4CRP,=9M4CWS,=9M4GCW,=9M4LHS,=9M4LTW,=9M4SAB,=9M4SEB,=9M4SHQ, =9M4SJO,=9M4SJS,=9M4SJSA,=9M4SJSB,=9M4SJSD,=9M4SJSL,=9M4SJSM,=9M4SJSP,=9M4SJST,=9M4SJSW,=9M4SJX, @@ -546,7 +546,7 @@ Antarctica: 13: 74: SA: -90.00: 0.00: 0.0: CE9: =R1ANP(39)[69],=RI1ANC/A(39)[69],=RI1ANN(39)[69],=RI1ANP(39)[69],=RI1ANZ(39)[69],=RI63ANT(39)[69], =VU3BPZ/RI1(39)[69], =R1ANH(32)[72], - =RI1ANC(29)[70],=RI1ANC/P(29)[70],=RI1ANM(29)[70],=RI1ANV(29)[70], + =RI1ANC(29)[70],=RI1ANC/P(29)[70],=RI1ANV(29)[70], =SM/OH2FFP(38)[67], =EM1HO[73],=EM1KCC[73],=EM1KGG[73],=EM1KY[73],=EM1U[73],=EM1U/P[73],=EM1UA[73],=EM1UC[73], =KC4/VE0HSS(32),=VE0HSS/KC4(32), @@ -603,7 +603,7 @@ Bolivia: 10: 12: SA: -17.00: 65.00: 4.0: CP: CP7[14]; Portugal: 14: 37: EU: 39.50: 8.00: 0.0: CT: CQ,CR,CS,CT,=CR5FB/LH,=CR6L/LT,=CR6YLH/LT,=CS2HNI/LH,=CS5ARAM/LH,=CS5E/LH,=CT/DJ5AA/LH,=CT1BWW/LH, - =CT1GFK/LH,=CT1GPQ/LGT,=CT7/ON4LO/LH,=CT7/ON7RU/LH; + =CT1GFK/LH,=CT1GPQ/LGT,=CT7/ON4LO/LH,=CT7/ON7RU/LH,=VERSION; Madeira Islands: 33: 36: AF: 32.75: 16.95: 0.0: CT3: CQ2,CQ3,CQ9,CR3,CR9,CS3,CS9,CT3,CT9,=CT9500AEP/J; Azores: 14: 36: EU: 38.70: 27.23: 1.0: CU: @@ -637,20 +637,21 @@ Fed. Rep. of Germany: 14: 28: EU: 51.00: -10.00: -1.0: DL: =DF0VK/LH,=DF0WAT/LH,=DF0WFB/LH,=DF0WH/LGT,=DF0WLG/LH,=DF1AG/LH,=DF1HF/LH,=DF2BR/LH,=DF3LY/L, =DF5A/LH,=DF5FO/LH,=DF8AN/LGT,=DF8AN/LH,=DF8AN/P/LH,=DF9HG/LH,=DG0GF/LH,=DG3XA/LH,=DH0IPA/LH, =DH1DH/LH,=DH1DH/M/LH,=DH6RS/LH,=DH7RK/LH,=DH9JK/LH,=DH9UW/YL,=DJ0PJ/LH,=DJ2OC/LH,=DJ3XG/LH, - =DJ5AA/LH,=DJ7AO/LH,=DJ7MH/LH,=DJ8RH/LH,=DJ9QE/LH,=DK0DAN/LH,=DK0FC/LGT,=DK0FC/LH,=DK0IZ/LH, - =DK0KTL/LH,=DK0LWL/LH,=DK0OC/LH,=DK0PRE/LH,=DK0RA/LH,=DK0RBY/LH,=DK0RU/LH,=DK0RZ/LH,=DK3DUA/LH, - =DK3R/LH,=DK4DS/LH,=DK4MT/LT,=DK5AN/P/LH,=DK5T/LH,=DK5T/LS,=DL/HB9DQJ/LH,=DL0AWG/LH,=DL0BLA/LH, - =DL0BPS/LH,=DL0BUX/LGT,=DL0BUX/LH,=DL0CA/LH,=DL0CUX/LGT,=DL0CUX/LV,=DL0DAB/LH,=DL0EJ/LH,=DL0EL/LH, - =DL0EM/LGT,=DL0EM/LH,=DL0EO/LGT,=DL0EO/LH,=DL0FFF/LGT,=DL0FFF/LH,=DL0FFF/LS,=DL0FHD/LH,=DL0FL/FF, - =DL0HDF/LH,=DL0HGW/LGT,=DL0HGW/LH,=DL0HST/LH,=DL0II/LH,=DL0IOO/LH,=DL0IPA/LH,=DL0LGT/LH, - =DL0LNW/LH,=DL0MCM/LH,=DL0MFH/LGT,=DL0MFH/LH,=DL0MFK/LGT,=DL0MFK/LH,=DL0MFN/LH,=DL0MHR/LH, - =DL0NH/LH,=DL0OF/LH,=DL0PAS/LH,=DL0PBS/LH,=DL0PJ/LH,=DL0RSH/LH,=DL0RUG/LGT,=DL0RUG/LH,=DL0RWE/LH, - =DL0SH/LH,=DL0SY/LH,=DL0TO/LH,=DL0UEM/LH,=DL0VV/LH,=DL0YLM/LH,=DL1BSN/LH,=DL1DUT/LH,=DL1ELU/LH, - =DL1HZM/YL,=DL1SKK/LH,=DL2FCA/YL,=DL2RPS/LH,=DL3ANK/LH,=DL3JJ/LH,=DL3KWR/YL,=DL3KZA/LH,=DL3RNZ/LH, - =DL4ABB/LH,=DL5CX/LH,=DL5KUA/LH,=DL5SE/LH,=DL65DARC/LH,=DL6ABN/LH,=DL6AP/LH,=DL6KWN/LH,=DL7ANC/LH, - =DL7BMG/LH,=DL7MFK/LH,=DL7UVO/LH,=DL7VDX/LH,=DL8HK/YL,=DL8MTG/LH,=DL8TG/LH,=DL8TG/LV,=DL8UAA/FF, - =DL9CU/LH,=DL9NEI/ND2N,=DL9OE/LH,=DL9SEP/P/LH,=DM19ERZ/BB,=DM19ERZ/BEF,=DM19ERZ/BHF,=DM19ERZ/BP, - =DM19ERZ/BRB,=DM19ERZ/BS,=DM19ERZ/HAM,=DM19ERZ/HSD,=DM19ERZ/MAZ,=DM19ERZ/SG,=DM2C/LH,=DM3B/LH, + =DJ5AA/LH,=DJ7AO/LH,=DJ7MH/LH,=DJ8RH/LH,=DJ9QE/LH,=DK0DAN/LH,=DK0FC/LGT,=DK0FC/LH,=DK0GYB/LH, + =DK0IZ/LH,=DK0KTL/LH,=DK0LWL/LH,=DK0OC/LH,=DK0PRE/LH,=DK0RA/LH,=DK0RBY/LH,=DK0RU/LH,=DK0RZ/LH, + =DK3DUA/LH,=DK3R/LH,=DK4DS/LH,=DK4MT/LT,=DK5AN/P/LH,=DK5T/LH,=DK5T/LS,=DL/HB9DQJ/LH,=DL0AWG/LH, + =DL0BLA/LH,=DL0BPS/LH,=DL0BUX/LGT,=DL0BUX/LH,=DL0CA/LH,=DL0CUX/LGT,=DL0CUX/LV,=DL0DAB/LH, + =DL0EJ/LH,=DL0EL/LH,=DL0EM/LGT,=DL0EM/LH,=DL0EO/LGT,=DL0EO/LH,=DL0FFF/LGT,=DL0FFF/LH,=DL0FFF/LS, + =DL0FHD/LH,=DL0FL/FF,=DL0HDF/LH,=DL0HGW/LGT,=DL0HGW/LH,=DL0HST/LH,=DL0II/LH,=DL0IOO/LH,=DL0IPA/LH, + =DL0LGT/LH,=DL0LNW/LH,=DL0MCM/LH,=DL0MFH/LGT,=DL0MFH/LH,=DL0MFK/LGT,=DL0MFK/LH,=DL0MFN/LH, + =DL0MHR/LH,=DL0NH/LH,=DL0OF/LH,=DL0PAS/LH,=DL0PBS/LH,=DL0PJ/LH,=DL0RSH/LH,=DL0RUG/LGT,=DL0RUG/LH, + =DL0RWE/LH,=DL0SH/LH,=DL0SY/LH,=DL0TO/LH,=DL0UEM/LH,=DL0VV/LH,=DL0YLM/LH,=DL1BSN/LH,=DL1DUT/LH, + =DL1ELU/LH,=DL1HZM/YL,=DL1SKK/LH,=DL2FCA/YL,=DL2RPS/LH,=DL3ANK/LH,=DL3JJ/LH,=DL3KWR/YL,=DL3KZA/LH, + =DL3RNZ/LH,=DL4ABB/LH,=DL5CX/LH,=DL5KUA/LH,=DL5SE/LH,=DL65DARC/LH,=DL6ABN/LH,=DL6AP/LH,=DL6KWN/LH, + =DL7ANC/LH,=DL7BMG/LH,=DL7MFK/LH,=DL7UVO/LH,=DL7VDX/LH,=DL8HK/YL,=DL8MTG/LH,=DL8TG/LH,=DL8TG/LV, + =DL8UAA/FF,=DL9CU/LH,=DL9NEI/ND2N,=DL9OE/LH,=DL9SEP/P/LH,=DM19ERZ/BB,=DM19ERZ/BEF,=DM19ERZ/BHF, + =DM19ERZ/BL,=DM19ERZ/BP,=DM19ERZ/BRB,=DM19ERZ/BS,=DM19ERZ/BU,=DM19ERZ/HAM,=DM19ERZ/HSD, + =DM19ERZ/MAF,=DM19ERZ/MAZ,=DM19ERZ/MF,=DM19ERZ/MS,=DM19ERZ/SG,=DM19ERZ/VL,=DM2C/LH,=DM3B/LH, =DM3G/LH,=DM3KF/LH,=DM5C/LH,=DM5JBN/LH,=DN0AWG/LH,=DN4MB/LH,=DN8RLS/YL,=DO1EEW/YL,=DO1OMA/LH, =DO5MCL/LH,=DO5MCL/YL,=DO6KDS/LH,=DO6UVM/LH,=DO7DC/LH,=DO7RKL/LH,=DQ4M/LH,=DQ4M/LT,=DR100MF/LS, =DR3M/LH,=DR4W/FF,=DR4X/LH,=DR9Z/LH; @@ -677,10 +678,10 @@ Spain: 14: 37: EU: 40.37: 4.88: -1.0: EA: AM,AN,AO,EA,EB,EC,ED,EE,EF,EG,EH,=AM95WARD,=AN92EXPO,=EF6,=EG90IARU, =AM1TDH/LH,=EA1APV/LH,=EA1BEY/Y,=EA1EEY/L,=EA1EEY/LGT,=EA1EEY/LH,=EA1EK/ZAP,=EA1FGS/LH,=EA1HLW/YL, =EA1RCG/CPV,=EA1RCG/SEU,=EA1RCG/YOA,=EA1RCI/CA,=EA1RCI/CR,=EA1RCI/CVG,=EA1RCI/DAC,=EA1RCI/ESM, - =EA1RCI/IA,=EA1RCI/ICA,=EA1RCI/JBN,=EA1RCI/KD,=EA1RCI/PAZ,=EA1RCI/PCV,=EA1RCI/RSM,=EA1RCI/YOA, - =EA1URL/CVL,=EA1URO/D,=EA1URO/KD,=EA5AER/P,=EA6QB/1,=EA8BFH/1,=EA8CZT/1,=EA8FC/1,=EA8RV/P, - =EA9CD/1,=EA9CI/1,=EA9CP/1,=EA9PD/1,=EB1DH/LH,=ED1IRM/LH,=EG1ILW/LH,=EG1LWB/LH,=EG1LWC/LH, - =EG1LWI/LH,=EG1LWN/LH,=EG1TDH/LH,=EG90IARU/1, + =EA1RCI/IA,=EA1RCI/ICA,=EA1RCI/JBN,=EA1RCI/KD,=EA1RCI/PAZ,=EA1RCI/PCV,=EA1RCI/RCC,=EA1RCI/RSM, + =EA1RCI/YOA,=EA1RCP/NM,=EA1URL/CVL,=EA1URO/D,=EA1URO/KD,=EA5AER/P,=EA6QB/1,=EA8BFH/1,=EA8CZT/1, + =EA8FC/1,=EA8RV/P,=EA9CD/1,=EA9CI/1,=EA9CP/1,=EA9PD/1,=EB1DH/LH,=ED1IRM/LH,=EG1ILW/LH,=EG1LWB/LH, + =EG1LWC/LH,=EG1LWI/LH,=EG1LWN/LH,=EG1TDH/LH,=EG90IARU/1, =AM08ATU/H,=AM08CAZ/H,=AM08CYQ/H,=AM08EIE/Z,=AM08FAC/H,=AN08ADE/H,=AO08BQH/Z,=AO08BTM/Z, =AO08CIK/H,=AO08CVV/Z,=AO08CXK/H,=AO08CYL/H,=AO08DI/Z,=AO08EIE/Z,=AO08HV/Z,=AO08ICA/Z,=AO08ID/Z, =AO08KJ/Z,=AO08KV/Z,=AO08OK/H,=AO08PB/Z,=AO08RKO/H,=AO08VK/Z,=AO2016DSS/LH,=EA2/ON7RU/LH, @@ -692,8 +693,8 @@ Spain: 14: 37: EU: 40.37: 4.88: -1.0: EA: =EA5/ON4LO/LH,=EA5ADM/P,=EA5CC/P,=EA5EQ/N,=EA5EZ/P,=EA5FL/LH,=EA5GVT/AVW,=EA5HCC/P,=EA5IKT/P, =EA5KB/LH,=EA5ND/D,=EA5RCK/CDI,=EA5RKD/PAZ,=EA5TOM/AVW,=EA5URE/IVA,=EA5URE/P,=EA5URM/C,=EA5URM/F, =EA5URM/G,=EA5URM/H,=EA5URM/I,=EA5URM/L,=EA5URR/PAZ,=EA5URV/CAC,=EA5ZD/URE,=EA6AKN/5,=EA8BFH/5, - =EA8CWF/5,=EA9BLJ/5,=EA9CI/5,=EA9CP/5,=EA9PD/5,=EC5K/VIC,=ED5MFP/C,=ED5MFP/G,=ED5MFP/H,=ED5MFP/I, - =ED5MFP/K,=ED5MFP/Q,=ED5MFP/R,=ED5MFP/S,=ED5URD/LH,=EG5FOM/LH,=EG90IARU/5,=EH5FL/LH, + =EA8CWF/5,=EA9BLJ/5,=EA9CI/5,=EA9CP/5,=EA9PD/5,=EC5EA/VIC,=EC5K/VIC,=ED5MFP/C,=ED5MFP/G,=ED5MFP/H, + =ED5MFP/I,=ED5MFP/K,=ED5MFP/Q,=ED5MFP/R,=ED5MFP/S,=ED5URD/LH,=EG5FOM/LH,=EG90IARU/5,=EH5FL/LH, =AO7WRD/MA,=EA6SK/7,=EA7CFU/U,=EA7FC/FCJ,=EA7HZ/F,=EA7OBH/LH,=EA7URA/GET,=EA7URA/PAZ,=EA7URA/SG, =EA7URA/YOTA,=EA7URE/PAZ,=EA7URF/PAZ,=EA7URI/MDL,=EA7URJ/CPM,=EA7URL/FSV,=EA7URM/PAZ,=EA7URP/LAI, =EA9AA/7,=EA9CP/7,=EA9FN/7,=EA9HU,=EA9HU/7,=EA9JS/7,=EA9LZ/7,=EA9PD/7,=EA9QD/7,=EA9UL/7,=EA9UV/7, @@ -704,7 +705,7 @@ Balearic Islands: 14: 37: EU: 39.60: -2.95: -1.0: EA6: =EA5ADM/6,=EA5BB/6,=EA5BK/6,=EA5BTL/6,=EA5EOR/6,=EA5ER/6,=EA5EZ/6,=EA5FL/P,=EA5HCC/6,=EA5IIG/6, =EA5IKT/6,=EA5RKB/6,=EA6/DJ5AA/LH,=EA6/DJ7AO/LH,=EA6/G0SGB/LH,=EA6HP/J,=EA6LU/P,=EA6URI/PAZ, =EA6URL/IF,=EA7DUT/6,=EA9CI/6,=EA9CP/6,=EB1BRH/6,=EB2GKK/6,=EB3CW/6,=EC5AC/6,=EC5BME/6,=EC5EA/P, - =EC5EC/6,=EC6TV/N,=EC7AT/6,=ED4SHF/6,=ED5ON/6,=EH90IARU/6; + =EC5EC/6,=EC6TV/N,=EC7AT/6,=ED3T/6,=ED4SHF/6,=ED5ON/6,=EH90IARU/6; Canary Islands: 33: 36: AF: 28.32: 15.85: 0.0: EA8: AM8,AN8,AO8,EA8,EB8,EC8,ED8,EE8,EF8,EG8,EH8,=AM70URE/8,=AN400L,=AN400U,=AO150ITU/8,=AO150U, =AO4AAA/8,=AO5DXX/8,=EA1AK/8,=EA1AP/8,=EA1EHW/8,=EA1YO/8,=EA3RKB/8,=EA4BQ/8,=EA4ESI/8,=EA4SV/8, @@ -762,7 +763,7 @@ Guadeloupe: 08: 11: NA: 16.13: 61.67: 4.0: FG: Mayotte: 39: 53: AF: -12.88: -45.15: -3.0: FH: FH,=TO0X,=TO2FH,=TO2TT,=TO4M,=TO6OK,=TO7BC,=TO7RJ,=TO8MZ,=TX0P,=TX5M,=TX5NK,=TX7LX; St. Barthelemy: 08: 11: NA: 17.90: 62.83: 4.0: FJ: - FJ,=TO2D,=TO2EE,=TO2SP,=TO3A,=TO3J,=TO3X,=TO4K,=TO5DX,=TO5E,=TO5FJ,=TO5RZ,=TO7ZG,=TO8YY; + FJ,=TO0Z,=TO2D,=TO2EE,=TO2SP,=TO3A,=TO3J,=TO3X,=TO4K,=TO5DX,=TO5E,=TO5FJ,=TO5RZ,=TO7ZG,=TO8YY; New Caledonia: 32: 56: OC: -21.50: -165.50: -11.0: FK: FK,=FK8VHY/P,=T8HRC,=TX1A,=TX1B,=TX1CW,=TX3SAM,=TX4A,=TX5CW,=TX5FS,=TX8A,=TX8B,=TX8C,=TX8CW,=TX8D, =TX8F,=TX8JOTA,=TX8NC,=TX90IARU; @@ -770,7 +771,7 @@ Chesterfield Islands: 30: 56: OC: -19.87: -158.32: -11.0: FK/c: =FK8C/AA7JV,=FK8IK/C,=TX0AT,=TX0C,=TX0DX,=TX3A,=TX3X,=TX9; Martinique: 08: 11: NA: 14.70: 61.03: 4.0: FM: FM,=TO0O,=TO1BT,=TO1C,=TO1J,=TO1N,=TO1YR,=TO2M,=TO2MB,=TO3FM,=TO3GA,=TO3JA,=TO3M,=TO3T,=TO3W, - =TO40CDXC,=TO4A,=TO4C,=TO4FM,=TO4GU,=TO4IPA,=TO4OC,=TO4YL,=TO5A,=TO5AA,=TO5J,=TO5K,=TO5O,=TO5PX, + =TO40CDXC,=TO4A,=TO4C,=TO4FM,=TO4GU,=TO4IPA,=TO4OC,=TO4YL,=TO5A,=TO5AA,=TO5J,=TO5K,=TO5PX,=TO5T, =TO5U,=TO5W,=TO5X,=TO5Y,=TO6ABM,=TO6M,=TO7A,=TO7BP,=TO7HAM,=TO7X,=TO8A,=TO8M,=TO8T,=TO8Z, =TO90IARU,=TO972A,=TO972M,=TO9A,=TO9R; French Polynesia: 32: 63: OC: -17.65: 149.40: 10.0: FO: @@ -791,7 +792,7 @@ Marquesas Islands: 31: 63: OC: -8.92: 140.07: 9.5: FO/m: =FO/W6TLD,=FO0ELY,=FO0POM,=FO0TOH,=FO5QS/M,=FO8RZ/P,=K7ST/FO,=TX0SIX,=TX4PG,=TX5A,=TX5SPM,=TX5VT, =TX7EU,=TX7G,=TX7M,=TX7MB,=TX7T; St. Pierre & Miquelon: 05: 09: NA: 46.77: 56.20: 3.0: FP: - FP,=TO200SPM,=TO2U,=TO5FP,=TO5M,=TO5T,=TO80SP; + FP,=TO200SPM,=TO2U,=TO5FP,=TO5M,=TO80SP; Reunion Island: 39: 53: AF: -21.12: -55.48: -4.0: FR: FR,=TO019IEEE,=TO0FAR,=TO0MPB,=TO0R,=TO19A,=TO1PF,=TO1PF/P,=TO1TAAF,=TO2R,=TO2R/P,=TO2Z,=TO3R, =TO5R,=TO7CC,=TO7DL,=TO90R; @@ -815,7 +816,7 @@ Wallis & Futuna Islands: 32: 62: OC: -13.30: 176.20: -12.0: FW: French Guiana: 09: 12: SA: 4.00: 53.00: 3.0: FY: FY,=TO1A,=TO2A,=TO2BC,=TO5BR,=TO5G,=TO5NED,=TO7C,=TO7IR,=TO7R; England: 14: 27: EU: 52.77: 1.47: 0.0: G: - 2E,G,M,NHS,=2E0GWD/P/LH,=2MT,=2O0YYY/P,=2Q0XYL/P,=2Q0YYY/P,=2SZ,=G0IBN/LH,=G0IBN/LV,=G0IBN/P/LV, + 2E,G,M,=2E0GWD/P/LH,=2MT,=2O0YYY/P,=2Q0XYL/P,=2Q0YYY/P,=2SZ,=G0IBN/LH,=G0IBN/LV,=G0IBN/P/LV, =G0SGB/LH,=G0VML/LV,=G3PRC/LH,=G6HH/LH,=GB0BLL/LH,=GB0BMB/LH,=GB0HLH/LH,=GB0NCI/LH,=GB0PL/LH, =GB0SLH/LH,=GB0WPS/JOTA,=GB1PBL/LH,=GB2APL/LH,=GB2BML/LGT,=GB2BML/LH,=GB2LZL/LH,=GB2PLH/LH, =GB2SCA/LH,=GB2SJ/LH,=GB2SML/LH,=GB2SNM/MILL,=GB3HQ/YOTA,=GB4CWM/YL,=GB4LL/LH,=GB4WL/LH,=GB5PW/LH, @@ -840,27 +841,27 @@ Northern Ireland: 14: 27: EU: 54.73: 6.68: 0.0: GI: =GB106TBC,=GB150WCB,=GB16SW,=GB1918EKN,=GB19CGI,=GB19CNI,=GB1AFP,=GB1BPM,=GB1DDG,=GB1HSC,=GB1IMD, =GB1RM,=GB1ROC,=GB1SOS,=GB1SPD,=GB1SRI,=GB1UAS,=GB1WWC,=GB2AD,=GB2AD/P,=GB2AS,=GB2BCW,=GB2BDS, =GB2BOA,=GB2CA,=GB2CRU,=GB2DCI,=GB2DMR,=GB2DPC,=GB2IL,=GB2LL,=GB2LOL,=GB2MAC,=GB2MRI,=GB2PDY, - =GB2PP,=GB2PSW,=GB2REL,=GB2SDD,=GB2SPD,=GB2SPR,=GB2STI,=GB2STP,=GB2SW,=GB2UAS,=GB3NGI,=GB4CSC, - =GB4CTL,=GB4NHS,=GB4ONI,=GB4PS,=GB4SOS,=GB4SPD,=GB4UAS,=GB50AAD,=GB50CSC,=GB5BIG,=GB5BL,=GB5BL/LH, - =GB5DPR,=GB5NHS,=GB5OMU,=GB5SPD,=GB6EPC,=GB6SPD,=GB6VCB,=GB75VEC,=GB8BKY,=GB8BRM,=GB8DS,=GB8EGT, - =GB8GLM,=GB8NHS,=GB8ROC,=GB8SJA,=GB8SPD,=GB90RSGB/82,=GB90SOM,=GB9RAF,=GB9SPD,=GN0LIX/LH, - =GN4GTY/LH,=GO0AQD,=GO0BJH,=GO0DUP,=GO3KVD,=GO3MMF,=GO3SG,=GO4DOH,=GO4GID,=GO4GUH,=GO4LKG,=GO4NKB, - =GO4ONL,=GO4OYM,=GO4SRQ,=GO4SZW,=GO6MTL,=GO7AXB,=GO7KMC,=GO8YYM,=GQ0AQD,=GQ0BJG,=GQ0NCA,=GQ0RQK, - =GQ0TJV,=GQ0UVD,=GQ1CET,=GQ3KVD,=GQ3MMF,=GQ3SG,=GQ3UZJ,=GQ3XRQ,=GQ4DOH,=GQ4GID,=GQ4GUH,=GQ4JTF, - =GQ4LKG,=GQ4LXL,=GQ4NKB,=GQ4ONL,=GQ4OYM,=GQ4SZW,=GQ6JPO,=GQ6MTL,=GQ7AXB,=GQ7JYK,=GQ7KMC,=GQ8RQI, - =GQ8YYM,=GR0BJH,=GR0BRO,=GR0DVU,=GR0RQK,=GR0RWO,=GR0UVD,=GR1CET,=GR3GTR,=GR3KDR,=GR3SG,=GR3WEM, - =GR4AAM,=GR4DHW,=GR4DOH,=GR4FUE,=GR4FUM,=GR4GID,=GR4GOS,=GR4GUH,=GR4KQU,=GR4LXL,=GR4NKB,=GR6JPO, - =GR7AXB,=GR7KMC,=GR8RKC,=GR8RQI,=GR8YYM,=GV1BZT,=GV3KVD,=GV3SG,=GV4FUE,=GV4GUH,=GV4JTF,=GV4LXL, - =GV4SRQ,=GV4WVN,=GV7AXB,=GV7THH,=MI5AFK/2K,=MN0NID/LH,=MO0ALS,=MO0BDZ,=MO0CBH,=MO0IOU,=MO0IRZ, - =MO0JFC,=MO0JFC/P,=MO0JML,=MO0JST,=MO0KYE,=MO0LPO,=MO0MOD,=MO0MOD/P,=MO0MSR,=MO0MVP,=MO0RRE, - =MO0RUC,=MO0RYL,=MO0TGO,=MO0VAX,=MO0ZXZ,=MO3RLA,=MO6AOX,=MO6NIR,=MO6TUM,=MO6WAG,=MO6WDB,=MO6YDR, - =MQ0ALS,=MQ0BDZ,=MQ0BPB,=MQ0GGB,=MQ0IRZ,=MQ0JFC,=MQ0JST,=MQ0KAM,=MQ0KYE,=MQ0MOD,=MQ0MSR,=MQ0MVP, - =MQ0RMD,=MQ0RRE,=MQ0RUC,=MQ0RYL,=MQ0TGO,=MQ0VAX,=MQ0ZXZ,=MQ3GHW,=MQ3RLA,=MQ3STV,=MQ5AFK,=MQ6AOX, - =MQ6BJG,=MQ6GDN,=MQ6WAG,=MQ6WDB,=MQ6WGM,=MR0GDO,=MR0GGB,=MR0JFC,=MR0KQU,=MR0LPO,=MR0MOD,=MR0MSR, - =MR0MVP,=MR0RUC,=MR0SAI,=MR0SMK,=MR0TFK,=MR0TLG,=MR0TMW,=MR0VAX,=MR0WWB,=MR1CCU,=MR3RLA,=MR3TFF, - =MR3WHM,=MR5AMO,=MR6CCU,=MR6CWC,=MR6GDN,=MR6MME,=MR6MRJ,=MR6OKS,=MR6OLA,=MR6PUX,=MR6WAG,=MR6XGZ, - =MV0ALS,=MV0GGB,=MV0IOU,=MV0JFC,=MV0JLC,=MV0MOD,=MV0MSR,=MV0MVP,=MV0TGO,=MV0VAX,=MV0WGM,=MV0ZAO, - =MV1VOX,=MV6DTE,=MV6GTY,=MV6NIR,=MV6TLG; + =GB2PP,=GB2PSW,=GB2REL,=GB2SDD,=GB2SPD,=GB2SPR,=GB2STI,=GB2STP,=GB2SW,=GB2UAS,=GB3NGI,=GB4AFD, + =GB4CSC,=GB4CTL,=GB4NHS,=GB4ONI,=GB4PS,=GB4SOS,=GB4SPD,=GB4UAS,=GB50AAD,=GB50CSC,=GB5AFD,=GB5BIG, + =GB5BL,=GB5BL/LH,=GB5DPR,=GB5NHS,=GB5OMU,=GB5SPD,=GB6EPC,=GB6SPD,=GB6VCB,=GB75VEC,=GB8BKY,=GB8BRM, + =GB8DS,=GB8EGT,=GB8GLM,=GB8NHS,=GB8ROC,=GB8SJA,=GB8SPD,=GB90RSGB/82,=GB90SOM,=GB9AFD,=GB9LQV, + =GB9RAF,=GB9SPD,=GN0LIX/LH,=GN4GTY/LH,=GO0AQD,=GO0BJH,=GO0DUP,=GO3KVD,=GO3MMF,=GO3SG,=GO4DOH, + =GO4GID,=GO4GUH,=GO4LKG,=GO4NKB,=GO4ONL,=GO4OYM,=GO4SRQ,=GO4SZW,=GO6MTL,=GO7AXB,=GO7KMC,=GO8YYM, + =GQ0AQD,=GQ0BJG,=GQ0NCA,=GQ0RQK,=GQ0TJV,=GQ0UVD,=GQ1CET,=GQ3KVD,=GQ3MMF,=GQ3SG,=GQ3UZJ,=GQ3XRQ, + =GQ4DOH,=GQ4GID,=GQ4GUH,=GQ4JTF,=GQ4LKG,=GQ4LXL,=GQ4NKB,=GQ4ONL,=GQ4OYM,=GQ4SZW,=GQ6JPO,=GQ6MTL, + =GQ7AXB,=GQ7JYK,=GQ7KMC,=GQ8RQI,=GQ8YYM,=GR0BJH,=GR0BRO,=GR0DVU,=GR0RQK,=GR0RWO,=GR0UVD,=GR1CET, + =GR3GTR,=GR3KDR,=GR3SG,=GR3WEM,=GR4AAM,=GR4DHW,=GR4DOH,=GR4FUE,=GR4FUM,=GR4GID,=GR4GOS,=GR4GUH, + =GR4KQU,=GR4LXL,=GR4NKB,=GR6JPO,=GR7AXB,=GR7KMC,=GR8RKC,=GR8RQI,=GR8YYM,=GV1BZT,=GV3KVD,=GV3SG, + =GV4FUE,=GV4GUH,=GV4JTF,=GV4LXL,=GV4SRQ,=GV4WVN,=GV7AXB,=GV7THH,=MI5AFK/2K,=MN0NID/LH,=MO0ALS, + =MO0BDZ,=MO0CBH,=MO0IOU,=MO0IRZ,=MO0JFC,=MO0JFC/P,=MO0JML,=MO0JST,=MO0KYE,=MO0LPO,=MO0MOD, + =MO0MOD/P,=MO0MSR,=MO0MVP,=MO0RRE,=MO0RUC,=MO0RYL,=MO0TGO,=MO0VAX,=MO0ZXZ,=MO3RLA,=MO6AOX,=MO6NIR, + =MO6TUM,=MO6WAG,=MO6WDB,=MO6YDR,=MQ0ALS,=MQ0BDZ,=MQ0BPB,=MQ0GGB,=MQ0IRZ,=MQ0JFC,=MQ0JST,=MQ0KAM, + =MQ0KYE,=MQ0MOD,=MQ0MSR,=MQ0MVP,=MQ0RMD,=MQ0RRE,=MQ0RUC,=MQ0RYL,=MQ0TGO,=MQ0VAX,=MQ0ZXZ,=MQ3GHW, + =MQ3RLA,=MQ3STV,=MQ5AFK,=MQ6AOX,=MQ6BJG,=MQ6GDN,=MQ6WAG,=MQ6WDB,=MQ6WGM,=MR0GDO,=MR0GGB,=MR0JFC, + =MR0KQU,=MR0LPO,=MR0MOD,=MR0MSR,=MR0MVP,=MR0RUC,=MR0SAI,=MR0SMK,=MR0TFK,=MR0TLG,=MR0TMW,=MR0VAX, + =MR0WWB,=MR1CCU,=MR3RLA,=MR3TFF,=MR3WHM,=MR5AMO,=MR6CCU,=MR6CWC,=MR6GDN,=MR6MME,=MR6MRJ,=MR6OKS, + =MR6OLA,=MR6PUX,=MR6WAG,=MR6XGZ,=MV0ALS,=MV0GGB,=MV0IOU,=MV0JFC,=MV0JLC,=MV0MOD,=MV0MSR,=MV0MVP, + =MV0TGO,=MV0VAX,=MV0WGM,=MV0ZAO,=MV1VOX,=MV6DTE,=MV6GTY,=MV6NIR,=MV6TLG; Jersey: 14: 27: EU: 49.22: 2.18: 0.0: GJ: 2J,GH,GJ,MH,MJ,=2R0ODX,=GB0JSA,=GB19CJ,=GB2BYL,=GB2JSA,=GB50JSA,=GB5OJR,=GB8LMI,=GH5DX/NHS, =GJ3DVC/L,=GJ6WRI/LH,=GJ8PVL/LH,=GO8PVL,=GQ8PVL,=GR6TMM,=MO0ASP,=MQ0ASP,=MR0ASP,=MR0RZD,=MV0ASP; @@ -875,9 +876,9 @@ Shetland Islands: 14: 27: EU: 60.50: 1.50: 0.0: *GM/s: =GM6RQW,=GM6RTO,=GM6VZB,=GM6WVI,=GM6YQA,=GM7AFE,=GM7GWW,=GM7RKD,=GM8LNH,=GM8MMA,=GM8YEC,=GS0AAA, =GS0GRC,=GS3BSQ,=GS3ZET,=GS7V,=GS8YL,=MA0XAU,=MA1FJM,=MA6PTE,=MM/DJ6OZ,=MM/DL5KUA,=MM/OK1HDU, =MM/OK7U,=MM/PA9D,=MM/PF9DC,=MM/W5ZE/P,=MM0/DJ6AU,=MM0/PA8MO,=MM0ECG,=MM0KAL,=MM0LON,=MM0LON/M, - =MM0LSM,=MM0NQY,=MM0SHF/P,=MM0VIK,=MM0XAU,=MM0ZAL,=MM0ZCG,=MM0ZRC,=MM1FJM,=MM3VQO,=MM3ZET,=MM5PSL, - =MM5PSL/P,=MM5YLO,=MM5YLO/P,=MM6ACW,=MM6BDU,=MM6BZQ,=MM6IKB,=MM6IMB,=MM6MFA,=MM6PTE,=MM6SJK, - =MM6YLO,=MM6ZBG,=MM6ZDW,=MM8A,=MO5PSL,=MQ5PSL,=MR5PSL,=MS0OXE,=MS0ZCG,=MS0ZET; + =MM0LSM,=MM0NQY,=MM0SHF/P,=MM0VIK,=MM0XAU,=MM0ZAL,=MM0ZCG,=MM0ZRC,=MM1FEO,=MM1FJM,=MM3VQO,=MM3ZET, + =MM5PSL,=MM5PSL/P,=MM5YLO,=MM5YLO/P,=MM6ACW,=MM6BDU,=MM6BZQ,=MM6IKB,=MM6IMB,=MM6MFA,=MM6PTE, + =MM6SJK,=MM6YLO,=MM6ZBG,=MM6ZDW,=MM8A,=MO5PSL,=MQ5PSL,=MR5PSL,=MS0OXE,=MS0ZCG,=MS0ZET; Scotland: 14: 27: EU: 56.82: 4.18: 0.0: GM: 2A,2M,GM,GS,MA,MM,MS,=2O0BSE,=2O0BZB,=2O0HJS,=2O0IMP,=2O0IOB,=2O0IVG,=2O0LIM,=2O0LJM,=2O0TOK, =2O1MIC,=2O1SJB,=2Q0BSE,=2Q0BZB,=2Q0FYG,=2Q0HJS,=2Q0IMP,=2Q0IOB,=2Q0JOK,=2Q0LDO,=2Q0TAX,=2Q0TOK, @@ -885,74 +886,75 @@ Scotland: 14: 27: EU: 56.82: 4.18: 0.0: GM: =2R0IMP,=2R0IOB,=2R0ISM,=2R0JVR,=2R0KAU,=2R0KAU/P,=2R0NCM,=2R0OXX,=2R0YCG,=2R0ZPS,=2R1MIC,=2R1SJB, =2V0GUL,=2V0IVG,=2V0JCH,=2V0KAU,=2V0TAX,=2V1HFE,=2V1MIC,=2V1SJB,=G0FBJ,=GA6NX/LH,=GB0AYR,=GB0BAJ, =GB0BCG,=GB0BCK,=GB0BD,=GB0BDC,=GB0BL,=GB0BNA,=GB0BNC,=GB0BOC,=GB0BOL,=GB0BSS,=GB0BWT,=GB0CCF, - =GB0CHL,=GB0CLH,=GB0CML,=GB0CNL,=GB0CWF,=GB0CWS,=GB0DAM,=GB0DAW,=GB0DBS,=GB0DHL,=GB0DPK,=GB0EPC, - =GB0FFS,=GB0FSG,=GB0GDS,=GB0GDS/J,=GB0GGR,=GB0GRN,=GB0GTD,=GB0HHW,=GB0HLD,=GB0JOG,=GB0KEY,=GB0KGS, - =GB0KKS,=GB0KLT,=GB0LCS,=GB0LCW,=GB0LTM,=GB0MLH,=GB0MLM,=GB0MOD,=GB0MOG,=GB0MOL,=GB0MSL,=GB0MUL, - =GB0NGG,=GB0NHL,=GB0NHL/LH,=GB0NHS,=GB0NRL,=GB0OYT,=GB0PLS,=GB0POS,=GB0PPE,=GB0PSW,=GB0RGC, - =GB0SAA,=GB0SBC,=GB0SCD,=GB0SFM,=GB0SHP,=GB0SI,=GB0SK,=GB0SKG,=GB0SKY,=GB0SLB,=GB0SRC,=GB0SSB, - =GB0TH,=GB0THL,=GB0TNL,=GB0TTS,=GB0WRH,=GB100MAS,=GB100MUC,=GB100ZET,=GB10SP,=GB150NRL,=GB18FIFA, - =GB19CGM,=GB19CS,=GB1AJ,=GB1ASC,=GB1ASH,=GB1BD,=GB1BOL,=GB1CFL,=GB1COR,=GB1DHL,=GB1FB,=GB1FRS, - =GB1FVS,=GB1FVT,=GB1GEO,=GB1HRS,=GB1KGG,=GB1KLD,=GB1LAY,=GB1LGG,=GB1LL,=GB1MAY,=GB1NHL,=GB1OL, - =GB1OL/LH,=GB1PC,=GB1RB,=GB1RHU,=GB1SLH,=GB1TAY,=GB1WLG,=GB250RB,=GB2AES,=GB2AGG,=GB2AL,=GB2AMS, - =GB2AST,=GB2ATC,=GB2AYR,=GB2BAJ,=GB2BHM,=GB2BHS,=GB2BMJ,=GB2BOL,=GB2CAS,=GB2CHC,=GB2CM,=GB2CMA, - =GB2CVL,=GB2CWR,=GB2DAS,=GB2DAW,=GB2DHS,=GB2DL,=GB2DRC,=GB2DT,=GB2DTM,=GB2ELH,=GB2ELH/LH,=GB2EPC, - =GB2FBM,=GB2FEA,=GB2FSM,=GB2FSW,=GB2GEO,=GB2GKR,=GB2GNL,=GB2GNL/LH,=GB2GTM,=GB2GVC,=GB2HLB, - =GB2HMC,=GB2HRH,=GB2IGB,=GB2IGS,=GB2IMG,=GB2IMM,=GB2INV,=GB2IOT,=GB2JCM,=GB2KDR,=GB2KGB,=GB2KW, - =GB2LBN,=GB2LBN/LH,=GB2LCL,=GB2LCP,=GB2LCT,=GB2LDG,=GB2LG,=GB2LGB,=GB2LHI,=GB2LK,=GB2LK/LH, - =GB2LMG,=GB2LP,=GB2LS,=GB2LS/LH,=GB2LSS,=GB2LT,=GB2LT/LH,=GB2LXX,=GB2M,=GB2MAS,=GB2MBB,=GB2MDG, - =GB2MN,=GB2MOF,=GB2MSL,=GB2MUC,=GB2MUL,=GB2NBC,=GB2NEF,=GB2NL,=GB2NMM,=GB2OL,=GB2OWM,=GB2PBF, - =GB2PG,=GB2QM,=GB2RB,=GB2RDR,=GB2ROC,=GB2RRL,=GB2RWW,=GB2SAA,=GB2SAM,=GB2SAS,=GB2SB,=GB2SBG, - =GB2SHL/LH,=GB2SKG,=GB2SLH,=GB2SMM,=GB2SOH,=GB2SQN,=GB2SR,=GB2SSB,=GB2SUM,=GB2SWF,=GB2TDS,=GB2THL, - =GB2THL/LH,=GB2TNL,=GB2VCB,=GB2VEF,=GB2WAM,=GB2WBF,=GB2WG,=GB2WLS,=GB2YLS,=GB2ZE,=GB3ANG,=GB3GKR, - =GB3LER,=GB3LER/B,=GB3ORK,=GB3ORK/B,=GB3SWF,=GB3WOI,=GB4AAS,=GB4AST,=GB4BBR,=GB4BG,=GB4CGS, - =GB4CMA,=GB4DAS,=GB4DHX,=GB4DTD,=GB4DUK,=GB4EPC,=GB4FFS,=GB4GD,=GB4GDS,=GB4GS,=GB4IE,=GB4JCM, - =GB4JOA,=GB4JPJ,=GB4JYS,=GB4LER,=GB4MSE,=GB4NFE,=GB4PAS,=GB4SK,=GB4SKO,=GB4SLH,=GB4SMM,=GB4SRO, - =GB4SWF,=GB50FVS,=GB50GDS,=GB50GT,=GB50JS,=GB5AG,=GB5AST,=GB5BBS,=GB5BOH,=GB5C,=GB5CCC,=GB5CS, - =GB5CWL,=GB5DHL,=GB5DX,=GB5EMF,=GB5FHC,=GB5FLM,=GB5JS,=GB5LTH,=GB5RO,=GB5RO/LH,=GB5RR,=GB5SI, - =GB5TAM,=GB5TI,=GB60CRB,=GB6BEN,=GB6TAA,=GB6WW,=GB75CC,=GB75GD,=GB7SRW,=GB80GD,=GB8AYR,=GB8CSL, - =GB8FSG,=GB8RU,=GB8RUM,=GB90RSGB/11,=GB90RSGB/12,=GB90RSGB/21,=GB90RSGB/22,=GB90RSGB/23,=GB999SPC, - =GG100AGG,=GG100GA,=GG100GCC,=GG100GGP,=GG100GGR,=GG100GLD,=GG100SBG,=GM/DL5SE/LH,=GM0AZC/2K, - =GM0DHZ/P,=GM0GFL/P,=GM0KTO/2K,=GM0MUN/2K,=GM0SGB/M,=GM0SGB/P,=GM0WED/NHS,=GM0WUX/2K,=GM3JIJ/2K, - =GM3OFT/P,=GM3TKV/LH,=GM3TTC/P,=GM3TXF/P,=GM3USR/P,=GM3VLB/P,=GM3WFK/P,=GM3YDN/NHS,=GM4AFF/P, - =GM4CHX/2K,=GM4CHX/P,=GM4SQM/NHS,=GM4SQN/NHS,=GM4WSB/M,=GM4WSB/P,=GM4ZVD/P,=GM6JNJ/NHS,=GM6WRW/P, - =GO0AEG,=GO0AIR,=GO0BKC,=GO0DBW,=GO0DBW/M,=GO0DEQ,=GO0GMN,=GO0OGN,=GO0SYY,=GO0TUB,=GO0VRP,=GO0WEZ, - =GO1BAN,=GO1BKF,=GO1MQE,=GO1TBW,=GO2MP,=GO3HVK,=GO3JIJ,=GO3NIG,=GO3VTB,=GO4BLO,=GO4CAU,=GO4CFS, - =GO4CHX,=GO4CXM,=GO4DLG,=GO4EMX,=GO4FAM,=GO4FAU,=GO4JOJ,=GO4JPZ,=GO4JR,=GO4MOX,=GO4MSL,=GO4PRB, - =GO4UBJ,=GO4VTB,=GO4WZG,=GO4XQJ,=GO6JEP,=GO6JRX,=GO6KON,=GO6LYJ,=GO6VCV,=GO7GAX,=GO7GDE,=GO7HUD, - =GO7TUD,=GO7WEF,=GO8CBQ,=GO8MHU,=GO8SVB,=GO8TTD,=GQ0AEG,=GQ0AIR,=GQ0BKC,=GQ0BWR,=GQ0DBW,=GQ0DEQ, - =GQ0DUX,=GQ0FNE,=GQ0GMN,=GQ0HUO,=GQ0KWL,=GQ0MUN,=GQ0NTL,=GQ0OGN,=GQ0RNR,=GQ0TKV/P,=GQ0VRP,=GQ0WEZ, - =GQ0WNR,=GQ1BAN,=GQ1BKF,=GQ1MQE,=GQ1TBW,=GQ3JIJ,=GQ3JQJ,=GQ3NIG,=GQ3NTL,=GQ3TKP,=GQ3TKP/P,=GQ3TKV, - =GQ3TKV/P,=GQ3VTB,=GQ3WUX,=GQ3ZBE,=GQ4AGG,=GQ4BAE,=GQ4BLO,=GQ4CAU,=GQ4CFS,=GQ4CHX,=GQ4CHX/P, - =GQ4CXM,=GQ4DLG,=GQ4ELV,=GQ4EMX,=GQ4FAU,=GQ4JOJ,=GQ4JPZ,=GQ4JR,=GQ4MSL,=GQ4OBG,=GQ4PRB,=GQ4UIB, - =GQ4UPL,=GQ4VTB,=GQ4WZG,=GQ4XQJ,=GQ4YMM,=GQ6JEP,=GQ6JRX,=GQ6KON,=GQ6LYJ,=GQ7GAX,=GQ7GDE,=GQ7HUD, - =GQ7TUD,=GQ7UED,=GQ7WEF,=GQ8CBQ,=GQ8MHU,=GQ8PLR,=GQ8SVB,=GQ8TTD,=GR0AXY,=GR0CDV,=GR0DBW,=GR0EKM, - =GR0GMN,=GR0GRD,=GR0HPK,=GR0HPL,=GR0HUO,=GR0OGN,=GR0PNS,=GR0SYV,=GR0TTV,=GR0TUB,=GR0UKZ,=GR0VRP, - =GR0WED,=GR0WNR,=GR150NIB,=GR1BAN,=GR1MWK,=GR1TBW,=GR1ZIV,=GR3JFG,=GR3MZX,=GR3NIG,=GR3OFT,=GR3PPE, - =GR3PYU,=GR3VAL,=GR3VTB,=GR3WFJ,=GR3YXJ,=GR3ZDH,=GR4BDJ,=GR4BLO,=GR4CAU,=GR4CCN,=GR4CFS,=GR4CMI, - =GR4CXM,=GR4DLG,=GR4EMX,=GR4EOU,=GR4FQE,=GR4GIF,=GR4JOJ,=GR4NSZ,=GR4PRB,=GR4SQM,=GR4VTB,=GR4XAW, - =GR4XMD,=GR4XQJ,=GR4YMM,=GR6JEP,=GR6JNJ,=GR7AAJ,=GR7GAX,=GR7GDE,=GR7GMC,=GR7HHB,=GR7HUD,=GR7LNO, - =GR7NZI,=GR7TUD,=GR7USC,=GR7VSB,=GR8CBQ,=GR8KJO,=GR8KPH,=GR8MHU,=GR8OFQ,=GR8SVB,=GS4WAB/P,=GV0DBW, - =GV0GMN,=GV0GRD,=GV0LZE,=GV0OBX,=GV0OGN,=GV0SYV,=GV0VRP,=GV1BAN,=GV3EEW,=GV3JIJ,=GV3NHQ,=GV3NIG, - =GV3NKG,=GV3NNZ,=GV3PIP,=GV3ULP,=GV3VTB,=GV4BLO,=GV4EMX,=GV4HRJ,=GV4ILS,=GV4JOJ,=GV4KLN,=GV4LVW, - =GV4PRB,=GV4VTB,=GV4XQJ,=GV6KON,=GV7DHA,=GV7GDE,=GV7GMC,=GV8AVM,=GV8DPV,=GV8LYS,=MB18FIFA, - =MM/DH5JBR/P,=MM/DJ4OK/M,=MM/DJ8OK/M,=MM/DL5SE/LH,=MM/F5BLC/P,=MM/F5LMJ/P,=MM/HB9IAB/P, - =MM/KE5TF/P,=MM/N5ET/P,=MM/OK1FZM/P,=MM/W5ZE/P,=MM0BNN/LH,=MM0BQI/2K,=MM0BQN/2K,=MM0BYE/2K, - =MM0DFV/P,=MM0DHQ/NHS,=MM0LON/M,=MM0SHF/P,=MM0YHB/P,=MM0ZOL/LH,=MM3AWD/NHS,=MM3DDQ/NHS,=MM5PSL/P, - =MM5YLO/P,=MM7WAB/NHS,=MO0BFF,=MO0CWJ,=MO0CYR,=MO0DBC,=MO0DNX,=MO0FMF,=MO0GXQ,=MO0HZT,=MO0JST/P, - =MO0KJG,=MO0KSS,=MO0NFC,=MO0SGQ,=MO0SJT,=MO0TGB,=MO0TSG,=MO0WKC,=MO0XXW,=MO0ZBH,=MO1AWV,=MO1HMV, - =MO3BCA,=MO3BRR,=MO3GPL,=MO3OQR,=MO3TUP,=MO3UVL,=MO3YHA,=MO3YMU,=MO3ZRF,=MO5PSL,=MO6BJJ,=MO6CCS, - =MO6CHM,=MO6CRQ,=MO6CRQ/M,=MO6DGZ,=MO6HUT,=MO6KAU,=MO6KAU/M,=MO6KSJ,=MO6MCV,=MO6SRL,=MO6TEW, - =MQ0BNN/P,=MQ0BQM,=MQ0BRG,=MQ0CIN,=MQ0CXA,=MQ0CYR,=MQ0DNX,=MQ0DXD,=MQ0EQE,=MQ0FMF,=MQ0GXQ,=MQ0GYX, - =MQ0GYX/P,=MQ0KJG,=MQ0KSS,=MQ0LEN,=MQ0NFC,=MQ0NJC,=MQ0SJT,=MQ0TSG,=MQ0WKC,=MQ0XXW,=MQ0ZBH,=MQ1AWV, - =MQ1HMV,=MQ1JWF,=MQ3BCA,=MQ3BRR,=MQ3ERZ,=MQ3FET,=MQ3OVK,=MQ3SVK,=MQ3UIX,=MQ3UVL,=MQ3YHA,=MQ3YMU, - =MQ3ZRF,=MQ5PSL,=MQ6AQM,=MQ6BJJ,=MQ6CCS,=MQ6CHM,=MQ6CRQ,=MQ6DGZ,=MQ6HUT,=MQ6KAJ,=MQ6KAU,=MQ6KSJ, - =MQ6KUA,=MQ6LMP,=MQ6MCV,=MR0BQN,=MR0CWB,=MR0CXA,=MR0DHQ,=MR0DWF,=MR0DXD,=MR0DXH,=MR0EPC,=MR0EQE, - =MR0FME,=MR0FMF,=MR0GCF,=MR0GGG,=MR0GGI,=MR0GOR,=MR0HAI,=MR0HVU,=MR0OIL,=MR0POD,=MR0PSL,=MR0RDM, - =MR0SGQ,=MR0SJT,=MR0TAI,=MR0TSG,=MR0TSS,=MR0VTV,=MR0WEI,=MR0XAF,=MR0XXP,=MR0XXW,=MR1AWV,=MR1HMV, - =MR1JWF,=MR1VTB,=MR3AWA,=MR3AWD,=MR3BRR,=MR3PTS,=MR3UIX,=MR3UVL,=MR3WJZ,=MR3XGP,=MR3YHA,=MR3YPH, - =MR3ZCS,=MR5PSL,=MR6AHB,=MR6ARN,=MR6ATU,=MR6CHM,=MR6CTH,=MR6CTL,=MR6HFC,=MR6MCV,=MR6RLL,=MR6SSI, - =MR6TMS,=MV0DXH,=MV0FME,=MV0FMF,=MV0GHM,=MV0HAR,=MV0LGS,=MV0NFC,=MV0NJS,=MV0SGQ,=MV0SJT,=MV0XXW, - =MV1VTB,=MV3BRR,=MV3CVB,=MV3YHA,=MV3YMU,=MV5PSL,=MV6BJJ,=MV6KSJ,=MV6NRQ; + =GB0CHL,=GB0CLH,=GB0CML,=GB0CNL,=GB0CSL,=GB0CWF,=GB0CWS,=GB0DAM,=GB0DAW,=GB0DBS,=GB0DHL,=GB0DPK, + =GB0EPC,=GB0FFS,=GB0FSG,=GB0GDS,=GB0GDS/J,=GB0GGR,=GB0GRN,=GB0GTD,=GB0HHW,=GB0HLD,=GB0JOG,=GB0KEY, + =GB0KGS,=GB0KKS,=GB0KLT,=GB0LCS,=GB0LCW,=GB0LTM,=GB0MLH,=GB0MLM,=GB0MOD,=GB0MOG,=GB0MOL,=GB0MSL, + =GB0MUL,=GB0NGG,=GB0NHL,=GB0NHL/LH,=GB0NHS,=GB0NRL,=GB0OYT,=GB0PLS,=GB0POS,=GB0PPE,=GB0PSW, + =GB0RGC,=GB0SAA,=GB0SBC,=GB0SCD,=GB0SFM,=GB0SHP,=GB0SI,=GB0SK,=GB0SKG,=GB0SKY,=GB0SLB,=GB0SRC, + =GB0SSB,=GB0TH,=GB0THL,=GB0TNL,=GB0TTS,=GB0WRH,=GB100MAS,=GB100MUC,=GB100ZET,=GB10SP,=GB150NRL, + =GB18FIFA,=GB19CGM,=GB19CS,=GB1AJ,=GB1ASC,=GB1ASH,=GB1BD,=GB1BOL,=GB1CFL,=GB1COR,=GB1DHL,=GB1FB, + =GB1FRS,=GB1FVS,=GB1FVT,=GB1GEO,=GB1GND,=GB1HRS,=GB1KGG,=GB1KLD,=GB1LAY,=GB1LGG,=GB1LL,=GB1MAY, + =GB1NHL,=GB1OL,=GB1OL/LH,=GB1PC,=GB1RB,=GB1RHU,=GB1RST,=GB1SLH,=GB1TAY,=GB1WLG,=GB250RB,=GB2AES, + =GB2AGG,=GB2AL,=GB2AMS,=GB2AST,=GB2ATC,=GB2AYR,=GB2BAJ,=GB2BHM,=GB2BHS,=GB2BMJ,=GB2BOL,=GB2CAS, + =GB2CHC,=GB2CM,=GB2CMA,=GB2CVL,=GB2CWR,=GB2DAS,=GB2DAW,=GB2DHS,=GB2DL,=GB2DRC,=GB2DT,=GB2DTM, + =GB2ELH,=GB2ELH/LH,=GB2EPC,=GB2FBM,=GB2FEA,=GB2FSM,=GB2FSW,=GB2GEO,=GB2GKR,=GB2GNL,=GB2GNL/LH, + =GB2GTM,=GB2GVC,=GB2HLB,=GB2HMC,=GB2HRH,=GB2IGB,=GB2IGS,=GB2IMG,=GB2IMM,=GB2INV,=GB2IOT,=GB2JCM, + =GB2KDR,=GB2KGB,=GB2KW,=GB2LBN,=GB2LBN/LH,=GB2LCL,=GB2LCP,=GB2LCT,=GB2LDG,=GB2LG,=GB2LGB,=GB2LHI, + =GB2LK,=GB2LK/LH,=GB2LMG,=GB2LP,=GB2LS,=GB2LS/LH,=GB2LSS,=GB2LT,=GB2LT/LH,=GB2LXX,=GB2M,=GB2MAS, + =GB2MBB,=GB2MDG,=GB2MN,=GB2MOF,=GB2MSL,=GB2MUC,=GB2MUL,=GB2NBC,=GB2NEF,=GB2NL,=GB2NMM,=GB2OL, + =GB2OWM,=GB2PBF,=GB2PG,=GB2QM,=GB2RB,=GB2RDR,=GB2ROC,=GB2RRL,=GB2RWW,=GB2SAA,=GB2SAM,=GB2SAS, + =GB2SB,=GB2SBG,=GB2SHL/LH,=GB2SKG,=GB2SLH,=GB2SMM,=GB2SOH,=GB2SQN,=GB2SR,=GB2SSB,=GB2SUM,=GB2SWF, + =GB2TDS,=GB2THL,=GB2THL/LH,=GB2TNL,=GB2VCB,=GB2VEF,=GB2WAM,=GB2WBF,=GB2WG,=GB2WLS,=GB2YLS,=GB2ZE, + =GB3ANG,=GB3GKR,=GB3LER,=GB3LER/B,=GB3ORK,=GB3ORK/B,=GB3SWF,=GB3WOI,=GB4AAS,=GB4AST,=GB4BBR, + =GB4BG,=GB4CGS,=GB4CMA,=GB4DAS,=GB4DHX,=GB4DTD,=GB4DUK,=GB4EPC,=GB4FFS,=GB4GD,=GB4GDS,=GB4GS, + =GB4IE,=GB4JCM,=GB4JOA,=GB4JPJ,=GB4JYS,=GB4LER,=GB4MSE,=GB4NFE,=GB4PAS,=GB4SK,=GB4SKO,=GB4SLH, + =GB4SMM,=GB4SRO,=GB4SWF,=GB50FVS,=GB50GDS,=GB50GT,=GB50JS,=GB5AG,=GB5AST,=GB5BBS,=GB5BOH,=GB5C, + =GB5CCC,=GB5CS,=GB5CWL,=GB5DHL,=GB5DX,=GB5EMF,=GB5FHC,=GB5FLM,=GB5JS,=GB5LTH,=GB5RO,=GB5RO/LH, + =GB5RR,=GB5SI,=GB5TAM,=GB5TI,=GB60CRB,=GB6BEN,=GB6TAA,=GB6WW,=GB75CC,=GB75GD,=GB7SRW,=GB80GD, + =GB8AYR,=GB8CSL,=GB8FSG,=GB8RU,=GB8RUM,=GB90RSGB/11,=GB90RSGB/12,=GB90RSGB/21,=GB90RSGB/22, + =GB90RSGB/23,=GB999SPC,=GB9UL,=GG100AGG,=GG100GA,=GG100GCC,=GG100GGP,=GG100GGR,=GG100GLD, + =GG100SBG,=GM/DL5SE/LH,=GM0AZC/2K,=GM0DHZ/P,=GM0GFL/P,=GM0KTO/2K,=GM0MUN/2K,=GM0SGB/M,=GM0SGB/P, + =GM0WED/NHS,=GM0WUX/2K,=GM3JIJ/2K,=GM3OFT/P,=GM3TKV/LH,=GM3TTC/P,=GM3TXF/P,=GM3USR/P,=GM3VLB/P, + =GM3WFK/P,=GM3YDN/NHS,=GM4AFF/P,=GM4CHX/2K,=GM4CHX/P,=GM4SQM/NHS,=GM4SQN/NHS,=GM4WSB/M,=GM4WSB/P, + =GM4ZVD/P,=GM6JNJ/NHS,=GM6WRW/P,=GO0AEG,=GO0AIR,=GO0BKC,=GO0DBW,=GO0DBW/M,=GO0DEQ,=GO0GMN,=GO0OGN, + =GO0SYY,=GO0TUB,=GO0VRP,=GO0WEZ,=GO1BAN,=GO1BKF,=GO1MQE,=GO1TBW,=GO2MP,=GO3HVK,=GO3JIJ,=GO3NIG, + =GO3VTB,=GO4BLO,=GO4CAU,=GO4CFS,=GO4CHX,=GO4CXM,=GO4DLG,=GO4EMX,=GO4FAM,=GO4FAU,=GO4JOJ,=GO4JPZ, + =GO4JR,=GO4MOX,=GO4MSL,=GO4PRB,=GO4UBJ,=GO4VTB,=GO4WZG,=GO4XQJ,=GO6JEP,=GO6JRX,=GO6KON,=GO6LYJ, + =GO6VCV,=GO7GAX,=GO7GDE,=GO7HUD,=GO7TUD,=GO7WEF,=GO8CBQ,=GO8MHU,=GO8SVB,=GO8TTD,=GQ0AEG,=GQ0AIR, + =GQ0BKC,=GQ0BWR,=GQ0DBW,=GQ0DEQ,=GQ0DUX,=GQ0FNE,=GQ0GMN,=GQ0HUO,=GQ0KWL,=GQ0MUN,=GQ0NTL,=GQ0OGN, + =GQ0RNR,=GQ0TKV/P,=GQ0VRP,=GQ0WEZ,=GQ0WNR,=GQ1BAN,=GQ1BKF,=GQ1MQE,=GQ1TBW,=GQ3JIJ,=GQ3JQJ,=GQ3NIG, + =GQ3NTL,=GQ3TKP,=GQ3TKP/P,=GQ3TKV,=GQ3TKV/P,=GQ3VTB,=GQ3WUX,=GQ3ZBE,=GQ4AGG,=GQ4BAE,=GQ4BLO, + =GQ4CAU,=GQ4CFS,=GQ4CHX,=GQ4CHX/P,=GQ4CXM,=GQ4DLG,=GQ4ELV,=GQ4EMX,=GQ4FAU,=GQ4JOJ,=GQ4JPZ,=GQ4JR, + =GQ4MSL,=GQ4OBG,=GQ4PRB,=GQ4UIB,=GQ4UPL,=GQ4VTB,=GQ4WZG,=GQ4XQJ,=GQ4YMM,=GQ6JEP,=GQ6JRX,=GQ6KON, + =GQ6LYJ,=GQ7GAX,=GQ7GDE,=GQ7HUD,=GQ7TUD,=GQ7UED,=GQ7WEF,=GQ8CBQ,=GQ8MHU,=GQ8PLR,=GQ8SVB,=GQ8TTD, + =GR0AXY,=GR0CDV,=GR0DBW,=GR0EKM,=GR0GMN,=GR0GRD,=GR0HPK,=GR0HPL,=GR0HUO,=GR0OGN,=GR0PNS,=GR0SYV, + =GR0TTV,=GR0TUB,=GR0UKZ,=GR0VRP,=GR0WED,=GR0WNR,=GR150NIB,=GR1BAN,=GR1MWK,=GR1TBW,=GR1ZIV,=GR3JFG, + =GR3MZX,=GR3NIG,=GR3OFT,=GR3PPE,=GR3PYU,=GR3VAL,=GR3VTB,=GR3WFJ,=GR3YXJ,=GR3ZDH,=GR4BDJ,=GR4BLO, + =GR4CAU,=GR4CCN,=GR4CFS,=GR4CMI,=GR4CXM,=GR4DLG,=GR4EMX,=GR4EOU,=GR4FQE,=GR4GIF,=GR4JOJ,=GR4NSZ, + =GR4PRB,=GR4SQM,=GR4VTB,=GR4XAW,=GR4XMD,=GR4XQJ,=GR4YMM,=GR6JEP,=GR6JNJ,=GR7AAJ,=GR7GAX,=GR7GDE, + =GR7GMC,=GR7HHB,=GR7HUD,=GR7LNO,=GR7NZI,=GR7TUD,=GR7USC,=GR7VSB,=GR8CBQ,=GR8KJO,=GR8KPH,=GR8MHU, + =GR8OFQ,=GR8SVB,=GS4WAB/P,=GV0DBW,=GV0GMN,=GV0GRD,=GV0LZE,=GV0OBX,=GV0OGN,=GV0SYV,=GV0VRP,=GV1BAN, + =GV3EEW,=GV3JIJ,=GV3NHQ,=GV3NIG,=GV3NKG,=GV3NNZ,=GV3PIP,=GV3ULP,=GV3VTB,=GV4BLO,=GV4EMX,=GV4HRJ, + =GV4ILS,=GV4JOJ,=GV4KLN,=GV4LVW,=GV4PRB,=GV4VTB,=GV4XQJ,=GV6KON,=GV7DHA,=GV7GDE,=GV7GMC,=GV8AVM, + =GV8DPV,=GV8LYS,=MB18FIFA,=MM/DH5JBR/P,=MM/DJ4OK/M,=MM/DJ8OK/M,=MM/DL5SE/LH,=MM/F5BLC/P, + =MM/F5LMJ/P,=MM/HB9IAB/P,=MM/KE5TF/P,=MM/N5ET/P,=MM/OK1FZM/P,=MM/W5ZE/P,=MM0BNN/LH,=MM0BQI/2K, + =MM0BQN/2K,=MM0BYE/2K,=MM0DFV/P,=MM0DHQ/NHS,=MM0LON/M,=MM0SHF/P,=MM0YHB/P,=MM0ZOL/LH,=MM3AWD/NHS, + =MM3DDQ/NHS,=MM5PSL/P,=MM5YLO/P,=MM7WAB/NHS,=MO0BFF,=MO0CWJ,=MO0CYR,=MO0DBC,=MO0DNX,=MO0FMF, + =MO0GXQ,=MO0HZT,=MO0JST/P,=MO0KJG,=MO0KSS,=MO0NFC,=MO0SGQ,=MO0SJT,=MO0TGB,=MO0TSG,=MO0WKC,=MO0XXW, + =MO0ZBH,=MO1AWV,=MO1HMV,=MO3BCA,=MO3BRR,=MO3GPL,=MO3OQR,=MO3TUP,=MO3UVL,=MO3YHA,=MO3YMU,=MO3ZCB/P, + =MO3ZRF,=MO5PSL,=MO6BJJ,=MO6CCS,=MO6CHM,=MO6CRQ,=MO6CRQ/M,=MO6DGZ,=MO6HUT,=MO6KAU,=MO6KAU/M, + =MO6KSJ,=MO6MCV,=MO6SRL,=MO6TEW,=MQ0BNN/P,=MQ0BQM,=MQ0BRG,=MQ0CIN,=MQ0CXA,=MQ0CYR,=MQ0DNX,=MQ0DXD, + =MQ0EQE,=MQ0FMF,=MQ0GXQ,=MQ0GYX,=MQ0GYX/P,=MQ0KJG,=MQ0KSS,=MQ0LEN,=MQ0NFC,=MQ0NJC,=MQ0SJT,=MQ0TSG, + =MQ0WKC,=MQ0XXW,=MQ0ZBH,=MQ1AWV,=MQ1HMV,=MQ1JWF,=MQ3BCA,=MQ3BRR,=MQ3ERZ,=MQ3FET,=MQ3OVK,=MQ3SVK, + =MQ3UIX,=MQ3UVL,=MQ3YHA,=MQ3YMU,=MQ3ZRF,=MQ5PSL,=MQ6AQM,=MQ6BJJ,=MQ6CCS,=MQ6CHM,=MQ6CRQ,=MQ6DGZ, + =MQ6HUT,=MQ6KAJ,=MQ6KAU,=MQ6KSJ,=MQ6KUA,=MQ6LMP,=MQ6MCV,=MR0BQN,=MR0CWB,=MR0CXA,=MR0DHQ,=MR0DWF, + =MR0DXD,=MR0DXH,=MR0EPC,=MR0EQE,=MR0FME,=MR0FMF,=MR0GCF,=MR0GGG,=MR0GGI,=MR0GOR,=MR0HAI,=MR0HVU, + =MR0OIL,=MR0POD,=MR0PSL,=MR0RDM,=MR0SGQ,=MR0SJT,=MR0TAI,=MR0TSG,=MR0TSS,=MR0VTV,=MR0WEI,=MR0XAF, + =MR0XXP,=MR0XXW,=MR1AWV,=MR1HMV,=MR1JWF,=MR1VTB,=MR3AWA,=MR3AWD,=MR3BRR,=MR3PTS,=MR3UIX,=MR3UVL, + =MR3WJZ,=MR3XGP,=MR3YHA,=MR3YPH,=MR3ZCS,=MR5PSL,=MR6AHB,=MR6ARN,=MR6ATU,=MR6CHM,=MR6CTH,=MR6CTL, + =MR6HFC,=MR6MCV,=MR6RLL,=MR6SSI,=MR6TMS,=MV0DXH,=MV0FME,=MV0FMF,=MV0GHM,=MV0HAR,=MV0LGS,=MV0NFC, + =MV0NJS,=MV0SGQ,=MV0SJT,=MV0XXW,=MV1VTB,=MV3BRR,=MV3CVB,=MV3YHA,=MV3YMU,=MV5PSL,=MV6BJJ,=MV6KSJ, + =MV6NRQ; Guernsey: 14: 27: EU: 49.45: 2.58: 0.0: GU: 2U,GP,GU,MP,MU,=2O0FER,=2Q0ARE,=2Q0FER,=2U0ARE/2K,=GB0HAM,=GB0SRK,=GB0U,=GB19CG,=GB2AFG,=GB2FG, =GB2GU,=GB2JTA,=GB4SGG,=GB50GSY,=GO8FBO,=GQ8FBO,=GU0DXX/2K,=GU4GG/2K,=MO0FAL,=MO0KWD,=MQ0FAL, @@ -967,63 +969,63 @@ Wales: 14: 27: EU: 52.28: 3.73: 0.0: GW: =GB0BRE,=GB0BTB,=GB0BVL,=GB0BYL,=GB0CAC,=GB0CCE,=GB0CEW,=GB0CFD,=GB0CGG,=GB0CLC,=GB0CQD,=GB0CSA, =GB0CSR,=GB0CTK,=GB0CVA,=GB0DFD,=GB0DMT,=GB0DS,=GB0DVP,=GB0EUL,=GB0FHD,=GB0FHI,=GB0GDD,=GB0GIG, =GB0GIW,=GB0GLV,=GB0GMD,=GB0GRM,=GB0HEL,=GB0HGC,=GB0HLT,=GB0HMM,=GB0HMT,=GB0KF,=GB0L,=GB0LBG, - =GB0LM,=GB0LVF,=GB0MFH,=GB0MIW,=GB0ML,=GB0MPA,=GB0MSB,=GB0MUU,=GB0MWL,=GB0NAW,=GB0NEW,=GB0NG, - =GB0NLC,=GB0PBR,=GB0PEM,=GB0PGG,=GB0PLB,=GB0PLL,=GB0PSG,=GB0RME,=GB0ROC,=GB0RPO,=GB0RS,=GB0RSC, - =GB0RSF,=GB0RWM,=GB0SCB,=GB0SDD,=GB0SGC,=GB0SH,=GB0SH/LH,=GB0SOA,=GB0SPE,=GB0SPS,=GB0TD,=GB0TL, - =GB0TPR,=GB0TS,=GB0TTT,=GB0VCA,=GB0VEE,=GB0VK,=GB0WHH,=GB0WHR,=GB0WIW,=GB0WUL,=GB0YG,=GB100AB, - =GB100BP,=GB100CSW,=GB100GGC,=GB100GGM,=GB100HD,=GB100LB,=GB100LSG,=GB100MCV,=GB100TMD,=GB10SOTA, - =GB19CGW,=GB19CW,=GB19SG,=GB1AD,=GB1ATC,=GB1BAF,=GB1BGS,=GB1BPL,=GB1BSW,=GB1BW,=GB1CCC,=GB1CDS, - =GB1CPG,=GB1DS,=GB1FHS,=GB1HAS,=GB1HTW,=GB1JC,=GB1KEY,=GB1LSG,=GB1LW,=GB1OOC,=GB1PCA,=GB1PCS, - =GB1PD,=GB1PGW,=GB1PJ,=GB1PLL,=GB1SDD,=GB1SEA,=GB1SL,=GB1SPN,=GB1SSL,=GB1TDS,=GB1WAA,=GB1WIW, - =GB1WSM,=GB2000SET,=GB2003SET,=GB200HNT,=GB200TT,=GB250TMB,=GB250TT,=GB2ADU,=GB2BEF,=GB2BGG, - =GB2BOM,=GB2BOW,=GB2BPM,=GB2BYF,=GB2CC,=GB2CI,=GB2COB,=GB2CR,=GB2CRS,=GB2DWR,=GB2EI,=GB2FC, - =GB2FLB,=GB2GGM,=GB2GLS,=GB2GOL,=GB2GSG,=GB2GVA,=GB2HDG,=GB2HMM,=GB2IMD,=GB2LBR,=GB2LM,=GB2LNP, - =GB2LSA,=GB2LSA/LH,=GB2LSH,=GB2MD,=GB2MGY,=GB2MIL,=GB2MLM,=GB2MMC,=GB2MOP,=GB2NF,=GB2NPH,=GB2NPL, - =GB2OOA,=GB2ORM,=GB2PRC,=GB2RFS,=GB2RSG,=GB2RTB,=GB2SAC,=GB2SCC,=GB2SCD,=GB2SCP,=GB2SFM,=GB2SIP, - =GB2SLA,=GB2TD,=GB2TD/LH,=GB2TTA,=GB2VK,=GB2WAA,=GB2WHO,=GB2WNA,=GB2WSF,=GB2WT,=GB3HLS,=GB3LMW, - =GB4ADU,=GB4AFS,=GB4AOS,=GB4BB,=GB4BIT,=GB4BOJ,=GB4BPL,=GB4BPL/LH,=GB4BPL/P,=GB4BPR,=GB4BRS/P, - =GB4BSG,=GB4CI,=GB4CTC,=GB4EUL,=GB4FAA,=GB4GM,=GB4GSS,=GB4HFH,=GB4HI,=GB4HLB,=GB4HMD,=GB4HMM, - =GB4LRG,=GB4MBC,=GB4MD,=GB4MDH,=GB4MDI,=GB4MJS,=GB4MPI,=GB4MUU,=GB4NDG,=GB4NPL,=GB4NTB,=GB4ON, - =GB4OST,=GB4PAT,=GB4PCS,=GB4PD,=GB4POW,=GB4RC,=GB4RME,=GB4RSL,=GB4SDD,=GB4SLC,=GB4SSP,=GB4SUB, - =GB4TMS,=GB4UKG,=GB4VJD,=GB4WT,=GB4WWI,=GB4XT,=GB50ABS,=GB50EVS,=GB50RSC,=GB50SGP,=GB5AC,=GB5FI, - =GB5GEO,=GB5MD,=GB5ONG,=GB5PSJ,=GB5SIP,=GB5VEP,=GB5WT,=GB60DITP,=GB60ER,=GB60PW,=GB60SPS,=GB60VLY, - =GB65BTF,=GB6AC,=GB6BLB,=GB6CRI,=GB6GGM,=GB6OQA,=GB6ORA,=GB6PLB,=GB6RNLI,=GB6TS,=GB6TSG,=GB6WT, - =GB6WWT,=GB70BTF,=GB750CC,=GB75ATC,=GB75BB,=GB8CCC,=GB8HI,=GB8MD,=GB8MG,=GB8ND,=GB8OAE,=GB8OQE, - =GB8RAF,=GB8WOW,=GB8WT,=GB90RSGB/62,=GB90RSGB/72,=GB9GGM,=GC4BRS/LH,=GG100ACD,=GG100ANG,=GG100CPG, - =GG100RGG,=GG100SG,=GO0DIV,=GO0EZQ,=GO0EZY,=GO0JEQ,=GO0MNP,=GO0MNP/P,=GO0NPL,=GO0PLB,=GO0PNI, - =GO0PUP,=GO0VKW,=GO0VML,=GO0VSW,=GO1DPL,=GO1IOT,=GO1JFV,=GO1MVL,=GO1PKM,=GO3PLB,=GO3UOF,=GO3UOF/M, - =GO3XJQ,=GO4BKG,=GO4BLE,=GO4CQZ,=GO4DTQ,=GO4GTI,=GO4JKR,=GO4JUN,=GO4JUW,=GO4MVA,=GO4NOO,=GO4OKT, - =GO4SUE,=GO4SUE/P,=GO4TNZ,=GO4WXM,=GO6IMS,=GO6NKG,=GO6UKO,=GO7DWR,=GO7SBO,=GO7VJK,=GO7VQD,=GO8BQK, - =GO8IQC,=GO8JOY,=GO8OKR,=GQ0ANA,=GQ0DIV,=GQ0JEQ,=GQ0JRF,=GQ0MNO,=GQ0MNP,=GQ0NPL,=GQ0PUP,=GQ0RYT, - =GQ0SLM,=GQ0TQM,=GQ0VKW,=GQ0VML,=GQ0VSW,=GQ0WVL,=GQ1FKY,=GQ1FOA/P,=GQ1IOT,=GQ1JFV,=GQ1MVL,=GQ1NRS, - =GQ1WRV,=GQ1ZKN,=GQ3IRK,=GQ3PLB,=GQ3SB,=GQ3UOF,=GQ3VEN,=GQ3VKL,=GQ3WSU,=GQ3XJA,=GQ3XJQ,=GQ4BKG, - =GQ4BLE,=GQ4CQZ,=GQ4EZW,=GQ4GSH,=GQ4GTI,=GQ4IIL,=GQ4JKR,=GQ4JUN,=GQ4JUW,=GQ4LZP,=GQ4MVA,=GQ4NOO, - =GQ4OKT,=GQ4SUE,=GQ4VNS,=GQ4VZJ,=GQ4WXM,=GQ4WXM/P,=GQ6IMS,=GQ6ITJ,=GQ6NKG,=GQ6UKO,=GQ7BQK,=GQ7DWR, - =GQ7FBV,=GQ7SBO,=GQ7UNJ,=GQ7UNV,=GQ7VJK,=GQ7VQD,=GQ8BQK,=GQ8IQC,=GQ8JOY,=GQ8OKR,=GR0ANA,=GR0DIV, - =GR0DSP,=GR0HUS,=GR0JEQ,=GR0MYY,=GR0NPL,=GR0PSV,=GR0RYT,=GR0SYN,=GR0TKX,=GR0VKW,=GR0WGK,=GR1FJI, - =GR1HNG,=GR1LFX,=GR1LHV,=GR1MCD,=GR1SGG,=GR1WVY,=GR1YQM,=GR3SB,=GR3SFC,=GR3TKH,=GR3UOF,=GR3XJQ, - =GR4BKG,=GR4BLE,=GR4CQZ,=GR4GNY,=GR4GTI,=GR4HZA,=GR4JUN,=GR4JUW,=GR4OGO,=GR4SUE,=GR4VSS/P,=GR4XXJ, - =GR4ZOM,=GR5PH,=GR6NKG,=GR6SIX,=GR6STK,=GR6UKO,=GR6ZDH,=GR7AAV,=GR7HOC,=GR7NAU,=GR7TKZ,=GR7UNV, - =GR7VQD,=GR8BQK,=GR8IQC,=GR8OGI,=GR8TRO,=GV0ANA,=GV0DCK,=GV0DIV,=GV0EME,=GV0FRE,=GV0MNP,=GV0NPL, - =GV1FKY,=GV1IOT,=GV1JFV,=GV1NBW,=GV1YQM,=GV3ATZ,=GV3TJE/P,=GV3UOF,=GV3WEZ,=GV3XJQ,=GV4BKG,=GV4BRS, - =GV4CQZ,=GV4JKR,=GV4JQP,=GV4NQJ,=GV4PUC,=GV6BRC,=GV6JPC,=GV6NKG,=GV7UNV,=GV7VJK,=GV8IQC, - =GW0AWT/2K,=GW0GEI/2K,=GW0GIH/2K,=GW0MNO/2K,=GW0VSW/2K,=GW3JXN/2K,=GW3KJN/2K,=GW4IIL/2K, - =GW4VHP/2K,=M2000Y/97A,=MO0AQZ,=MO0ATI,=MO0COE,=MO0CVT,=MO0EQL,=MO0EZQ,=MO0GXE,=MO0HCX,=MO0IBZ, - =MO0IML,=MO0KLW,=MO0LDJ,=MO0LLK,=MO0LUK,=MO0LZZ,=MO0MAU,=MO0MUM,=MO0MWZ,=MO0OWW,=MO0SGD,=MO0SGR, - =MO0TBB,=MO0TMI,=MO0TTU,=MO0UPH,=MO0VVO,=MO1CFA,=MO1CFN,=MO3DAO,=MO3DQB,=MO3GKI,=MO3OJA,=MO3PUU, - =MO3RNI,=MO3UEZ,=MO3WPH,=MO3YVO,=MO3ZCO,=MO6DVP,=MO6GWK,=MO6GWR,=MO6GWR/P,=MO6MAU,=MO6PAM,=MO6PLC, - =MO6PUT,=MO6SEF,=MO6TBD,=MO6TBP,=MO6WLB,=MQ0AQZ,=MQ0ATI,=MQ0AWW,=MQ0CDO,=MQ0CNA,=MQ0CVT,=MQ0DHF, - =MQ0EQL,=MQ0GXE,=MQ0GYV,=MQ0HCX,=MQ0IBZ,=MQ0IML,=MQ0LDJ,=MQ0LLK,=MQ0LUK,=MQ0LZZ,=MQ0MAU,=MQ0MUM, - =MQ0MWA,=MQ0MWZ,=MQ0OWW,=MQ0PAD,=MQ0RHD,=MQ0SGD,=MQ0SGR,=MQ0TBB,=MQ0TMI,=MQ0TTU,=MQ0UPH,=MQ0UPH/P, - =MQ0VVO,=MQ0XMC/P,=MQ1CFA,=MQ1CFN,=MQ1EYO/P,=MQ1LCR,=MQ3DAO,=MQ3EPA,=MQ3GKI,=MQ3JAT,=MQ3NDB, - =MQ3OJA,=MQ3USK,=MQ3WPH,=MQ3ZCB/P,=MQ5AND,=MQ5EPA,=MQ5VZW,=MQ6DVP,=MQ6KLL,=MQ6MAU,=MQ6PAM,=MQ6PLC, - =MQ6RHD,=MQ6SEF,=MQ6TBD,=MQ6TBP,=MR0AQZ,=MR0BXJ,=MR0CVT,=MR0GUK,=MR0GXE,=MR0IDX,=MR0JGE,=MR0LAO, - =MR0LDJ,=MR0MAU,=MR0RLD,=MR0TTR,=MR0TTU,=MR0YAD,=MR0ZAP,=MR1CFN,=MR1EAA,=MR1LCR,=MR1MAJ/P,=MR1MDH, - =MR3AVB,=MR3AVC,=MR3CBF,=MR3NYR,=MR3OBL,=MR3SET/P,=MR3UFN,=MR3XZP,=MR3YKL,=MR3YLO,=MR3YVO, - =MR3ZCB/P,=MR5HOC,=MR6ADZ,=MR6KDA,=MR6VHF,=MR6YDP,=MV0AEL,=MV0BLM,=MV0EDX,=MV0GWT,=MV0GXE, - =MV0HGY/P,=MV0IML,=MV0LLK,=MV0PJJ,=MV0PJJ/P,=MV0RRD,=MV0SGD,=MV0SGR,=MV0TBB,=MV0TDQ,=MV0UAA, - =MV0USK,=MV0VRQ,=MV0WYN,=MV1CFA,=MV1CFN,=MV1EYP/P,=MV3RNI,=MV6CQN,=MV6GWR,=MV6GWR/P,=MV6URC, - =MV6ZOL,=MW0CND/2K,=MW0DHF/LH,=MW5AAM/2K,=MW5GOL/LH; + =GB0LM,=GB0LVF,=GB0MFH,=GB0MIW,=GB0ML,=GB0MPA,=GB0MSB,=GB0MUU,=GB0MWL,=GB0MZX,=GB0NAW,=GB0NEW, + =GB0NG,=GB0NLC,=GB0PBR,=GB0PEM,=GB0PGG,=GB0PLB,=GB0PLL,=GB0PSG,=GB0RME,=GB0ROC,=GB0RPO,=GB0RS, + =GB0RSC,=GB0RSF,=GB0RWM,=GB0SCB,=GB0SDD,=GB0SGC,=GB0SH,=GB0SH/LH,=GB0SOA,=GB0SPE,=GB0SPS,=GB0TD, + =GB0TL,=GB0TPR,=GB0TS,=GB0TTT,=GB0VCA,=GB0VEE,=GB0VK,=GB0WHH,=GB0WHR,=GB0WIW,=GB0WMZ,=GB0WUL, + =GB0YG,=GB100AB,=GB100BP,=GB100CSW,=GB100GGC,=GB100GGM,=GB100HD,=GB100LB,=GB100LSG,=GB100MCV, + =GB100RS,=GB100TMD,=GB10SOTA,=GB19CGW,=GB19CW,=GB19SG,=GB1AD,=GB1ATC,=GB1BAF,=GB1BGS,=GB1BPL, + =GB1BSW,=GB1BW,=GB1CCC,=GB1CDS,=GB1CPG,=GB1DS,=GB1FHS,=GB1HAS,=GB1HTW,=GB1JC,=GB1KEY,=GB1LSG, + =GB1LW,=GB1OOC,=GB1PCA,=GB1PCS,=GB1PD,=GB1PGW,=GB1PJ,=GB1PLL,=GB1SDD,=GB1SEA,=GB1SL,=GB1SPN, + =GB1SSL,=GB1STC,=GB1TDS,=GB1WAA,=GB1WIW,=GB1WSM,=GB2000SET,=GB2003SET,=GB200HNT,=GB200TT, + =GB250TMB,=GB250TT,=GB2ADU,=GB2BEF,=GB2BGG,=GB2BOM,=GB2BOW,=GB2BPM,=GB2BYF,=GB2CC,=GB2CI,=GB2COB, + =GB2CR,=GB2CRS,=GB2DWR,=GB2EI,=GB2FC,=GB2FLB,=GB2GGM,=GB2GLS,=GB2GOL,=GB2GSG,=GB2GVA,=GB2HDG, + =GB2HMM,=GB2IMD,=GB2LBR,=GB2LM,=GB2LNP,=GB2LSA,=GB2LSA/LH,=GB2LSH,=GB2MD,=GB2MGY,=GB2MIL,=GB2MLM, + =GB2MMC,=GB2MOP,=GB2NF,=GB2NPH,=GB2NPL,=GB2OOA,=GB2ORM,=GB2PRC,=GB2RFS,=GB2RSG,=GB2RTB,=GB2SAC, + =GB2SCC,=GB2SCD,=GB2SCP,=GB2SFM,=GB2SIP,=GB2SLA,=GB2TD,=GB2TD/LH,=GB2TTA,=GB2VK,=GB2WAA,=GB2WHO, + =GB2WIW,=GB2WNA,=GB2WSF,=GB2WT,=GB3HLS,=GB3LMW,=GB4ADU,=GB4AFS,=GB4AOS,=GB4BB,=GB4BIT,=GB4BOJ, + =GB4BPL,=GB4BPL/LH,=GB4BPL/P,=GB4BPR,=GB4BRS/P,=GB4BSG,=GB4CI,=GB4CTC,=GB4EUL,=GB4FAA,=GB4GM, + =GB4GSS,=GB4HFH,=GB4HI,=GB4HLB,=GB4HMD,=GB4HMM,=GB4LRG,=GB4MBC,=GB4MD,=GB4MDH,=GB4MDI,=GB4MJS, + =GB4MPI,=GB4MUU,=GB4NDG,=GB4NPL,=GB4NTB,=GB4ON,=GB4OST,=GB4PAT,=GB4PCS,=GB4PD,=GB4POW,=GB4RC, + =GB4RME,=GB4RSL,=GB4SDD,=GB4SLC,=GB4SSP,=GB4SUB,=GB4TMS,=GB4UKG,=GB4VJD,=GB4WT,=GB4WWI,=GB4XT, + =GB50ABS,=GB50EVS,=GB50RSC,=GB50SGP,=GB5AC,=GB5FI,=GB5GEO,=GB5MD,=GB5ONG,=GB5PSJ,=GB5SIP,=GB5VEP, + =GB5WT,=GB60DITP,=GB60ER,=GB60PW,=GB60SPS,=GB60VLY,=GB65BTF,=GB6AC,=GB6BLB,=GB6CRI,=GB6GGM, + =GB6OQA,=GB6ORA,=GB6PLB,=GB6RNLI,=GB6TS,=GB6TSG,=GB6WT,=GB6WWT,=GB70BTF,=GB750CC,=GB75ATC,=GB75BB, + =GB8CCC,=GB8HI,=GB8MD,=GB8MG,=GB8ND,=GB8OAE,=GB8OQE,=GB8RAF,=GB8WOW,=GB8WT,=GB90RSGB/62, + =GB90RSGB/72,=GB9GGM,=GC4BRS/LH,=GG100ACD,=GG100ANG,=GG100CPG,=GG100RGG,=GG100SG,=GO0DIV,=GO0EZQ, + =GO0EZY,=GO0JEQ,=GO0MNP,=GO0MNP/P,=GO0NPL,=GO0PLB,=GO0PNI,=GO0PUP,=GO0VKW,=GO0VML,=GO0VSW,=GO1DPL, + =GO1IOT,=GO1JFV,=GO1MVL,=GO1PKM,=GO3PLB,=GO3UOF,=GO3UOF/M,=GO3XJQ,=GO4BKG,=GO4BLE,=GO4CQZ,=GO4DTQ, + =GO4GTI,=GO4JKR,=GO4JUN,=GO4JUW,=GO4MVA,=GO4NOO,=GO4OKT,=GO4SUE,=GO4SUE/P,=GO4TNZ,=GO4WXM,=GO6IMS, + =GO6NKG,=GO6UKO,=GO7DWR,=GO7SBO,=GO7VJK,=GO7VQD,=GO8BQK,=GO8IQC,=GO8JOY,=GO8OKR,=GQ0ANA,=GQ0DIV, + =GQ0JEQ,=GQ0JRF,=GQ0MNO,=GQ0MNP,=GQ0NPL,=GQ0PUP,=GQ0RYT,=GQ0SLM,=GQ0TQM,=GQ0VKW,=GQ0VML,=GQ0VSW, + =GQ0WVL,=GQ1FKY,=GQ1FOA/P,=GQ1IOT,=GQ1JFV,=GQ1MVL,=GQ1NRS,=GQ1WRV,=GQ1ZKN,=GQ3IRK,=GQ3PLB,=GQ3SB, + =GQ3UOF,=GQ3VEN,=GQ3VKL,=GQ3WSU,=GQ3XJA,=GQ3XJQ,=GQ4BKG,=GQ4BLE,=GQ4CQZ,=GQ4EZW,=GQ4GSH,=GQ4GTI, + =GQ4IIL,=GQ4JKR,=GQ4JUN,=GQ4JUW,=GQ4LZP,=GQ4MVA,=GQ4NOO,=GQ4OKT,=GQ4SUE,=GQ4VNS,=GQ4VZJ,=GQ4WXM, + =GQ4WXM/P,=GQ6IMS,=GQ6ITJ,=GQ6NKG,=GQ6UKO,=GQ7BQK,=GQ7DWR,=GQ7FBV,=GQ7SBO,=GQ7UNJ,=GQ7UNV,=GQ7VJK, + =GQ7VQD,=GQ8BQK,=GQ8IQC,=GQ8JOY,=GQ8OKR,=GR0ANA,=GR0DIV,=GR0DSP,=GR0HUS,=GR0JEQ,=GR0MYY,=GR0NPL, + =GR0PSV,=GR0RYT,=GR0SYN,=GR0TKX,=GR0VKW,=GR0WGK,=GR1FJI,=GR1HNG,=GR1LFX,=GR1LHV,=GR1MCD,=GR1SGG, + =GR1WVY,=GR1YQM,=GR3SB,=GR3SFC,=GR3TKH,=GR3UOF,=GR3XJQ,=GR4BKG,=GR4BLE,=GR4CQZ,=GR4GNY,=GR4GTI, + =GR4HZA,=GR4JUN,=GR4JUW,=GR4OGO,=GR4SUE,=GR4VSS/P,=GR4XXJ,=GR4ZOM,=GR5PH,=GR6NKG,=GR6SIX,=GR6STK, + =GR6UKO,=GR6ZDH,=GR7AAV,=GR7HOC,=GR7NAU,=GR7TKZ,=GR7UNV,=GR7VQD,=GR8BQK,=GR8IQC,=GR8OGI,=GR8TRO, + =GV0ANA,=GV0DCK,=GV0DIV,=GV0EME,=GV0FRE,=GV0MNP,=GV0NPL,=GV1FKY,=GV1IOT,=GV1JFV,=GV1NBW,=GV1YQM, + =GV3ATZ,=GV3TJE/P,=GV3UOF,=GV3WEZ,=GV3XJQ,=GV4BKG,=GV4BRS,=GV4CQZ,=GV4JKR,=GV4JQP,=GV4NQJ,=GV4PUC, + =GV6BRC,=GV6JPC,=GV6NKG,=GV7UNV,=GV7VJK,=GV8IQC,=GW0AWT/2K,=GW0GEI/2K,=GW0GIH/2K,=GW0MNO/2K, + =GW0VSW/2K,=GW3JXN/2K,=GW3KJN/2K,=GW4IIL/2K,=GW4VHP/2K,=M2000Y/97A,=MO0AQZ,=MO0ATI,=MO0COE, + =MO0CVT,=MO0EQL,=MO0EZQ,=MO0GXE,=MO0HCX,=MO0IBZ,=MO0IML,=MO0KLW,=MO0LDJ,=MO0LLK,=MO0LUK,=MO0LZZ, + =MO0MAU,=MO0MUM,=MO0MWZ,=MO0OWW,=MO0SGD,=MO0SGR,=MO0TBB,=MO0TMI,=MO0TTU,=MO0UPH,=MO0VVO,=MO1CFA, + =MO1CFN,=MO3DAO,=MO3DQB,=MO3GKI,=MO3OJA,=MO3PUU,=MO3RNI,=MO3UEZ,=MO3WPH,=MO3YVO,=MO3ZCO,=MO6DVP, + =MO6GWK,=MO6GWR,=MO6GWR/P,=MO6MAU,=MO6PAM,=MO6PLC,=MO6PUT,=MO6SEF,=MO6TBD,=MO6TBP,=MO6WLB,=MQ0AQZ, + =MQ0ATI,=MQ0AWW,=MQ0CDO,=MQ0CNA,=MQ0CVT,=MQ0DHF,=MQ0EQL,=MQ0GXE,=MQ0GYV,=MQ0HCX,=MQ0IBZ,=MQ0IML, + =MQ0LDJ,=MQ0LLK,=MQ0LUK,=MQ0LZZ,=MQ0MAU,=MQ0MUM,=MQ0MWA,=MQ0MWZ,=MQ0OWW,=MQ0PAD,=MQ0RHD,=MQ0SGD, + =MQ0SGR,=MQ0TBB,=MQ0TMI,=MQ0TTU,=MQ0UPH,=MQ0UPH/P,=MQ0VVO,=MQ0XMC/P,=MQ1CFA,=MQ1CFN,=MQ1EYO/P, + =MQ1LCR,=MQ3DAO,=MQ3EPA,=MQ3GKI,=MQ3JAT,=MQ3NDB,=MQ3OJA,=MQ3USK,=MQ3WPH,=MQ3ZCB/P,=MQ5AND,=MQ5EPA, + =MQ5VZW,=MQ6DVP,=MQ6KLL,=MQ6MAU,=MQ6PAM,=MQ6PLC,=MQ6RHD,=MQ6SEF,=MQ6TBD,=MQ6TBP,=MR0AQZ,=MR0BXJ, + =MR0CVT,=MR0GUK,=MR0GXE,=MR0IDX,=MR0JGE,=MR0LAO,=MR0LDJ,=MR0MAU,=MR0RLD,=MR0TTR,=MR0TTU,=MR0YAD, + =MR0ZAP,=MR1CFN,=MR1EAA,=MR1LCR,=MR1MAJ/P,=MR1MDH,=MR3AVB,=MR3AVC,=MR3CBF,=MR3NYR,=MR3OBL, + =MR3SET/P,=MR3UFN,=MR3XZP,=MR3YKL,=MR3YLO,=MR3YVO,=MR3ZCB/P,=MR5HOC,=MR6ADZ,=MR6KDA,=MR6VHF, + =MR6YDP,=MV0AEL,=MV0BLM,=MV0EDX,=MV0GWT,=MV0GXE,=MV0HGY/P,=MV0IML,=MV0LLK,=MV0PJJ,=MV0PJJ/P, + =MV0RRD,=MV0SGD,=MV0SGR,=MV0TBB,=MV0TDQ,=MV0UAA,=MV0USK,=MV0VRQ,=MV0WYN,=MV1CFA,=MV1CFN,=MV1EYP/P, + =MV3RNI,=MV6CQN,=MV6GWR,=MV6GWR/P,=MV6URC,=MV6ZOL,=MW0CND/2K,=MW0DHF/LH,=MW5AAM/2K,=MW5GOL/LH; Solomon Islands: 28: 51: OC: -9.00: -160.00: -11.0: H4: H4,=H40/H44RK; Temotu Province: 32: 51: OC: -10.72: -165.80: -11.0: H40: @@ -1078,8 +1080,8 @@ Italy: 15: 28: EU: 42.82: -12.58: -1.0: I: I,=II0PN/MM(40),=II1RT/N, =4U0WFP,=4U4F,=4U5F,=4U6F,=4U7F,=4U7FOC,=4U80FOC,=4U8F,=4U8FOC,=II0IDR/NAVY,=IK0ATK/N,=IK0CNA/LH, =IK0JFS/N,=IK0XFD/N,=IQ0AP/J,=IQ0CV/LH,=IQ0FM/LH,=IQ0FR/LH,=IQ0GV/AAW,=IR0BP/J,=IU0FSC/LH, - =IW0HP/N,=IW9GSH/0,=IZ0BXZ/N,=IZ0DBA/N,=IZ0EGC/N,=IZ0FVD/N,=IZ0HTW/PS,=IZ0HTW/SP,=IZ0IAT/LH, - =IZ0IJC/FF,=IZ0IJC/N, + =IW0HP/N,=IW9GSH/0,=IZ0BXZ/N,=IZ0DBA/N,=IZ0EGC/N,=IZ0EUX/I/AZ,=IZ0FVD/N,=IZ0HTW/PS,=IZ0HTW/SP, + =IZ0IAT/LH,=IZ0IJC/FF,=IZ0IJC/N,=IZ0XZD/RO, =I1MQ/N,=I1ULJ/N,=I1XSG/N,=I1YRL/GRA,=II1PV/LH,=IK1RED/N,=IK1VDN/N,=IP1T/LH,=IQ1L/LH,=IQ1NM/REX, =IQ1SP/N,=IU1LCI/EMG,=IY1SP/ASB,=IY1SP/MTN,=IZ0IJC/BSM,=IZ1CLA/N,=IZ1ESH/EMG,=IZ1FCF/N, =IZ1GDB/EMG,=IZ1POA/N,=IZ1RGI/ECO,=IZ5GST/1/LH, @@ -1087,10 +1089,10 @@ Italy: 15: 28: EU: 42.82: -12.58: -1.0: I: =IQ2MI/J,=IW2NUY/N,=IZ2MYA/EXPO, =I3GJJ/J,=I3TXQ/N,=IK3TZB/N,=IQ3DD/MCC,=IQ3FL/J,=IQ3TS/LH,=IW3BSQ/LH,=IZ3DBA/N,=IZ3GHP/N, =IZ3QCH/N,=IZ3SZQ/N, - =I4CQO/N,=II4CPG/LH,=II4GOR/LH,=IQ4FA/J,=IQ4FJ/J,=IQ4RA/LH,=IQ4RN/LGT,=IQ4RN/LH,=IT9RGY/4, - =IW4EGX/LH,=IZ4AIH/J, - =I5OYY/N,=II5BP/J,=IK5IWU/N,=IK5TSZ/N,=IP5P/LH,=IQ5AA/J,=IQ5AE/J,=IQ5LI/J,=IQ5LV/J,=IU5JHK/J, - =IW5DAX/J,=IZ5AHB/N, + =I4CQO/N,=II4CPG/LH,=II4GOR/LH,=IK4UXA/4ME,=IQ4FA/J,=IQ4FJ/J,=IQ4RA/LH,=IQ4RN/LGT,=IQ4RN/LH, + =IT9RGY/4,=IW4EGX/LH,=IZ4AIH/J, + =I5OYY/N,=II5BP/J,=IK5IWU/N,=IK5TBI/I/CT,=IK5TBI/NAVY,=IK5TSZ/N,=IP5P/LH,=IQ5AA/J,=IQ5AE/J, + =IQ5LI/J,=IQ5LV/J,=IU5JHK/J,=IW5DAX/J,=IZ5AHB/N, =I6DHY/CASA,=I6FDJ/LH,=I6FDJ/N,=I6HWD/CA,=I6HWD/LH,=I6KIU/6/LH,=IK6FAW/J,=IK6XOU/LH,=IK6XUL/LH, =IK6YXM/N,=IQ6FU/LH,=IQ6PS/LH,=IQ6SB/LGH,=IQ6SB/LGT,=IQ6SB/LH,=IQ6VP/J,=IZ6ASI/LH,=IZ6ASI/N, =IZ6CDI/O,=IZ6RWD/O,=IZ6TGS/LH,=IZ6TGS/N, @@ -1098,13 +1100,13 @@ Italy: 15: 28: EU: 42.82: -12.58: -1.0: I: =I7XUW/MI/224,=II7IAOI/N,=II7PT/C,=II7PT/D,=II7PT/E,=II7PT/F,=II7PT/G,=II7PT/H,=II7PT/L, =II8ICN/NAVY,=IK7JWX/LH,=IK7SHC/MT,=IQ7ML/J,=IQ7ML/LH,=IQ7QK/LH,=IU7SCT/J,=IZ2DPX/7/LH,=IZ7DKA/YL, =IZ7KDX/LH,=IZ7LDC/LH, - =IK2RLS/8/LH,=IK8IJN/I/US,=IK8TEO/N,=IQ8OM/N,=IQ8PC/BWL,=IQ8XS/CEU,=IQ8YZ/SH,=IT9AAK/8, - =IU8CEU/8CZ,=IW8FFG/J,=IZ8AJQ/LGT,=IZ8AJQ/LH,=IZ8DBJ/LGT,=IZ8DBJ/LH,=IZ8FMU/KR,=IZ8IZK/YL, - =IZ8JPV/N,=IZ8QNX/N, + =IK2RLS/8/LH,=IK8IJN/8US,=IK8IJN/I/US,=IK8TEO/N,=IK8VHP/OA,=IQ8OM/N,=IQ8PC/BWL,=IQ8XS/CEU, + =IQ8YZ/SH,=IT9AAK/8,=IU8CEU/8CZ,=IU8FWT/I/CP,=IW8EHK/8BN,=IW8FFG/J,=IZ8AJQ/LGT,=IZ8AJQ/LH, + =IZ8DBJ/LGT,=IZ8DBJ/LH,=IZ8FMU/KR,=IZ8IZK/YL,=IZ8JPV/N,=IZ8QNX/N,=IZ8VNQ/LI, =IA5/IW3ILP/L, =IC8/DJ5AA/LH, =IN3IKF/J,=IN3TJK/YL, - =II3T/LH,=IQ3TS/LGT,=IQ3V/LH,=IV3TRK/N; + =II3T/LH,=IQ3TS/LGT,=IQ3V/LH,=IV3DSB/I/BR,=IV3TRK/N; African Italy: 33: 37: AF: 35.67: -12.67: -1.0: *IG9: IG9,IH9,=IO9Y,=IY9A; Sardinia: 15: 28: EU: 40.15: -9.27: -1.0: IS: @@ -1113,11 +1115,13 @@ Sardinia: 15: 28: EU: 40.15: -9.27: -1.0: IS: =IQ0AH/P,=IQ0AI,=IQ0AI/P,=IQ0AK,=IQ0AK/P,=IQ0AL,=IQ0AL/P,=IQ0AM,=IQ0AM/P,=IQ0EH,=IQ0EH/P,=IQ0HO, =IQ0ID,=IQ0ID/P,=IQ0JY,=IQ0NU,=IQ0NU/P,=IQ0NV,=IQ0NV/P,=IQ0OG,=IQ0OH,=IQ0QP,=IQ0QP/LH,=IQ0QP/P, =IQ0SS,=IQ0SS/P,=IQ0US,=IQ0UT,=IQ0XP,=IR0EO,=IR0FOC,=IR0IDP,=IR0IDP/1,=IR0IDP/2,=IR0IDP/3,=IR0LVC, - =IR0MDC,=IS0/4Z5KJ/LH,=IS0/DL5SE/LH,=IS0ICE/N,=IS0IGV/N,=IS0PGF/N,=IS0SDX/N,=IW0HRI,=IY0GA,=IY0NV; + =IR0MDC,=IS0/4Z5KJ/LH,=IS0/DL5SE/LH,=IS0FAP/I/LR,=IS0ICE/N,=IS0IGV/N,=IS0PGF/N,=IS0SDX/N,=IW0HRI, + =IY0GA,=IY0NV; Sicily: 15: 28: EU: 37.50: -14.00: -1.0: *IT9: IB9,ID9,IE9,IF9,II9,IJ9,IO9,IQ9,IR9,IT9,IU9,IW9,IY9,=II0GDF/9,=IQ1QQ/9,=IT9CHU/J,=IT9CKA/CA, =IT9CLY/JZK,=IT9DSA/CA,=IT9DTU/N,=IT9GDS/WLK,=IT9HBS/LH,=IT9JZK/WLK,=IT9KKE/JZK,=IT9MRM/N, - =IT9MRZ/LH,=IT9NCO/LH,=IT9NCO/N,=IT9OTF/JZK,=IT9RRU/LH,=IT9RYH/J,=IT9RYH/N,=IT9ZSB/LH,=IW0HBY/9; + =IT9MRZ/LH,=IT9NCO/LH,=IT9NCO/N,=IT9OTF/JZK,=IT9RRU/LH,=IT9RYH/J,=IT9RYH/N,=IT9YBL/SG,=IT9ZSB/LH, + =IW0HBY/9; Djibouti: 37: 48: AF: 11.75: -42.35: -3.0: J2: J2; Grenada: 08: 11: NA: 12.13: 61.68: 4.0: J3: @@ -1168,20 +1172,20 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: WE0(4)[7],WF0(4)[7],WG0(4)[7],WI0(4)[7],WJ0(4)[7],WK0(4)[7],WM0(4)[7],WN0(4)[7],WO0(4)[7], WQ0(4)[7],WR0(4)[7],WS0(4)[7],WT0(4)[7],WU0(4)[7],WV0(4)[7],WW0(4)[7],WX0(4)[7],WY0(4)[7], WZ0(4)[7],=AH2BW(4)[7],=AH2BY(4)[7],=AH6ES/0(4)[7],=AH6FY(4)[7],=AH6MD(4)[7],=AH6N(4)[7], - =AH6N/0(4)[7],=AH6O(4)[7],=AH6OS(4)[7],=AH6PC(4)[7],=AH6RS(4)[7],=AL0G(4)[7],=AL1VE/R(4)[7], - =AL3E(4)[7],=AL3V(4)[7],=AL6E(4)[7],=AL7BX(4)[7],=AL7EK(4)[7],=AL7FU(4)[7],=AL7GQ(4)[7], - =AL7NY(4)[7],=AL7O/0(4)[7],=AL7OC(4)[7],=AL7OX(4)[7],=AL7QQ(4)[7],=AL7QQ/P(4)[7],=AL9DB(4)[7], - =KH0EX(4)[7],=KH2CZ(4)[7],=KH2FM(4)[7],=KH2JK(4)[7],=KH2OP(4)[7],=KH2OP/0(4)[7],=KH2SL(4)[7], - =KH6DM(4)[7],=KH6HNL(4)[7],=KH6HTV(4)[7],=KH6HTV/0(4)[7],=KH6JEM(4)[7],=KH6JFH(4)[7],=KH6NM(4)[7], - =KH6NR(4)[7],=KH6OY(4)[7],=KH6RON(4)[7],=KH6SB(4)[7],=KH6TL(4)[7],=KH6UC(4)[7],=KH6VHF(4)[7], - =KH6VO(4)[7],=KH7AL/M(4)[7],=KH7AL/P(4)[7],=KH7BU(4)[7],=KH7GF(4)[7],=KH7HA(4)[7],=KH7HY(4)[7], - =KH7OX(4)[7],=KH7QI(4)[7],=KH7QJ(4)[7],=KH7QT(4)[7],=KH8CW(4)[7],=KL0DW(4)[7],=KL0EQ(4)[7], - =KL0FOX(4)[7],=KL0GP(4)[7],=KL0GQ(4)[7],=KL0MW(4)[7],=KL0N(4)[7],=KL0SV(4)[7],=KL0UP(4)[7], - =KL0VM(4)[7],=KL0WIZ(4)[7],=KL0XN(4)[7],=KL1HT(4)[7],=KL1IF(4)[7],=KL1IF/M(4)[7],=KL1J(4)[7], - =KL1LD(4)[7],=KL1PV(4)[7],=KL1TU(4)[7],=KL1V/M(4)[7],=KL1VN(4)[7],=KL2A/0(4)[7],=KL2FU(4)[7], - =KL2GR(4)[7],=KL2NS(4)[7],=KL2QO(4)[7],=KL2SX(4)[7],=KL2YI(4)[7],=KL3LY(4)[7],=KL3MA(4)[7], - =KL3MB(4)[7],=KL3MC(4)[7],=KL3MW(4)[7],=KL3QS(4)[7],=KL3SM(4)[7],=KL3VN(4)[7],=KL4IY(4)[7], - =KL4JN(4)[7],=KL7DE(4)[7],=KL7DTJ(4)[7],=KL7ED(4)[7],=KL7EP(4)[7],=KL7EP/0(4)[7],=KL7GKY/0(4)[7], + =AH6N/0(4)[7],=AH6O(4)[7],=AH6OS(4)[7],=AH6PC(4)[7],=AH6RS(4)[7],=AL0G(4)[7],=AL3E(4)[7], + =AL3V(4)[7],=AL6E(4)[7],=AL7BX(4)[7],=AL7EK(4)[7],=AL7FU(4)[7],=AL7GQ(4)[7],=AL7NY(4)[7], + =AL7O/0(4)[7],=AL7OX(4)[7],=AL7QQ(4)[7],=AL7QQ/P(4)[7],=AL9DB(4)[7],=KH0EX(4)[7],=KH2CZ(4)[7], + =KH2FM(4)[7],=KH2JK(4)[7],=KH2OP(4)[7],=KH2OP/0(4)[7],=KH2SL(4)[7],=KH6DM(4)[7],=KH6HNL(4)[7], + =KH6HTV(4)[7],=KH6HTV/0(4)[7],=KH6JEM(4)[7],=KH6JFH(4)[7],=KH6NM(4)[7],=KH6NR(4)[7],=KH6OY(4)[7], + =KH6RON(4)[7],=KH6SB(4)[7],=KH6TL(4)[7],=KH6UC(4)[7],=KH6VHF(4)[7],=KH6VO(4)[7],=KH7AL/M(4)[7], + =KH7AL/P(4)[7],=KH7BU(4)[7],=KH7GF(4)[7],=KH7HA(4)[7],=KH7HY(4)[7],=KH7OX(4)[7],=KH7QI(4)[7], + =KH7QJ(4)[7],=KH7QT(4)[7],=KH8CW(4)[7],=KL0DW(4)[7],=KL0EQ(4)[7],=KL0FOX(4)[7],=KL0GP(4)[7], + =KL0GQ(4)[7],=KL0MW(4)[7],=KL0N(4)[7],=KL0SV(4)[7],=KL0UP(4)[7],=KL0VM(4)[7],=KL0WIZ(4)[7], + =KL0XM(4)[7],=KL0XN(4)[7],=KL1HT(4)[7],=KL1IF(4)[7],=KL1IF/M(4)[7],=KL1J(4)[7],=KL1LD(4)[7], + =KL1PV(4)[7],=KL1TU(4)[7],=KL1V/M(4)[7],=KL1VN(4)[7],=KL2A/0(4)[7],=KL2FU(4)[7],=KL2GR(4)[7], + =KL2NS(4)[7],=KL2QO(4)[7],=KL2SX(4)[7],=KL2YI(4)[7],=KL3LY(4)[7],=KL3MA(4)[7],=KL3MB(4)[7], + =KL3MC(4)[7],=KL3MW(4)[7],=KL3QS(4)[7],=KL3SM(4)[7],=KL3VN(4)[7],=KL4IY(4)[7],=KL4JN(4)[7], + =KL7DE(4)[7],=KL7DTJ(4)[7],=KL7DYS(4)[7],=KL7ED(4)[7],=KL7EP(4)[7],=KL7EP/0(4)[7],=KL7GKY/0(4)[7], =KL7GLK(4)[7],=KL7GLK/0(4)[7],=KL7GLK/B(4)[7],=KL7HR(4)[7],=KL7IWT(4)[7],=KL7IXI(4)[7], =KL7JGJ(4)[7],=KL7JIE(4)[7],=KL7JIM(4)[7],=KL7JR/0(4)[7],=KL7MH(4)[7],=KL7MP(4)[7],=KL7MV(4)[7], =KL7NW(4)[7],=KL7PE/M(4)[7],=KL7QW(4)[7],=KL7QW/0(4)[7],=KL7RH(4)[7],=KL7RZ(4)[7],=KL7SB/0(4)[7], @@ -1196,12 +1200,12 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =WH7PV(4)[7],=WH9AAH(4)[7],=WL0JF(4)[7],=WL1ON(4)[7],=WL7AEC(4)[7],=WL7AJA(4)[7],=WL7ANY(4)[7], =WL7ATK(4)[7],=WL7BRV(4)[7],=WL7BT(4)[7],=WL7CEG(4)[7],=WL7CLI(4)[7],=WL7CPW(4)[7],=WL7CQF(4)[7], =WL7CRT(4)[7],=WL7CY(4)[7],=WL7J(4)[7],=WL7JB(4)[7],=WL7LZ(4)[7],=WL7LZ/M(4)[7],=WL7RV(4)[7], - =WL7S(4)[7],=WL7YM(4)[7],=WP2B/0(4)[7],=WP3QH(4)[7],=WP3Y(4)[7],=WP4BTQ(4)[7],=WP4GQR(4)[7], - =WP4LC(4)[7],=WP4NPV(4)[7], - =AH2V(5)[8],=AH2W(5)[8],=AH6BV(5)[8],=AL0A(5)[8],=AL1O(5)[8],=AL4V(5)[8],=AL6L(5)[8],=AL6M(5)[8], - =AL7EL(5)[8],=AL7GD(5)[8],=AL7LV(5)[8],=AL7QS(5)[8],=AL8E(5)[8],=KH2AB(5)[8],=KH2BA(5)[8], - =KH2EH(5)[8],=KH6GR(5)[8],=KH6HZ(5)[8],=KH6IKI(5)[8],=KH6JKQ(5)[8],=KH6JUK(5)[8],=KH6RF(5)[8], - =KH6RF/1(5)[8],=KH6RF/M(5)[8],=KH7CD(5)[8],=KH7CD/1(5)[8],=KH7PL(5)[8],=KH8AC(5)[8], + =WL7S(4)[7],=WL7YM(4)[7],=WP2B/0(4)[7],=WP3QH(4)[7],=WP4BTQ(4)[7],=WP4GQR(4)[7],=WP4LC(4)[7], + =WP4NPV(4)[7], + =AH2V(5)[8],=AH2W(5)[8],=AH6BV(5)[8],=AL0A(5)[8],=AL1K(5)[8],=AL1O(5)[8],=AL4V(5)[8],=AL6L(5)[8], + =AL6M(5)[8],=AL7EL(5)[8],=AL7GD(5)[8],=AL7LV(5)[8],=AL7QS(5)[8],=AL8E(5)[8],=KH2AB(5)[8], + =KH2BA(5)[8],=KH2EH(5)[8],=KH6GR(5)[8],=KH6HZ(5)[8],=KH6IKI(5)[8],=KH6JKQ(5)[8],=KH6JUK(5)[8], + =KH6RF(5)[8],=KH6RF/1(5)[8],=KH6RF/M(5)[8],=KH7CD(5)[8],=KH7CD/1(5)[8],=KH7PL(5)[8],=KH8AC(5)[8], =KH8AC/1(5)[8],=KL1OC(5)[8],=KL1T(5)[8],=KL1WD(5)[8],=KL2A/1(5)[8],=KL2DM(5)[8],=KL2GA(5)[8], =KL2IC(5)[8],=KL2KL(5)[8],=KL2MU(5)[8],=KL3UX(5)[8],=KL3VA(5)[8],=KL4XK(5)[8],=KL7CE/1(5)[8], =KL7IOP(5)[8],=KL7IXX(5)[8],=KL7JHM(5)[8],=KL7JJN(5)[8],=KL7JR/1(5)[8],=KL7JT(5)[8],=KL7LK(5)[8], @@ -1213,11 +1217,12 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =NP2FZ/1(5)[8],=NP2GG(5)[8],=NP2PN(5)[8],=NP3IV(5)[8],=NP3LN(5)[8],=NP3WX(5)[8],=NP4AO(5)[8], =NP4AZ(5)[8],=NP4ER(5)[8],=VE1BES/M(5)[8],=VE3CMB/M(5)[8],=VE4CCN/M(5)[8],=WH0EWX(5)[8], =WH2B(5)[8],=WH6CT(5)[8],=WH6DSN(5)[8],=WH6EI(5)[8],=WH6FBH(5)[8],=WH6MY(5)[8],=WH6SW(5)[8], - =WH6SW/1(5)[8],=WH7TP(5)[8],=WH7YQ(5)[8],=WH7YR(5)[8],=WL1B(5)[8],=WL7B(5)[8],=WL7CC(5)[8], - =WL7CUP(5)[8],=WL7CVD(5)[8],=WL7WO(5)[8],=WL7WO/1(5)[8],=WL7Z/1(5)[8],=WP2MG(5)[8],=WP3GN(5)[8], + =WH6SW/1(5)[8],=WH7TP(5)[8],=WH7YQ(5)[8],=WH7YR(5)[8],=WL7B(5)[8],=WL7CC(5)[8],=WL7CUP(5)[8], + =WL7CVD(5)[8],=WL7WO(5)[8],=WL7WO/1(5)[8],=WL7Z/1(5)[8],=WP2MG(5)[8],=WP3AC(5)[8],=WP3GN(5)[8], =WP3NN(5)[8],=WP3QV(5)[8],=WP3QV/1(5)[8],=WP3WV(5)[8],=WP4AKE(5)[8],=WP4AZJ(5)[8],=WP4BC(5)[8], =WP4BF(5)[8],=WP4CGI(5)[8],=WP4CJH(5)[8],=WP4JF(5)[8],=WP4KQ(5)[8],=WP4MKJ(5)[8],=WP4MMV(5)[8], - =WP4MOC(5)[8],=WP4NKW(5)[8],=WP4NUV(5)[8],=WP4NYY(5)[8],=WP4OFO(5)[8],=WP4OIG(5)[8],=WP4OJK(5)[8], + =WP4MOC(5)[8],=WP4NKW(5)[8],=WP4NUV(5)[8],=WP4NYT(5)[8],=WP4NYY(5)[8],=WP4OFO(5)[8],=WP4OIG(5)[8], + =WP4OJK(5)[8],=WP4RQ(5)[8], =AH0BR(5)[8],=AH2AL(5)[8],=AH2CG(5)[8],=AH2O(5)[8],=AH6K(5)[8],=AL0Q(5)[8],=AL0Y(5)[8], =AL2O(5)[8],=AL7RG(5)[8],=KH2CW(5)[8],=KH2P(5)[8],=KH2R(5)[8],=KH4AG(5)[8],=KH6ALN(5)[8], =KH6HFO(5)[8],=KH6HO(5)[8],=KH7GA(5)[8],=KH7JO(5)[8],=KH7JO/2(5)[8],=KH7MX(5)[8],=KH7NE(5)[8], @@ -1246,110 +1251,112 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =NL7CK(5)[8],=NL7PJ(5)[8],=NL7V/3(5)[8],=NL7WA(5)[8],=NL7XM(5)[8],=NL7XM/B(5)[8],=NP2EP(5)[8], =NP2G(5)[8],=NP2NC(5)[8],=NP3ES(5)[8],=NP3IP(5)[8],=NP3YN(5)[8],=NP4RH(5)[8],=NP4YZ(5)[8], =WH6ADS(5)[8],=WH6AWO(5)[8],=WH6AZN(5)[8],=WH6CE(5)[8],=WH6CTO(5)[8],=WH6DOA(5)[8],=WH6ECO(5)[8], - =WH6EEL(5)[8],=WH6EEN(5)[8],=WH6EIJ(5)[8],=WH6GEU(5)[8],=WH6IO(5)[8],=WH6OB(5)[8],=WH6RN(5)[8], - =WH7F(5)[8],=WH7USA(5)[8],=WL7AF(5)[8],=WL7L(5)[8],=WP2XX(5)[8],=WP3BX(5)[8],=WP3CC(5)[8], - =WP3EC(5)[8],=WP3FK(5)[8],=WP4DA(5)[8],=WP4DCK(5)[8],=WP4EDM(5)[8],=WP4GJL(5)[8],=WP4HRK(5)[8], - =WP4HSZ(5)[8],=WP4KDN(5)[8],=WP4KKX(5)[8],=WP4KTU(5)[8],=WP4LEM(5)[8],=WP4LNP(5)[8],=WP4MNV(5)[8], - =WP4MSX(5)[8],=WP4MYN(5)[8],=WP4NXG(5)[8],=WP4OSQ(5)[8],=WP4PPH(5)[8],=WP4PQN(5)[8],=WP4PUR(5)[8], - =WP4PYL(5)[8],=WP4PYM(5)[8],=WP4PYT(5)[8],=WP4PYU(5)[8],=WP4PYV(5)[8],=WP4PYZ(5)[8],=WP4PZA(5)[8], + =WH6EEL(5)[8],=WH6EEN(5)[8],=WH6EIJ(5)[8],=WH6FPS(5)[8],=WH6GEU(5)[8],=WH6IO(5)[8],=WH6OB(5)[8], + =WH6RN(5)[8],=WH7F(5)[8],=WH7USA(5)[8],=WL7AF(5)[8],=WL7L(5)[8],=WP2XX(5)[8],=WP3BX(5)[8], + =WP3CC(5)[8],=WP3EC(5)[8],=WP3FK(5)[8],=WP4DA(5)[8],=WP4DCK(5)[8],=WP4EDM(5)[8],=WP4GJL(5)[8], + =WP4HRK(5)[8],=WP4HSZ(5)[8],=WP4KDN(5)[8],=WP4KKX(5)[8],=WP4KTU(5)[8],=WP4LEM(5)[8],=WP4LNP(5)[8], + =WP4MNV(5)[8],=WP4MSX(5)[8],=WP4MYN(5)[8],=WP4NXG(5)[8],=WP4OSQ(5)[8],=WP4PPH(5)[8],=WP4PQN(5)[8], + =WP4PUR(5)[8],=WP4PYL(5)[8],=WP4PYM(5)[8],=WP4PYT(5)[8],=WP4PYU(5)[8],=WP4PYV(5)[8],=WP4PYZ(5)[8], + =WP4PZA(5)[8], =AH0BV(5)[8],=AH0BZ(5)[8],=AH0G(5)[8],=AH2AJ(5)[8],=AH2AM(5)[8],=AH2AV/4(5)[8],=AH2DF(5)[8], =AH2EB(5)[8],=AH2X(5)[8],=AH3B(5)[8],=AH6AL(5)[8],=AH6AT(5)[8],=AH6AU(5)[8],=AH6BJ(5)[8], =AH6C(5)[8],=AH6EZ/4(5)[8],=AH6FX(5)[8],=AH6FX/4(5)[8],=AH6IC(5)[8],=AH6IJ(5)[8],=AH6IW(5)[8], - =AH6JH(5)[8],=AH6JN/4(5)[8],=AH6JN/M(5)[8],=AH6KS(5)[8],=AH6KT(5)[8],=AH6KT/4(5)[8],=AH6LS(5)[8], - =AH6OB(5)[8],=AH6TI(5)[8],=AH7DN(5)[8],=AH7I(5)[8],=AH7I/4(5)[8],=AH7MI(5)[8],=AH8B(5)[8], - =AH8M(5)[8],=AH8M/M(5)[8],=AH8T(5)[8],=AL0I(5)[8],=AL1A(5)[8],=AL3G(5)[8],=AL3M(5)[8],=AL4T(5)[8], - =AL4T/4(5)[8],=AL4U(5)[8],=AL4X(5)[8],=AL5A(5)[8],=AL7AL(5)[8],=AL7AM(5)[8],=AL7BA(5)[8], - =AL7FR(5)[8],=AL7GF(5)[8],=AL7GK(5)[8],=AL7HG(5)[8],=AL7HW(5)[8],=AL7HW/4(5)[8],=AL7IS(5)[8], - =AL7KT(5)[8],=AL7LH(5)[8],=AL7NL(5)[8],=AL7NM(5)[8],=AL7NS(5)[8],=AL7NS/140(5)[8],=AL7PL(5)[8], - =AL7QI(5)[8],=AL7RE(5)[8],=AL7RL(5)[8],=G8ERJ(5)[8],=GO4AZM(5)[8],=GQ4AZM(5)[8],=GR4AZM(5)[8], - =KH0CW(5)[8],=KH0HR(5)[8],=KH0NI(5)[8],=KH0ZZ(5)[8],=KH2BX(5)[8],=KH2D(5)[8],=KH2D/4(5)[8], - =KH2GUM/P(5)[8],=KH2HB(5)[8],=KH2KD(5)[8],=KH2N(5)[8],=KH2NC(5)[8],=KH2PM(5)[8],=KH2RL(5)[8], - =KH2TI(5)[8],=KH2UG(5)[8],=KH2UV(5)[8],=KH2UZ(5)[8],=KH2VM(5)[8],=KH3AC(5)[8],=KH3AG(5)[8], - =KH6AE(5)[8],=KH6AME(5)[8],=KH6CG(5)[8],=KH6CG/4(5)[8],=KH6CT(5)[8],=KH6ED(5)[8],=KH6HHS(5)[8], - =KH6HHS/4(5)[8],=KH6HOW(5)[8],=KH6ILR(5)[8],=KH6ILR/4(5)[8],=KH6ITI(5)[8],=KH6JAU(5)[8], - =KH6JIM(5)[8],=KH6JJD(5)[8],=KH6JNW(5)[8],=KH6JUA(5)[8],=KH6KZ(5)[8],=KH6M(5)[8],=KH6M/4(5)[8], - =KH6M/M(5)[8],=KH6MT(5)[8],=KH6MT/4(5)[8],=KH6NC(5)[8],=KH6NI(5)[8],=KH6OU(5)[8],=KH6POI(5)[8], - =KH6PU(5)[8],=KH6RP(5)[8],=KH6TY(5)[8],=KH6TY/R(5)[8],=KH6UN(5)[8],=KH6WE(5)[8],=KH6XH(5)[8], - =KH7DM(5)[8],=KH7DY(5)[8],=KH7FC(5)[8],=KH7FU(5)[8],=KH7GM(5)[8],=KH7GZ(5)[8],=KH7HJ/4(5)[8], - =KH7OC(5)[8],=KH7OV(5)[8],=KH7WK(5)[8],=KH7XS/4(5)[8],=KH7XT(5)[8],=KH7ZC(5)[8],=KH8DO(5)[8], - =KH8U(5)[8],=KL0AG(5)[8],=KL0IP(5)[8],=KL0KC(5)[8],=KL0KE/4(5)[8],=KL0L(5)[8],=KL0MG(5)[8], - =KL0MP(5)[8],=KL0S(5)[8],=KL0SS(5)[8],=KL0ST(5)[8],=KL0TY(5)[8],=KL0UA(5)[8],=KL0UD(5)[8], - =KL0VU(5)[8],=KL0WF(5)[8],=KL1KP(5)[8],=KL1NK(5)[8],=KL1NS(5)[8],=KL1OK(5)[8],=KL1PA(5)[8], - =KL1SS(5)[8],=KL2AK(5)[8],=KL2CX(5)[8],=KL2EY(5)[8],=KL2GG(5)[8],=KL2GP(5)[8],=KL2HV(5)[8], - =KL2MQ(5)[8],=KL2NN(5)[8],=KL2UM(5)[8],=KL2UQ(5)[8],=KL2XI(5)[8],=KL3BG(5)[8],=KL3EV(5)[8], - =KL3HG(5)[8],=KL3IA(5)[8],=KL3KB(5)[8],=KL3KG(5)[8],=KL3NR(5)[8],=KL3WM(5)[8],=KL3X(5)[8], - =KL3XB(5)[8],=KL4CO(5)[8],=KL4DD(5)[8],=KL4H(5)[8],=KL4J(5)[8],=KL5X(5)[8],=KL5YJ(5)[8], - =KL7A(5)[8],=KL7DA(5)[8],=KL7DA/4(5)[8],=KL7FO(5)[8],=KL7GLL(5)[8],=KL7H(5)[8],=KL7HIM(5)[8], - =KL7HNY(5)[8],=KL7HOT(5)[8],=KL7HQW(5)[8],=KL7HV(5)[8],=KL7HX(5)[8],=KL7I(5)[8],=KL7IEK(5)[8], - =KL7IKZ(5)[8],=KL7IV(5)[8],=KL7IVY(5)[8],=KL7IWF(5)[8],=KL7JDS(5)[8],=KL7JR(5)[8],=KL7LS(5)[8], - =KL7MJ(5)[8],=KL7NCO(5)[8],=KL7NL(5)[8],=KL7NL/4(5)[8],=KL7NT(5)[8],=KL7OO(5)[8],=KL7P/4(5)[8], - =KL7PS(5)[8],=KL7QH(5)[8],=KL7QU(5)[8],=KL7SR(5)[8],=KL7TZ(5)[8],=KL7USI/4(5)[8],=KL7XA(5)[8], - =KL9A/1(5)[8],=KP2AF(5)[8],=KP2AV(5)[8],=KP2AV/4(5)[8],=KP2CH(5)[8],=KP2CR(5)[8],=KP2L(5)[8], - =KP2L/4(5)[8],=KP2N(5)[8],=KP2R(5)[8],=KP2U(5)[8],=KP2US(5)[8],=KP2V(5)[8],=KP3AMG(5)[8], - =KP3BL(5)[8],=KP3BP(5)[8],=KP3J(5)[8],=KP3SK(5)[8],=KP3U(5)[8],=KP4AD(5)[8],=KP4AOD(5)[8], - =KP4AOD/4(5)[8],=KP4AYI(5)[8],=KP4BBN(5)[8],=KP4BEC(5)[8],=KP4BM(5)[8],=KP4BOB(5)[8], - =KP4CBP(5)[8],=KP4CEL(5)[8],=KP4CH(5)[8],=KP4CPP(5)[8],=KP4CSJ(5)[8],=KP4CSZ(5)[8],=KP4CW(5)[8], - =KP4CZ(5)[8],=KP4DAC(5)[8],=KP4DDS(5)[8],=KP4DPQ(5)[8],=KP4DQS(5)[8],=KP4EDL(5)[8],=KP4EIA(5)[8], - =KP4EMY(5)[8],=KP4ENK(5)[8],=KP4EOR(5)[8],=KP4EOR/4(5)[8],=KP4ERT(5)[8],=KP4ESC(5)[8], - =KP4FBS(5)[8],=KP4FGI(5)[8],=KP4FIR(5)[8],=KP4FJE(5)[8],=KP4FLP(5)[8],=KP4FOF(5)[8],=KP4HE(5)[8], - =KP4HN(5)[8],=KP4II(5)[8],=KP4IRI(5)[8],=KP4IT(5)[8],=KP4JC(5)[8],=KP4JCC(5)[8],=KP4JOS(5)[8], - =KP4JWR(5)[8],=KP4KA(5)[8],=KP4KD(5)[8],=KP4KD/4(5)[8],=KP4KE/4(5)[8],=KP4KF(5)[8],=KP4LEU(5)[8], - =KP4LF(5)[8],=KP4LQ(5)[8],=KP4LUV(5)[8],=KP4LX(5)[8],=KP4MA(5)[8],=KP4MHC(5)[8],=KP4MPR(5)[8], - =KP4MSP(5)[8],=KP4NI(5)[8],=KP4OO(5)[8],=KP4PC(5)[8],=KP4PEC(5)[8],=KP4PF(5)[8],=KP4PMD(5)[8], + =AH6JH(5)[8],=AH6JN/4(5)[8],=AH6JN/M(5)[8],=AH6KS(5)[8],=AH6KT(5)[8],=AH6KT/4(5)[8],=AH6LQ(5)[8], + =AH6LS(5)[8],=AH6OB(5)[8],=AH6TI(5)[8],=AH7DN(5)[8],=AH7I(5)[8],=AH7I/4(5)[8],=AH7MI(5)[8], + =AH8B(5)[8],=AH8M(5)[8],=AH8M/M(5)[8],=AH8R(5)[8],=AH8T(5)[8],=AL0I(5)[8],=AL1A(5)[8],=AL3G(5)[8], + =AL3M(5)[8],=AL4T(5)[8],=AL4T/4(5)[8],=AL4U(5)[8],=AL4X(5)[8],=AL5A(5)[8],=AL7AL(5)[8], + =AL7AM(5)[8],=AL7BA(5)[8],=AL7FR(5)[8],=AL7GF(5)[8],=AL7GK(5)[8],=AL7HG(5)[8],=AL7HW(5)[8], + =AL7HW/4(5)[8],=AL7IS(5)[8],=AL7KT(5)[8],=AL7LH(5)[8],=AL7NL(5)[8],=AL7NM(5)[8],=AL7NS(5)[8], + =AL7NS/140(5)[8],=AL7PL(5)[8],=AL7QI(5)[8],=AL7RE(5)[8],=AL7RL(5)[8],=G8ERJ(5)[8],=GO4AZM(5)[8], + =GQ4AZM(5)[8],=GR4AZM(5)[8],=KH0CW(5)[8],=KH0HR(5)[8],=KH0NI(5)[8],=KH0ZZ(5)[8],=KH2BX(5)[8], + =KH2D(5)[8],=KH2D/4(5)[8],=KH2GUM/P(5)[8],=KH2HB(5)[8],=KH2KD(5)[8],=KH2N(5)[8],=KH2NC(5)[8], + =KH2PM(5)[8],=KH2RL(5)[8],=KH2TI(5)[8],=KH2UG(5)[8],=KH2UV(5)[8],=KH2UZ(5)[8],=KH2VM(5)[8], + =KH3AC(5)[8],=KH3AG(5)[8],=KH6AE(5)[8],=KH6AME(5)[8],=KH6CG(5)[8],=KH6CG/4(5)[8],=KH6CT(5)[8], + =KH6ED(5)[8],=KH6HHS(5)[8],=KH6HHS/4(5)[8],=KH6HOW(5)[8],=KH6ILR(5)[8],=KH6ILR/4(5)[8], + =KH6ITI(5)[8],=KH6JAU(5)[8],=KH6JIM(5)[8],=KH6JJD(5)[8],=KH6JNW(5)[8],=KH6JUA(5)[8],=KH6KZ(5)[8], + =KH6M(5)[8],=KH6M/4(5)[8],=KH6M/M(5)[8],=KH6MT(5)[8],=KH6MT/4(5)[8],=KH6NC(5)[8],=KH6NI(5)[8], + =KH6OU(5)[8],=KH6POI(5)[8],=KH6PU(5)[8],=KH6RP(5)[8],=KH6TY(5)[8],=KH6TY/R(5)[8],=KH6UN(5)[8], + =KH6WE(5)[8],=KH6XH(5)[8],=KH7DA(5)[8],=KH7DM(5)[8],=KH7DY(5)[8],=KH7FC(5)[8],=KH7FU(5)[8], + =KH7GM(5)[8],=KH7GZ(5)[8],=KH7HJ/4(5)[8],=KH7OC(5)[8],=KH7OV(5)[8],=KH7WK(5)[8],=KH7WU(5)[8], + =KH7XS/4(5)[8],=KH7XT(5)[8],=KH7ZC(5)[8],=KH8DO(5)[8],=KH8U(5)[8],=KL0AG(5)[8],=KL0BG(5)[8], + =KL0IP(5)[8],=KL0KC(5)[8],=KL0KE/4(5)[8],=KL0L(5)[8],=KL0MG(5)[8],=KL0MP(5)[8],=KL0S(5)[8], + =KL0SS(5)[8],=KL0ST(5)[8],=KL0TY(5)[8],=KL0UA(5)[8],=KL0UD(5)[8],=KL0VU(5)[8],=KL0WF(5)[8], + =KL1KP(5)[8],=KL1NK(5)[8],=KL1NS(5)[8],=KL1OK(5)[8],=KL1PA(5)[8],=KL1SS(5)[8],=KL2AK(5)[8], + =KL2CX(5)[8],=KL2EY(5)[8],=KL2GG(5)[8],=KL2GP(5)[8],=KL2HV(5)[8],=KL2MQ(5)[8],=KL2NN(5)[8], + =KL2UM(5)[8],=KL2UQ(5)[8],=KL2XI(5)[8],=KL3BG(5)[8],=KL3EV(5)[8],=KL3HG(5)[8],=KL3IA(5)[8], + =KL3KB(5)[8],=KL3KG(5)[8],=KL3NR(5)[8],=KL3WM(5)[8],=KL3X(5)[8],=KL3XB(5)[8],=KL4CO(5)[8], + =KL4DD(5)[8],=KL4H(5)[8],=KL4J(5)[8],=KL5X(5)[8],=KL5YJ(5)[8],=KL7A(5)[8],=KL7AF(5)[8], + =KL7DA(5)[8],=KL7DA/4(5)[8],=KL7FO(5)[8],=KL7GLL(5)[8],=KL7H(5)[8],=KL7HIM(5)[8],=KL7HNY(5)[8], + =KL7HOT(5)[8],=KL7HQW(5)[8],=KL7HV(5)[8],=KL7HX(5)[8],=KL7I(5)[8],=KL7IEK(5)[8],=KL7IKZ(5)[8], + =KL7IV(5)[8],=KL7IVY(5)[8],=KL7IWF(5)[8],=KL7JDS(5)[8],=KL7JR(5)[8],=KL7LS(5)[8],=KL7MJ(5)[8], + =KL7NCO(5)[8],=KL7NL(5)[8],=KL7NL/4(5)[8],=KL7NT(5)[8],=KL7OO(5)[8],=KL7P/4(5)[8],=KL7PS(5)[8], + =KL7QH(5)[8],=KL7QU(5)[8],=KL7SR(5)[8],=KL7TZ(5)[8],=KL7USI/4(5)[8],=KL7XA(5)[8],=KL9A/1(5)[8], + =KP2AF(5)[8],=KP2AV(5)[8],=KP2AV/4(5)[8],=KP2CH(5)[8],=KP2CR(5)[8],=KP2L(5)[8],=KP2L/4(5)[8], + =KP2N(5)[8],=KP2R(5)[8],=KP2U(5)[8],=KP2US(5)[8],=KP2V(5)[8],=KP3AMG(5)[8],=KP3BL(5)[8], + =KP3BP(5)[8],=KP3SK(5)[8],=KP3U(5)[8],=KP4AD(5)[8],=KP4AOD(5)[8],=KP4AOD/4(5)[8],=KP4AYI(5)[8], + =KP4BBN(5)[8],=KP4BEC(5)[8],=KP4BM(5)[8],=KP4BOB(5)[8],=KP4CBP(5)[8],=KP4CEL(5)[8],=KP4CH(5)[8], + =KP4CPP(5)[8],=KP4CSJ(5)[8],=KP4CSZ(5)[8],=KP4CW(5)[8],=KP4CZ(5)[8],=KP4DAC(5)[8],=KP4DDS(5)[8], + =KP4DPQ(5)[8],=KP4DQS(5)[8],=KP4EDL(5)[8],=KP4EF(5)[8],=KP4EIA(5)[8],=KP4EMY(5)[8],=KP4ENK(5)[8], + =KP4EOR(5)[8],=KP4EOR/4(5)[8],=KP4ERT(5)[8],=KP4ESC(5)[8],=KP4FBS(5)[8],=KP4FGI(5)[8], + =KP4FIR(5)[8],=KP4FJE(5)[8],=KP4FLP(5)[8],=KP4FOF(5)[8],=KP4HE(5)[8],=KP4HN(5)[8],=KP4II(5)[8], + =KP4IRI(5)[8],=KP4IT(5)[8],=KP4JC(5)[8],=KP4JCC(5)[8],=KP4JOS(5)[8],=KP4JWR(5)[8],=KP4KA(5)[8], + =KP4KD(5)[8],=KP4KD/4(5)[8],=KP4KE/4(5)[8],=KP4KF(5)[8],=KP4LEU(5)[8],=KP4LF(5)[8],=KP4LMD(5)[8], + =KP4LQ(5)[8],=KP4LUV(5)[8],=KP4LX(5)[8],=KP4MA(5)[8],=KP4MHC(5)[8],=KP4MPR(5)[8],=KP4MSP(5)[8], + =KP4NI(5)[8],=KP4OO(5)[8],=KP4PC(5)[8],=KP4PEC(5)[8],=KP4PF(5)[8],=KP4PM(5)[8],=KP4PMD(5)[8], =KP4Q(5)[8],=KP4QT(5)[8],=KP4QT/4(5)[8],=KP4REY(5)[8],=KP4RGD(5)[8],=KP4RGT(5)[8],=KP4ROP(5)[8], - =KP4RRC(5)[8],=KP4RT(5)[8],=KP4RZ(5)[8],=KP4SU(5)[8],=KP4TL(5)[8],=KP4TR(5)[8],=KP4UFO(5)[8], - =KP4USA(5)[8],=KP4WK(5)[8],=KP4WW(5)[8],=KP4WY(5)[8],=KP4XP(5)[8],=KP4Y(5)[8],=KP4YLV(5)[8], - =KP4ZV(5)[8],=KP4ZX(5)[8],=NH2A(5)[8],=NH2BQ(5)[8],=NH2DB(5)[8],=NH2F(5)[8],=NH2GY(5)[8], - =NH6AU(5)[8],=NH6AX(5)[8],=NH6BD/4(5)[8],=NH6E(5)[8],=NH6GE(5)[8],=NH6GR(5)[8],=NH6HX(5)[8], - =NH6HX/4(5)[8],=NH6JX(5)[8],=NH6KI(5)[8],=NH6QR(5)[8],=NH6SR(5)[8],=NH6T(5)[8],=NH6TL(5)[8], - =NH7AA(5)[8],=NH7AQ(5)[8],=NH7AR(5)[8],=NH7FG(5)[8],=NH7OI(5)[8],=NH7T/4(5)[8],=NH7UN(5)[8], - =NH7XN(5)[8],=NH7YL(5)[8],=NL5L(5)[8],=NL7AJ(5)[8],=NL7AU(5)[8],=NL7AU/4(5)[8],=NL7BV(5)[8], - =NL7KL(5)[8],=NL7KX(5)[8],=NL7LO(5)[8],=NL7LR(5)[8],=NL7LY(5)[8],=NL7MD(5)[8],=NL7MR(5)[8], - =NL7OB(5)[8],=NL7OS(5)[8],=NL7P(5)[8],=NL7PV(5)[8],=NL7U(5)[8],=NL7VV(5)[8],=NL7VX(5)[8], - =NL7VX/4(5)[8],=NL7VX/M(5)[8],=NL7YZ(5)[8],=NP2B(5)[8],=NP2B/4(5)[8],=NP2BB(5)[8],=NP2BW(5)[8], - =NP2C(5)[8],=NP2C/4(5)[8],=NP2CB(5)[8],=NP2D(5)[8],=NP2DJ(5)[8],=NP2EI(5)[8],=NP2FJ(5)[8], - =NP2FT(5)[8],=NP2GN(5)[8],=NP2GW(5)[8],=NP2HQ(5)[8],=NP2HS(5)[8],=NP2HW(5)[8],=NP2IE(5)[8], - =NP2IF(5)[8],=NP2IJ(5)[8],=NP2IS(5)[8],=NP2IW(5)[8],=NP2IX(5)[8],=NP2JA(5)[8],=NP2JS(5)[8], - =NP2JV(5)[8],=NP2L(5)[8],=NP2LC(5)[8],=NP2MM(5)[8],=NP2MN(5)[8],=NP2MP(5)[8],=NP2MR(5)[8], - =NP2MR/4(5)[8],=NP2O(5)[8],=NP2OL(5)[8],=NP2OO(5)[8],=NP2OR(5)[8],=NP2PA(5)[8],=NP2R(5)[8], - =NP2T(5)[8],=NP2W(5)[8],=NP3AX(5)[8],=NP3BL(5)[8],=NP3CC(5)[8],=NP3CI(5)[8],=NP3CM(5)[8], - =NP3CT(5)[8],=NP3FR(5)[8],=NP3G(5)[8],=NP3HD(5)[8],=NP3HG(5)[8],=NP3HN(5)[8],=NP3HP(5)[8], - =NP3HU(5)[8],=NP3IL(5)[8],=NP3IU(5)[8],=NP3K(5)[8],=NP3KM(5)[8],=NP3MM(5)[8],=NP3MX(5)[8], - =NP3NC(5)[8],=NP3OW(5)[8],=NP3QT(5)[8],=NP3R(5)[8],=NP3ST(5)[8],=NP3TM(5)[8],=NP3UM(5)[8], - =NP3VJ(5)[8],=NP4AS(5)[8],=NP4AV(5)[8],=NP4CC(5)[8],=NP4CK(5)[8],=NP4CV(5)[8],=NP4DM(5)[8], - =NP4EM(5)[8],=NP4GH(5)[8],=NP4GW(5)[8],=NP4J(5)[8],=NP4JL(5)[8],=NP4JU(5)[8],=NP4KV(5)[8], - =NP4M(5)[8],=NP4ND(5)[8],=NP4PF(5)[8],=NP4RJ(5)[8],=NP4SY(5)[8],=NP4TR(5)[8],=NP4WT(5)[8], - =NP4XB(5)[8],=WH2AAT(5)[8],=WH2ABJ(5)[8],=WH2G(5)[8],=WH6A(5)[8],=WH6ACF(5)[8],=WH6AJS(5)[8], - =WH6AQ(5)[8],=WH6AVU(5)[8],=WH6AX(5)[8],=WH6BRQ(5)[8],=WH6CEF(5)[8],=WH6CMT(5)[8],=WH6CNC(5)[8], - =WH6CTC(5)[8],=WH6CXA(5)[8],=WH6CXT(5)[8],=WH6DBX(5)[8],=WH6DMJ(5)[8],=WH6DNF(5)[8],=WH6DOL(5)[8], - =WH6DUJ(5)[8],=WH6DXT(5)[8],=WH6DZ(5)[8],=WH6ECQ(5)[8],=WH6EFI(5)[8],=WH6EIK(5)[8],=WH6EIR(5)[8], - =WH6EKW(5)[8],=WH6ELG(5)[8],=WH6ELM(5)[8],=WH6ETE(5)[8],=WH6ETF(5)[8],=WH6FCP(5)[8],=WH6FGK(5)[8], - =WH6HA(5)[8],=WH6IF(5)[8],=WH6IZ(5)[8],=WH6J(5)[8],=WH6L(5)[8],=WH6LE(5)[8],=WH6LE/4(5)[8], - =WH6LE/M(5)[8],=WH6LE/P(5)[8],=WH6NE(5)[8],=WH6WX(5)[8],=WH6YH(5)[8],=WH6YH/4(5)[8],=WH6YM(5)[8], - =WH6ZF(5)[8],=WH7GD(5)[8],=WH7HX(5)[8],=WH7NI(5)[8],=WH7XK(5)[8],=WH7XU(5)[8],=WH7YL(5)[8], - =WH7YV(5)[8],=WH7ZM(5)[8],=WH9AAF(5)[8],=WL4X(5)[8],=WL7AUL(5)[8],=WL7AX(5)[8],=WL7BAL(5)[8], - =WL7CHA(5)[8],=WL7CIB(5)[8],=WL7CKJ(5)[8],=WL7COL(5)[8],=WL7CPA(5)[8],=WL7CQT(5)[8],=WL7CUY(5)[8], - =WL7E/4(5)[8],=WL7GV(5)[8],=WL7SR(5)[8],=WL7UN(5)[8],=WL7YX(5)[8],=WP2AGD(5)[8],=WP2AGO(5)[8], - =WP2AHC(5)[8],=WP2AIG(5)[8],=WP2BB(5)[8],=WP2C(5)[8],=WP2L(5)[8],=WP2MA(5)[8],=WP2P(5)[8], - =WP3AY(5)[8],=WP3BC(5)[8],=WP3DW(5)[8],=WP3HL(5)[8],=WP3JE(5)[8],=WP3JQ(5)[8],=WP3JU(5)[8], - =WP3K(5)[8],=WP3LE(5)[8],=WP3MB(5)[8],=WP3ME(5)[8],=WP3NIS(5)[8],=WP3O(5)[8],=WP3QE(5)[8], - =WP3ZA(5)[8],=WP4AIE(5)[8],=WP4AIL(5)[8],=WP4AIZ(5)[8],=WP4ALH(5)[8],=WP4AQK(5)[8],=WP4AVW(5)[8], - =WP4B(5)[8],=WP4BFP(5)[8],=WP4BGM(5)[8],=WP4BIN(5)[8],=WP4BJS(5)[8],=WP4BK(5)[8],=WP4BOC(5)[8], - =WP4BQV(5)[8],=WP4BXS(5)[8],=WP4CKW(5)[8],=WP4CLS(5)[8],=WP4CMH(5)[8],=WP4DC(5)[8],=WP4DCB(5)[8], - =WP4DFK(5)[8],=WP4DNE(5)[8],=WP4DPX(5)[8],=WP4ENX(5)[8],=WP4EXH(5)[8],=WP4FEI(5)[8],=WP4FRK(5)[8], - =WP4FS(5)[8],=WP4GAK(5)[8],=WP4GFH(5)[8],=WP4GX(5)[8],=WP4GYA(5)[8],=WP4HFZ(5)[8],=WP4HNN(5)[8], - =WP4HOX(5)[8],=WP4IF(5)[8],=WP4IJ(5)[8],=WP4IK(5)[8],=WP4ILP(5)[8],=WP4JC(5)[8],=WP4JKO(5)[8], - =WP4JQJ(5)[8],=WP4JSR(5)[8],=WP4JT(5)[8],=WP4KCJ(5)[8],=WP4KDH(5)[8],=WP4KFP(5)[8],=WP4KGI(5)[8], - =WP4KI(5)[8],=WP4KJV(5)[8],=WP4KPK(5)[8],=WP4KSK(5)[8],=WP4KTD(5)[8],=WP4LBK(5)[8],=WP4LDG(5)[8], - =WP4LDL(5)[8],=WP4LDP(5)[8],=WP4LE(5)[8],=WP4LEO(5)[8],=WP4LHA(5)[8],=WP4LTA(5)[8],=WP4MAE(5)[8], - =WP4MD(5)[8],=WP4MO(5)[8],=WP4MQF(5)[8],=WP4MWE(5)[8],=WP4MWS(5)[8],=WP4MXE(5)[8],=WP4MYG(5)[8], - =WP4MYK(5)[8],=WP4NAI(5)[8],=WP4NAQ(5)[8],=WP4NBF(5)[8],=WP4NBG(5)[8],=WP4NFU(5)[8],=WP4NKU(5)[8], - =WP4NLQ(5)[8],=WP4NVL(5)[8],=WP4NWV(5)[8],=WP4NWW(5)[8],=WP4O/4(5)[8],=WP4O/M(5)[8],=WP4OAT(5)[8], - =WP4OBD(5)[8],=WP4OBH(5)[8],=WP4ODR(5)[8],=WP4ODT(5)[8],=WP4OEO(5)[8],=WP4OFA(5)[8],=WP4OHJ(5)[8], - =WP4OLM(5)[8],=WP4OMG(5)[8],=WP4OMV(5)[8],=WP4ONR(5)[8],=WP4OOI(5)[8],=WP4OPD(5)[8],=WP4OPF(5)[8], - =WP4OPG(5)[8],=WP4OTP(5)[8],=WP4OXA(5)[8],=WP4P(5)[8],=WP4PR(5)[8],=WP4PUV(5)[8],=WP4PWV(5)[8], - =WP4PXG(5)[8],=WP4QER(5)[8],=WP4QGV(5)[8],=WP4QHU(5)[8],=WP4TD(5)[8],=WP4TX(5)[8],=WP4UC(5)[8], - =WP4UM(5)[8],=WP4VL(5)[8],=WP4VM(5)[8],=WP4YG(5)[8], + =KP4RRC(5)[8],=KP4RT(5)[8],=KP4RZ(5)[8],=KP4SU(5)[8],=KP4SWR(5)[8],=KP4TL(5)[8],=KP4TR(5)[8], + =KP4UFO(5)[8],=KP4USA(5)[8],=KP4WK(5)[8],=KP4WW(5)[8],=KP4WY(5)[8],=KP4XP(5)[8],=KP4Y(5)[8], + =KP4YLV(5)[8],=KP4ZV(5)[8],=KP4ZX(5)[8],=NH2A(5)[8],=NH2BQ(5)[8],=NH2DB(5)[8],=NH2F(5)[8], + =NH2GY(5)[8],=NH6AU(5)[8],=NH6AX(5)[8],=NH6BD/4(5)[8],=NH6E(5)[8],=NH6GE(5)[8],=NH6GR(5)[8], + =NH6HX(5)[8],=NH6HX/4(5)[8],=NH6JX(5)[8],=NH6KI(5)[8],=NH6QR(5)[8],=NH6SR(5)[8],=NH6T(5)[8], + =NH6TL(5)[8],=NH7AA(5)[8],=NH7AQ(5)[8],=NH7AR(5)[8],=NH7FG(5)[8],=NH7FV(5)[8],=NH7OI(5)[8], + =NH7T/4(5)[8],=NH7UN(5)[8],=NH7XN(5)[8],=NH7YL(5)[8],=NL7AJ(5)[8],=NL7AU(5)[8],=NL7AU/4(5)[8], + =NL7BV(5)[8],=NL7KL(5)[8],=NL7KX(5)[8],=NL7LO(5)[8],=NL7LR(5)[8],=NL7LY(5)[8],=NL7MD(5)[8], + =NL7MR(5)[8],=NL7OB(5)[8],=NL7OS(5)[8],=NL7P(5)[8],=NL7PV(5)[8],=NL7U(5)[8],=NL7VV(5)[8], + =NL7VX(5)[8],=NL7VX/4(5)[8],=NL7VX/M(5)[8],=NL7YZ(5)[8],=NP2B(5)[8],=NP2B/4(5)[8],=NP2BB(5)[8], + =NP2BW(5)[8],=NP2C(5)[8],=NP2C/4(5)[8],=NP2CB(5)[8],=NP2D(5)[8],=NP2DB(5)[8],=NP2DJ(5)[8], + =NP2EI(5)[8],=NP2FJ(5)[8],=NP2FT(5)[8],=NP2GN(5)[8],=NP2GW(5)[8],=NP2HQ(5)[8],=NP2HS(5)[8], + =NP2HW(5)[8],=NP2IE(5)[8],=NP2IF(5)[8],=NP2IJ(5)[8],=NP2IS(5)[8],=NP2IW(5)[8],=NP2IX(5)[8], + =NP2JA(5)[8],=NP2JS(5)[8],=NP2JV(5)[8],=NP2L(5)[8],=NP2LC(5)[8],=NP2MM(5)[8],=NP2MN(5)[8], + =NP2MP(5)[8],=NP2MR(5)[8],=NP2MR/4(5)[8],=NP2O(5)[8],=NP2OL(5)[8],=NP2OO(5)[8],=NP2OR(5)[8], + =NP2PA(5)[8],=NP2R(5)[8],=NP2T(5)[8],=NP2W(5)[8],=NP3AX(5)[8],=NP3BL(5)[8],=NP3CC(5)[8], + =NP3CI(5)[8],=NP3CM(5)[8],=NP3CT(5)[8],=NP3FR(5)[8],=NP3G(5)[8],=NP3HD(5)[8],=NP3HG(5)[8], + =NP3HN(5)[8],=NP3HP(5)[8],=NP3HU(5)[8],=NP3IL(5)[8],=NP3IU(5)[8],=NP3K(5)[8],=NP3KM(5)[8], + =NP3MM(5)[8],=NP3MX(5)[8],=NP3NC(5)[8],=NP3OW(5)[8],=NP3QT(5)[8],=NP3R(5)[8],=NP3ST(5)[8], + =NP3TM(5)[8],=NP3UM(5)[8],=NP3VJ(5)[8],=NP4AS(5)[8],=NP4AV(5)[8],=NP4CC(5)[8],=NP4CK(5)[8], + =NP4CV(5)[8],=NP4DM(5)[8],=NP4EM(5)[8],=NP4GH(5)[8],=NP4GW(5)[8],=NP4J(5)[8],=NP4JL(5)[8], + =NP4JU(5)[8],=NP4KV(5)[8],=NP4M(5)[8],=NP4ND(5)[8],=NP4PF(5)[8],=NP4RJ(5)[8],=NP4SY(5)[8], + =NP4TR(5)[8],=NP4WT(5)[8],=NP4XB(5)[8],=WH2AAT(5)[8],=WH2ABJ(5)[8],=WH2G(5)[8],=WH6A(5)[8], + =WH6ACF(5)[8],=WH6AJS(5)[8],=WH6AQ(5)[8],=WH6AVU(5)[8],=WH6AX(5)[8],=WH6BRQ(5)[8],=WH6CEF(5)[8], + =WH6CMT(5)[8],=WH6CNC(5)[8],=WH6CTC(5)[8],=WH6CXA(5)[8],=WH6CXT(5)[8],=WH6DBX(5)[8],=WH6DMJ(5)[8], + =WH6DNF(5)[8],=WH6DOL(5)[8],=WH6DUJ(5)[8],=WH6DXT(5)[8],=WH6DZ(5)[8],=WH6ECQ(5)[8],=WH6EFI(5)[8], + =WH6EIK(5)[8],=WH6EIR(5)[8],=WH6EKW(5)[8],=WH6ELG(5)[8],=WH6ELM(5)[8],=WH6ETE(5)[8],=WH6ETF(5)[8], + =WH6FCP(5)[8],=WH6FGK(5)[8],=WH6HA(5)[8],=WH6IF(5)[8],=WH6IZ(5)[8],=WH6J(5)[8],=WH6L(5)[8], + =WH6LE(5)[8],=WH6LE/4(5)[8],=WH6LE/M(5)[8],=WH6LE/P(5)[8],=WH6NE(5)[8],=WH6WX(5)[8],=WH6YH(5)[8], + =WH6YH/4(5)[8],=WH6YM(5)[8],=WH6ZF(5)[8],=WH7GD(5)[8],=WH7HX(5)[8],=WH7NI(5)[8],=WH7XK(5)[8], + =WH7XU(5)[8],=WH7YL(5)[8],=WH7YV(5)[8],=WH7ZM(5)[8],=WH9AAF(5)[8],=WL4X(5)[8],=WL7AUL(5)[8], + =WL7AX(5)[8],=WL7BAL(5)[8],=WL7CHA(5)[8],=WL7CIB(5)[8],=WL7CKJ(5)[8],=WL7COL(5)[8],=WL7CPA(5)[8], + =WL7CQT(5)[8],=WL7CUY(5)[8],=WL7E/4(5)[8],=WL7GV(5)[8],=WL7SR(5)[8],=WL7UN(5)[8],=WL7YX(5)[8], + =WP2AGD(5)[8],=WP2AGO(5)[8],=WP2AHC(5)[8],=WP2AIG(5)[8],=WP2BB(5)[8],=WP2C(5)[8],=WP2L(5)[8], + =WP2MA(5)[8],=WP2P(5)[8],=WP3AY(5)[8],=WP3BC(5)[8],=WP3DW(5)[8],=WP3HL(5)[8],=WP3JE(5)[8], + =WP3JQ(5)[8],=WP3JU(5)[8],=WP3K(5)[8],=WP3LE(5)[8],=WP3MB(5)[8],=WP3ME(5)[8],=WP3NIS(5)[8], + =WP3O(5)[8],=WP3QE(5)[8],=WP3ZA(5)[8],=WP4AIE(5)[8],=WP4AIL(5)[8],=WP4AIZ(5)[8],=WP4ALH(5)[8], + =WP4AQK(5)[8],=WP4AVW(5)[8],=WP4B(5)[8],=WP4BFP(5)[8],=WP4BGM(5)[8],=WP4BIN(5)[8],=WP4BJS(5)[8], + =WP4BK(5)[8],=WP4BOC(5)[8],=WP4BQV(5)[8],=WP4BXS(5)[8],=WP4CKW(5)[8],=WP4CLS(5)[8],=WP4CMH(5)[8], + =WP4DC(5)[8],=WP4DCB(5)[8],=WP4DFK(5)[8],=WP4DMV(5)[8],=WP4DNE(5)[8],=WP4DPX(5)[8],=WP4ENX(5)[8], + =WP4EXH(5)[8],=WP4FEI(5)[8],=WP4FRK(5)[8],=WP4FS(5)[8],=WP4GAK(5)[8],=WP4GFH(5)[8],=WP4GX(5)[8], + =WP4GYA(5)[8],=WP4HFZ(5)[8],=WP4HNN(5)[8],=WP4HOX(5)[8],=WP4IF(5)[8],=WP4IJ(5)[8],=WP4IK(5)[8], + =WP4ILP(5)[8],=WP4INP(5)[8],=WP4JC(5)[8],=WP4JKO(5)[8],=WP4JQJ(5)[8],=WP4JSR(5)[8],=WP4JT(5)[8], + =WP4KCJ(5)[8],=WP4KDH(5)[8],=WP4KFP(5)[8],=WP4KGI(5)[8],=WP4KI(5)[8],=WP4KJV(5)[8],=WP4KPK(5)[8], + =WP4KSK(5)[8],=WP4KTD(5)[8],=WP4LBK(5)[8],=WP4LDG(5)[8],=WP4LDL(5)[8],=WP4LDP(5)[8],=WP4LE(5)[8], + =WP4LEO(5)[8],=WP4LHA(5)[8],=WP4LTA(5)[8],=WP4MAE(5)[8],=WP4MD(5)[8],=WP4MQF(5)[8],=WP4MWE(5)[8], + =WP4MWS(5)[8],=WP4MXE(5)[8],=WP4MYG(5)[8],=WP4MYK(5)[8],=WP4NAI(5)[8],=WP4NAQ(5)[8],=WP4NBF(5)[8], + =WP4NBG(5)[8],=WP4NFU(5)[8],=WP4NKU(5)[8],=WP4NLQ(5)[8],=WP4NVL(5)[8],=WP4NWV(5)[8],=WP4NWW(5)[8], + =WP4O/4(5)[8],=WP4O/M(5)[8],=WP4OAT(5)[8],=WP4OBD(5)[8],=WP4OBH(5)[8],=WP4ODR(5)[8],=WP4ODT(5)[8], + =WP4OEO(5)[8],=WP4OFA(5)[8],=WP4OFL(5)[8],=WP4OHJ(5)[8],=WP4OLM(5)[8],=WP4OMG(5)[8],=WP4OMV(5)[8], + =WP4ONR(5)[8],=WP4OOI(5)[8],=WP4OPD(5)[8],=WP4OPF(5)[8],=WP4OTP(5)[8],=WP4OXA(5)[8],=WP4P(5)[8], + =WP4PR(5)[8],=WP4PUV(5)[8],=WP4PWV(5)[8],=WP4PXG(5)[8],=WP4QER(5)[8],=WP4QGV(5)[8],=WP4QHU(5)[8], + =WP4TD(5)[8],=WP4TX(5)[8],=WP4UC(5)[8],=WP4UM(5)[8],=WP4VL(5)[8],=WP4VM(5)[8],=WP4YG(5)[8], AA5(4)[7],AB5(4)[7],AC5(4)[7],AD5(4)[7],AE5(4)[7],AF5(4)[7],AG5(4)[7],AI5(4)[7],AJ5(4)[7], AK5(4)[7],K5(4)[7],KA5(4)[7],KB5(4)[7],KC5(4)[7],KD5(4)[7],KE5(4)[7],KF5(4)[7],KG5(4)[7], KI5(4)[7],KJ5(4)[7],KK5(4)[7],KM5(4)[7],KN5(4)[7],KO5(4)[7],KQ5(4)[7],KR5(4)[7],KS5(4)[7], @@ -1368,44 +1375,45 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =AL7V(4)[7],=KH0BZ(4)[7],=KH0CE(4)[7],=KH0CU(4)[7],=KH0DW(4)[7],=KH2AI(4)[7],=KH2BH(4)[7], =KH2DF(4)[7],=KH2DF/5(4)[7],=KH2TB(4)[7],=KH2XD(4)[7],=KH2XO(4)[7],=KH2YO(4)[7],=KH6ABA(4)[7], =KH6CA(4)[7],=KH6DAN(4)[7],=KH6GGC(4)[7],=KH6HPQ(4)[7],=KH6IDF(4)[7],=KH6II(4)[7],=KH6IO(4)[7], - =KH6ITY/M(4)[7],=KH6JCV(4)[7],=KH6JIQ(4)[7],=KH6JTE(4)[7],=KH6JTM(4)[7],=KH6JVL(4)[7], - =KH6KG/5(4)[7],=KH6LL(4)[7],=KH6LX(4)[7],=KH6MB/5(4)[7],=KH6SP/5(4)[7],=KH6SZ(4)[7],=KH6TG(4)[7], - =KH6UW(4)[7],=KH7CF(4)[7],=KH7FB(4)[7],=KH7IC(4)[7],=KH7JE(4)[7],=KH7QL(4)[7],=KH7QO(4)[7], - =KH8CG(4)[7],=KH9AE(4)[7],=KL0EX(4)[7],=KL0HU(4)[7],=KL0PG(4)[7],=KL0XI(4)[7],=KL1DA(4)[7], - =KL1DJ(4)[7],=KL1DY(4)[7],=KL1MM(4)[7],=KL1RX(4)[7],=KL1TS(4)[7],=KL1UR(4)[7],=KL1WG(4)[7], - =KL1WO(4)[7],=KL1XK(4)[7],=KL1Y(4)[7],=KL1ZW(4)[7],=KL2AX(4)[7],=KL2AX/5(4)[7],=KL2CD(4)[7], - =KL2HC(4)[7],=KL2HN(4)[7],=KL2MI(4)[7],=KL2RA(4)[7],=KL2RB(4)[7],=KL2TV(4)[7],=KL2UO(4)[7], - =KL2UP(4)[7],=KL2VA(4)[7],=KL2ZJ(4)[7],=KL2ZK(4)[7],=KL3DB(4)[7],=KL3DP(4)[7],=KL3HK(4)[7], - =KL3HZ(4)[7],=KL3JL(4)[7],=KL3KH(4)[7],=KL3KI(4)[7],=KL3TB(4)[7],=KL4JQ(4)[7],=KL5L(4)[7], - =KL5Z(4)[7],=KL7AH(4)[7],=KL7AU(4)[7],=KL7AX(4)[7],=KL7BCD(4)[7],=KL7BL(4)[7],=KL7BX(4)[7], - =KL7BZ/5(4)[7],=KL7BZL(4)[7],=KL7CD(4)[7],=KL7DB(4)[7],=KL7EBE(4)[7],=KL7EMH(4)[7], - =KL7EMH/M(4)[7],=KL7EQQ(4)[7],=KL7F(4)[7],=KL7FB(4)[7],=KL7FHX(4)[7],=KL7FLY(4)[7],=KL7FQQ(4)[7], - =KL7FQR(4)[7],=KL7GNW(4)[7],=KL7HH(4)[7],=KL7HJZ(4)[7],=KL7IDM(4)[7],=KL7IK(4)[7],=KL7ITF(4)[7], - =KL7IWU(4)[7],=KL7IZW(4)[7],=KL7JAR(4)[7],=KL7JEX(4)[7],=KL7JIU(4)[7],=KL7JR/5(4)[7],=KL7JW(4)[7], - =KL7LJ(4)[7],=KL7LY(4)[7],=KL7MA(4)[7],=KL7ME(4)[7],=KL7ML(4)[7],=KL7NE(4)[7],=KL7NI(4)[7], - =KL7OI(4)[7],=KL7PZ(4)[7],=KL7QC(4)[7],=KL7SG(4)[7],=KL7TN/5(4)[7],=KL7UHF(4)[7],=KL7USI/5(4)[7], - =KL7XP(4)[7],=KL7XS(4)[7],=KL7YY/5(4)[7],=KP2AZ(4)[7],=KP4CV(4)[7],=KP4DJT(4)[7],=KP4FF(4)[7], - =KP4FFW(4)[7],=KP4GMC(4)[7],=KP4JE(4)[7],=KP4JG(4)[7],=KP4JY(4)[7],=KP4YP(4)[7],=KP4YY(4)[7], - =NH0V/5(4)[7],=NH2LP(4)[7],=NH6AZ(4)[7],=NH6CJ(4)[7],=NH6EF(4)[7],=NH6FA(4)[7],=NH6L(4)[7], - =NH6MG(4)[7],=NH6TD(4)[7],=NH6VB(4)[7],=NH6VJ(4)[7],=NH6WL(4)[7],=NH6WL/5(4)[7],=NH7FO(4)[7], - =NH7MV(4)[7],=NH7PZ(4)[7],=NH7R(4)[7],=NH7RO(4)[7],=NH7RO/5(4)[7],=NH7TR(4)[7],=NH7VA(4)[7], - =NH7WB(4)[7],=NL5J(4)[7],=NL7AX(4)[7],=NL7C(4)[7],=NL7CO(4)[7],=NL7CO/5(4)[7],=NL7DC(4)[7], - =NL7HB(4)[7],=NL7IE(4)[7],=NL7JH(4)[7],=NL7JI(4)[7],=NL7JV(4)[7],=NL7K/5(4)[7],=NL7KB(4)[7], - =NL7LE(4)[7],=NL7NP(4)[7],=NL7OM(4)[7],=NL7PD(4)[7],=NL7RQ(4)[7],=NL7RQ/5(4)[7],=NL7SI(4)[7], - =NL7TO(4)[7],=NL7ZL(4)[7],=NP2EE(4)[7],=NP2PR(4)[7],=NP2RA(4)[7],=NP3BA(4)[7],=NP3CV(4)[7], - =NP3NT(4)[7],=NP3PG(4)[7],=NP3RG(4)[7],=NP3SU(4)[7],=NP3TY(4)[7],=NP4EA(4)[7],=NP4NQ(4)[7], - =NP4NQ/5(4)[7],=NP4RW(4)[7],=NP4RZ(4)[7],=WH2ACT(4)[7],=WH2ACT/5(4)[7],=WH6ARN(4)[7], - =WH6BYJ(4)[7],=WH6BYP(4)[7],=WH6CCQ(4)[7],=WH6CDU(4)[7],=WH6CUL(4)[7],=WH6DMP(4)[7],=WH6DZU(4)[7], - =WH6ECJ(4)[7],=WH6EMW(4)[7],=WH6EOF(4)[7],=WH6ERS(4)[7],=WH6EUA(4)[7],=WH6EXQ(4)[7],=WH6FAD(4)[7], - =WH6FGM(4)[7],=WH6FZ/5(4)[7],=WH6FZL(4)[7],=WH6FZN(4)[7],=WH6GBC(4)[7],=WH6GEA(4)[7],=WH6KK(4)[7], - =WH6L/5(4)[7],=WH7DC(4)[7],=WH7DW(4)[7],=WH7OK(4)[7],=WH7R(4)[7],=WH7YM(4)[7],=WH7YN(4)[7], - =WL3WX(4)[7],=WL5H(4)[7],=WL7AIU(4)[7],=WL7AWC(4)[7],=WL7BBV(4)[7],=WL7BKF(4)[7],=WL7BPY(4)[7], - =WL7CA(4)[7],=WL7CJA(4)[7],=WL7CJC(4)[7],=WL7CQE(4)[7],=WL7CTP(4)[7],=WL7CTQ(4)[7],=WL7D(4)[7], - =WL7FC(4)[7],=WL7FE(4)[7],=WL7FT(4)[7],=WL7FT/5(4)[7],=WL7K/5(4)[7],=WL7ME(4)[7],=WL7MQ/5(4)[7], - =WL7OP(4)[7],=WL7OU(4)[7],=WL7SG(4)[7],=WL7W(4)[7],=WL7WN(4)[7],=WL7XI(4)[7],=WL7XR(4)[7], - =WP2AHG(4)[7],=WP2N(4)[7],=WP2U(4)[7],=WP2WP(4)[7],=WP3AL(4)[7],=WP3HG(4)[7],=WP3JM(4)[7], - =WP4A(4)[7],=WP4ADA(4)[7],=WP4APJ(4)[7],=WP4BAB(4)[7],=WP4BAT(4)[7],=WP4CJY(4)[7],=WP4EVA(4)[7], - =WP4EVL(4)[7],=WP4IXT(4)[7],=WP4KSP(4)[7],=WP4KTF(4)[7],=WP4KUW(4)[7],=WP4LKA(4)[7],=WP4MJP(4)[7], + =KH6ITY/M(4)[7],=KH6JCV(4)[7],=KH6JIQ(4)[7],=KH6JTE(4)[7],=KH6JTM(4)[7],=KH6JUM(4)[7], + =KH6JVL(4)[7],=KH6KG/5(4)[7],=KH6LL(4)[7],=KH6LX(4)[7],=KH6MB/5(4)[7],=KH6SP/5(4)[7],=KH6SZ(4)[7], + =KH6TG(4)[7],=KH6UW(4)[7],=KH7CF(4)[7],=KH7FB(4)[7],=KH7IC(4)[7],=KH7JE(4)[7],=KH7QL(4)[7], + =KH7QO(4)[7],=KH8CG(4)[7],=KH9AE(4)[7],=KL0EX(4)[7],=KL0HU(4)[7],=KL0PG(4)[7],=KL0WH(4)[7], + =KL0XI(4)[7],=KL1DA(4)[7],=KL1DJ(4)[7],=KL1DY(4)[7],=KL1MM(4)[7],=KL1RX(4)[7],=KL1TS(4)[7], + =KL1UR(4)[7],=KL1WG(4)[7],=KL1WO(4)[7],=KL1XK(4)[7],=KL1Y(4)[7],=KL1ZW(4)[7],=KL2AX(4)[7], + =KL2AX/5(4)[7],=KL2CD(4)[7],=KL2HC(4)[7],=KL2HN(4)[7],=KL2MI(4)[7],=KL2OY(4)[7],=KL2RA(4)[7], + =KL2RB(4)[7],=KL2TV(4)[7],=KL2UO(4)[7],=KL2UP(4)[7],=KL2VA(4)[7],=KL2ZJ(4)[7],=KL2ZK(4)[7], + =KL3DB(4)[7],=KL3DP(4)[7],=KL3HK(4)[7],=KL3HX(4)[7],=KL3HZ(4)[7],=KL3JL(4)[7],=KL3KH(4)[7], + =KL3KI(4)[7],=KL3TB(4)[7],=KL4JQ(4)[7],=KL5L(4)[7],=KL5Z(4)[7],=KL7AH(4)[7],=KL7AU(4)[7], + =KL7AX(4)[7],=KL7BCD(4)[7],=KL7BL(4)[7],=KL7BX(4)[7],=KL7BZ/5(4)[7],=KL7BZL(4)[7],=KL7CD(4)[7], + =KL7DB(4)[7],=KL7EBE(4)[7],=KL7EMH(4)[7],=KL7EMH/M(4)[7],=KL7EQQ(4)[7],=KL7F(4)[7],=KL7FB(4)[7], + =KL7FHX(4)[7],=KL7FLY(4)[7],=KL7FQR(4)[7],=KL7GNW(4)[7],=KL7HH(4)[7],=KL7HJZ(4)[7],=KL7IDM(4)[7], + =KL7IK(4)[7],=KL7ITF(4)[7],=KL7IWU(4)[7],=KL7IZW(4)[7],=KL7JAR(4)[7],=KL7JEX(4)[7],=KL7JIU(4)[7], + =KL7JR/5(4)[7],=KL7JW(4)[7],=KL7LJ(4)[7],=KL7LY(4)[7],=KL7MA(4)[7],=KL7ME(4)[7],=KL7ML(4)[7], + =KL7NE(4)[7],=KL7NI(4)[7],=KL7OI(4)[7],=KL7PZ(4)[7],=KL7QC(4)[7],=KL7SG(4)[7],=KL7TN/5(4)[7], + =KL7UHF(4)[7],=KL7USI/5(4)[7],=KL7XP(4)[7],=KL7XS(4)[7],=KL7YY/5(4)[7],=KP2AZ(4)[7],=KP4CV(4)[7], + =KP4DJT(4)[7],=KP4FF(4)[7],=KP4FFW(4)[7],=KP4GMC(4)[7],=KP4JE(4)[7],=KP4JG(4)[7],=KP4YP(4)[7], + =KP4YY(4)[7],=NH0V/5(4)[7],=NH2BV(4)[7],=NH2LP(4)[7],=NH6AZ(4)[7],=NH6CJ(4)[7],=NH6EF(4)[7], + =NH6FA(4)[7],=NH6L(4)[7],=NH6MG(4)[7],=NH6TD(4)[7],=NH6VB(4)[7],=NH6VJ(4)[7],=NH6WL(4)[7], + =NH6WL/5(4)[7],=NH7FO(4)[7],=NH7MV(4)[7],=NH7PZ(4)[7],=NH7R(4)[7],=NH7RO(4)[7],=NH7RO/5(4)[7], + =NH7TR(4)[7],=NH7VA(4)[7],=NH7WB(4)[7],=NL5J(4)[7],=NL7AX(4)[7],=NL7C(4)[7],=NL7CO(4)[7], + =NL7CO/5(4)[7],=NL7DC(4)[7],=NL7HB(4)[7],=NL7IE(4)[7],=NL7JH(4)[7],=NL7JI(4)[7],=NL7JV(4)[7], + =NL7JZ(4)[7],=NL7K/5(4)[7],=NL7KB(4)[7],=NL7LE(4)[7],=NL7NP(4)[7],=NL7OM(4)[7],=NL7PD(4)[7], + =NL7RQ(4)[7],=NL7RQ/5(4)[7],=NL7SI(4)[7],=NL7TO(4)[7],=NL7WY(4)[7],=NL7ZL(4)[7],=NP2EE(4)[7], + =NP2PR(4)[7],=NP2RA(4)[7],=NP3BA(4)[7],=NP3CV(4)[7],=NP3NT(4)[7],=NP3PG(4)[7],=NP3RG(4)[7], + =NP3SU(4)[7],=NP3TY(4)[7],=NP4EA(4)[7],=NP4NQ(4)[7],=NP4NQ/5(4)[7],=NP4RW(4)[7],=NP4RZ(4)[7], + =WH2ACT(4)[7],=WH2ACT/5(4)[7],=WH6ARN(4)[7],=WH6BYJ(4)[7],=WH6BYP(4)[7],=WH6CCQ(4)[7], + =WH6CDU(4)[7],=WH6CUL(4)[7],=WH6DMP(4)[7],=WH6DZU(4)[7],=WH6ECJ(4)[7],=WH6EMW(4)[7],=WH6EOF(4)[7], + =WH6ERS(4)[7],=WH6EUA(4)[7],=WH6EXQ(4)[7],=WH6FAD(4)[7],=WH6FGM(4)[7],=WH6FZ/5(4)[7], + =WH6FZL(4)[7],=WH6FZN(4)[7],=WH6GBC(4)[7],=WH6GEA(4)[7],=WH6GL(4)[7],=WH6KK(4)[7],=WH6L/5(4)[7], + =WH7DC(4)[7],=WH7DW(4)[7],=WH7OK(4)[7],=WH7R(4)[7],=WH7YM(4)[7],=WH7YN(4)[7],=WL3WX(4)[7], + =WL5H(4)[7],=WL7AIU(4)[7],=WL7AWC(4)[7],=WL7BBV(4)[7],=WL7BKF(4)[7],=WL7BPY(4)[7],=WL7CA(4)[7], + =WL7CJA(4)[7],=WL7CJC(4)[7],=WL7CQE(4)[7],=WL7CTP(4)[7],=WL7CTQ(4)[7],=WL7D(4)[7],=WL7FC(4)[7], + =WL7FE(4)[7],=WL7FT(4)[7],=WL7FT/5(4)[7],=WL7K/5(4)[7],=WL7ME(4)[7],=WL7MQ/5(4)[7],=WL7OP(4)[7], + =WL7OU(4)[7],=WL7SG(4)[7],=WL7W(4)[7],=WL7WN(4)[7],=WL7XI(4)[7],=WL7XR(4)[7],=WP2AHG(4)[7], + =WP2N(4)[7],=WP2U(4)[7],=WP2WP(4)[7],=WP3AL(4)[7],=WP3HG(4)[7],=WP3JM(4)[7],=WP4A(4)[7], + =WP4ADA(4)[7],=WP4APJ(4)[7],=WP4BAB(4)[7],=WP4BAT(4)[7],=WP4CJY(4)[7],=WP4EVA(4)[7],=WP4EVL(4)[7], + =WP4IXT(4)[7],=WP4IYJ(4)[7],=WP4KSP(4)[7],=WP4KTF(4)[7],=WP4KUW(4)[7],=WP4LKA(4)[7],=WP4MJP(4)[7], =WP4MYI(4)[7],=WP4MZR(4)[7],=WP4NAK(4)[7],=WP4NEP(4)[7],=WP4NQA(4)[7],=WP4NQL(4)[7],=WP4OUE(4)[7], =WP4QLB(4)[7],=WP4RON(4)[7], AA6(3)[6],AB6(3)[6],AC6(3)[6],AD6(3)[6],AE6(3)[6],AF6(3)[6],AG6(3)[6],AI6(3)[6],AJ6(3)[6], @@ -1434,43 +1442,44 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =KH6GKR(3)[6],=KH6HH(3)[6],=KH6HJE(3)[6],=KH6HOU(3)[6],=KH6IKH(3)[6],=KH6IKL(3)[6],=KH6IP(3)[6], =KH6IPJ(3)[6],=KH6JCT(3)[6],=KH6JGD(3)[6],=KH6JJN(3)[6],=KH6JJN/P(3)[6],=KH6JN(3)[6], =KH6JNK(3)[6],=KH6JR(3)[6],=KH6JRB(3)[6],=KH6JRC(3)[6],=KH6JS(3)[6],=KH6JUZ(3)[6],=KH6JVS(3)[6], - =KH6JWG(3)[6],=KH6KT(3)[6],=KH6LO(3)[6],=KH6MV(3)[6],=KH6N(3)[6],=KH6NG(3)[6],=KH6O(3)[6], - =KH6OK(3)[6],=KH6PGA/6(3)[6],=KH6PM(3)[6],=KH6PW(3)[6],=KH6SC(3)[6],=KH6TO(3)[6],=KH6UQ(3)[6], - =KH6USA(3)[6],=KH6VC(3)[6],=KH6VC/6(3)[6],=KH6VZ(3)[6],=KH6WL(3)[6],=KH6WZ(3)[6],=KH7CD/6(3)[6], - =KH7CO(3)[6],=KH7CS(3)[6],=KH7EM(3)[6],=KH7I(3)[6],=KH7IZ(3)[6],=KH7JI(3)[6],=KH7JR(3)[6], - =KH7NS(3)[6],=KH7QS(3)[6],=KH7QU(3)[6],=KH7RB(3)[6],=KH7TJ(3)[6],=KH7TJ/6(3)[6],=KH7TR(3)[6], - =KH7TW(3)[6],=KH7VD(3)[6],=KH7VE(3)[6],=KH7WN(3)[6],=KH7WO(3)[6],=KH7WP(3)[6],=KH7WR(3)[6], - =KH7WS(3)[6],=KH7XX/6(3)[6],=KH7Y(3)[6],=KH7Y/6(3)[6],=KH8A(3)[6],=KH8AF(3)[6],=KH8FL(3)[6], - =KL0AA(3)[6],=KL0AF(3)[6],=KL0AL(3)[6],=KL0HZ(3)[6],=KL0IF(3)[6],=KL1NER(3)[6],=KL1WE/6(3)[6], - =KL2CQ(3)[6],=KL2WL(3)[6],=KL3IM(3)[6],=KL3JY/6(3)[6],=KL3YH(3)[6],=KL4GW(3)[6],=KL4LV(3)[6], - =KL4NZ(3)[6],=KL4QW(3)[6],=KL4UZ(3)[6],=KL7AK(3)[6],=KL7CE/6(3)[6],=KL7CM(3)[6],=KL7CN(3)[6], - =KL7CW/6(3)[6],=KL7CX(3)[6],=KL7DJ(3)[6],=KL7EAE(3)[6],=KL7EAL(3)[6],=KL7GRG(3)[6],=KL7HQR(3)[6], - =KL7HQR/6(3)[6],=KL7HSY(3)[6],=KL7ID(3)[6],=KL7IDY/6(3)[6],=KL7ISB(3)[6],=KL7ISN(3)[6], - =KL7JBE(3)[6],=KL7KNP(3)[6],=KL7KX(3)[6],=KL7MF(3)[6],=KL7MF/6(3)[6],=KL7MF/M(3)[6],=KL7RT(3)[6], - =KL7SL(3)[6],=KL7SY(3)[6],=KL7VU(3)[6],=KL7VU/6(3)[6],=KP2BK(3)[6],=KP3BN(3)[6],=KP3YL(3)[6], - =KP4BR(3)[6],=KP4DSO(3)[6],=KP4DX/6(3)[6],=KP4ENM(3)[6],=KP4ERR(3)[6],=KP4FBT(3)[6],=KP4MD(3)[6], - =KP4UB(3)[6],=KP4ZW(3)[6],=NH0C(3)[6],=NH0X(3)[6],=NH2AR(3)[6],=NH2BD(3)[6],=NH2BV(3)[6], - =NH2CM(3)[6],=NH2FT(3)[6],=NH2FX(3)[6],=NH2R(3)[6],=NH2S(3)[6],=NH6AC(3)[6],=NH6AE(3)[6], - =NH6AF(3)[6],=NH6FV(3)[6],=NH6FX(3)[6],=NH6NG(3)[6],=NH6RG(3)[6],=NH6SF(3)[6],=NH6ST(3)[6], - =NH6WR(3)[6],=NH7AG(3)[6],=NH7EM(3)[6],=NH7FW(3)[6],=NH7G(3)[6],=NH7IG(3)[6],=NH7IH(3)[6], - =NH7PM(3)[6],=NH7QV(3)[6],=NH7RT(3)[6],=NH7ST(3)[6],=NH7SU(3)[6],=NH7WC(3)[6],=NH7WE(3)[6], - =NH7WG(3)[6],=NH7ZE(3)[6],=NL7GE(3)[6],=NL7IB(3)[6],=NL7LC(3)[6],=NL7OP(3)[6],=NL7RO(3)[6], - =NL7TP(3)[6],=NL7YB(3)[6],=NP2KY(3)[6],=NP4AB(3)[6],=NP4AI/6(3)[6],=NP4IW(3)[6],=NP4IW/6(3)[6], - =NP4MV(3)[6],=NP4XE(3)[6],=WH0AAZ(3)[6],=WH0M(3)[6],=WH2ABS(3)[6],=WH2ALN(3)[6],=WH2K(3)[6], - =WH6AAJ(3)[6],=WH6AFM(3)[6],=WH6ANA(3)[6],=WH6ASW/M(3)[6],=WH6BYT(3)[6],=WH6CIL(3)[6], - =WH6CK(3)[6],=WH6CO(3)[6],=WH6CPO(3)[6],=WH6CPT(3)[6],=WH6CRE(3)[6],=WH6CSG(3)[6],=WH6CUF(3)[6], - =WH6CUU(3)[6],=WH6CUX(3)[6],=WH6CVJ(3)[6],=WH6CWS(3)[6],=WH6CZF(3)[6],=WH6CZH(3)[6],=WH6DHN(3)[6], - =WH6DSK(3)[6],=WH6DVM(3)[6],=WH6DVN(3)[6],=WH6DVX(3)[6],=WH6DYA(3)[6],=WH6DZV(3)[6],=WH6DZY(3)[6], - =WH6EAR(3)[6],=WH6EEZ(3)[6],=WH6EHY(3)[6],=WH6EKB(3)[6],=WH6ENG(3)[6],=WH6EUH(3)[6],=WH6EZW(3)[6], - =WH6FTF(3)[6],=WH6FTO(3)[6],=WH6JO(3)[6],=WH6LZ(3)[6],=WH6MC(3)[6],=WH6MK(3)[6],=WH6OI(3)[6], - =WH6PX(3)[6],=WH6QA(3)[6],=WH6RF(3)[6],=WH6TD(3)[6],=WH6TK(3)[6],=WH6TT(3)[6],=WH6USA(3)[6], - =WH6VM(3)[6],=WH6VN(3)[6],=WH6XI(3)[6],=WH6XX(3)[6],=WH6YJ(3)[6],=WH7DG(3)[6],=WH7DH(3)[6], - =WH7HQ(3)[6],=WH7IN(3)[6],=WH7IV(3)[6],=WH7IZ(3)[6],=WH7LP(3)[6],=WH7OO(3)[6],=WH7PM(3)[6], - =WH7QC(3)[6],=WH7RU(3)[6],=WH7TT(3)[6],=WH7UZ(3)[6],=WH7VM(3)[6],=WH7VU(3)[6],=WH7XR(3)[6], - =WL3AF(3)[6],=WL3DZ(3)[6],=WL4JC(3)[6],=WL7ACO(3)[6],=WL7BA(3)[6],=WL7BGF(3)[6],=WL7CPL(3)[6], - =WL7CSD(3)[6],=WL7DN/6(3)[6],=WL7EA(3)[6],=WL7EKK(3)[6],=WL7RA(3)[6],=WL7SE(3)[6],=WL7TG(3)[6], - =WL7WL(3)[6],=WL7YQ(3)[6],=WL7YQ/6(3)[6],=WP3OV(3)[6],=WP4CUJ(3)[6],=WP4CW(3)[6],=WP4KSU(3)[6], - =WP4MVE(3)[6],=WP4OBB(3)[6],=WP4OBC(3)[6],=WP4PWS(3)[6], + =KH6JWG(3)[6],=KH6JWJ(3)[6],=KH6JWJ/6(3)[6],=KH6KT(3)[6],=KH6LO(3)[6],=KH6MV(3)[6],=KH6N(3)[6], + =KH6NG(3)[6],=KH6O(3)[6],=KH6OK(3)[6],=KH6PGA/6(3)[6],=KH6PM(3)[6],=KH6PW(3)[6],=KH6SC(3)[6], + =KH6TO(3)[6],=KH6UQ(3)[6],=KH6USA(3)[6],=KH6VC(3)[6],=KH6VC/6(3)[6],=KH6VZ(3)[6],=KH6WL(3)[6], + =KH6WZ(3)[6],=KH7CD/6(3)[6],=KH7CO(3)[6],=KH7CS(3)[6],=KH7EM(3)[6],=KH7I(3)[6],=KH7IZ(3)[6], + =KH7JI(3)[6],=KH7JR(3)[6],=KH7NS(3)[6],=KH7QS(3)[6],=KH7QU(3)[6],=KH7RB(3)[6],=KH7TJ(3)[6], + =KH7TJ/6(3)[6],=KH7TR(3)[6],=KH7TW(3)[6],=KH7VD(3)[6],=KH7VE(3)[6],=KH7WN(3)[6],=KH7WO(3)[6], + =KH7WP(3)[6],=KH7WR(3)[6],=KH7WS(3)[6],=KH7XX/6(3)[6],=KH7Y(3)[6],=KH7Y/6(3)[6],=KH8A(3)[6], + =KH8AF(3)[6],=KH8FL(3)[6],=KL0AA(3)[6],=KL0AF(3)[6],=KL0AL(3)[6],=KL0HZ(3)[6],=KL0IF(3)[6], + =KL1NER(3)[6],=KL1WE/6(3)[6],=KL2CQ(3)[6],=KL2WL(3)[6],=KL3IM(3)[6],=KL3JY/6(3)[6],=KL3YH(3)[6], + =KL4GW(3)[6],=KL4LV(3)[6],=KL4NZ(3)[6],=KL4QW(3)[6],=KL4UZ(3)[6],=KL7AK(3)[6],=KL7CE/6(3)[6], + =KL7CM(3)[6],=KL7CN(3)[6],=KL7CW/6(3)[6],=KL7CX(3)[6],=KL7DJ(3)[6],=KL7EAE(3)[6],=KL7EAL(3)[6], + =KL7GRG(3)[6],=KL7HQR(3)[6],=KL7HQR/6(3)[6],=KL7HSY(3)[6],=KL7ID(3)[6],=KL7IDY/6(3)[6], + =KL7ISB(3)[6],=KL7ISN(3)[6],=KL7JBE(3)[6],=KL7JG(3)[6],=KL7KNP(3)[6],=KL7KX(3)[6],=KL7MF(3)[6], + =KL7MF/6(3)[6],=KL7MF/M(3)[6],=KL7RT(3)[6],=KL7SL(3)[6],=KL7SY(3)[6],=KL7VU(3)[6],=KL7VU/6(3)[6], + =KP2BK(3)[6],=KP3BN(3)[6],=KP3YL(3)[6],=KP4BR(3)[6],=KP4DSO(3)[6],=KP4DX/6(3)[6],=KP4ENM(3)[6], + =KP4ERR(3)[6],=KP4FBT(3)[6],=KP4MD(3)[6],=KP4UB(3)[6],=KP4ZW(3)[6],=NH0C(3)[6],=NH0X(3)[6], + =NH2AR(3)[6],=NH2BD(3)[6],=NH2CM(3)[6],=NH2FT(3)[6],=NH2FX(3)[6],=NH2R(3)[6],=NH2S(3)[6], + =NH6AC(3)[6],=NH6AE(3)[6],=NH6AF(3)[6],=NH6FV(3)[6],=NH6FX(3)[6],=NH6G(3)[6],=NH6NG(3)[6], + =NH6RG(3)[6],=NH6SF(3)[6],=NH6ST(3)[6],=NH6WR(3)[6],=NH7AG(3)[6],=NH7EM(3)[6],=NH7FW(3)[6], + =NH7G(3)[6],=NH7IG(3)[6],=NH7IH(3)[6],=NH7PM(3)[6],=NH7QV(3)[6],=NH7RT(3)[6],=NH7ST(3)[6], + =NH7SU(3)[6],=NH7WC(3)[6],=NH7WE(3)[6],=NH7WG(3)[6],=NH7ZE(3)[6],=NL7GE(3)[6],=NL7IB(3)[6], + =NL7LC(3)[6],=NL7OP(3)[6],=NL7RO(3)[6],=NL7TP(3)[6],=NL7YB(3)[6],=NP2KY(3)[6],=NP4AB(3)[6], + =NP4AI/6(3)[6],=NP4IW(3)[6],=NP4IW/6(3)[6],=NP4MV(3)[6],=NP4XE(3)[6],=WH0AAZ(3)[6],=WH0M(3)[6], + =WH2ABS(3)[6],=WH2ALN(3)[6],=WH2K(3)[6],=WH6AAJ(3)[6],=WH6AFM(3)[6],=WH6ANA(3)[6],=WH6ASW/M(3)[6], + =WH6BYT(3)[6],=WH6CIL(3)[6],=WH6CK(3)[6],=WH6CO(3)[6],=WH6CPO(3)[6],=WH6CPT(3)[6],=WH6CRE(3)[6], + =WH6CSG(3)[6],=WH6CUF(3)[6],=WH6CUU(3)[6],=WH6CUX(3)[6],=WH6CVJ(3)[6],=WH6CWS(3)[6],=WH6CZF(3)[6], + =WH6CZH(3)[6],=WH6DHN(3)[6],=WH6DPA(3)[6],=WH6DSK(3)[6],=WH6DVM(3)[6],=WH6DVN(3)[6],=WH6DVX(3)[6], + =WH6DYA(3)[6],=WH6DZV(3)[6],=WH6DZY(3)[6],=WH6EEZ(3)[6],=WH6EHY(3)[6],=WH6EKB(3)[6],=WH6ENG(3)[6], + =WH6EUH(3)[6],=WH6EZW(3)[6],=WH6FTF(3)[6],=WH6FTO(3)[6],=WH6JO(3)[6],=WH6LZ(3)[6],=WH6MC(3)[6], + =WH6MK(3)[6],=WH6OI(3)[6],=WH6PX(3)[6],=WH6QA(3)[6],=WH6RF(3)[6],=WH6TD(3)[6],=WH6TK(3)[6], + =WH6TT(3)[6],=WH6USA(3)[6],=WH6VM(3)[6],=WH6VN(3)[6],=WH6XI(3)[6],=WH6XX(3)[6],=WH6YJ(3)[6], + =WH7DG(3)[6],=WH7DH(3)[6],=WH7HQ(3)[6],=WH7IN(3)[6],=WH7IV(3)[6],=WH7IZ(3)[6],=WH7L(3)[6], + =WH7LP(3)[6],=WH7OO(3)[6],=WH7PM(3)[6],=WH7QC(3)[6],=WH7RU(3)[6],=WH7TT(3)[6],=WH7UZ(3)[6], + =WH7VM(3)[6],=WH7VU(3)[6],=WH7XR(3)[6],=WL3AF(3)[6],=WL3DZ(3)[6],=WL4JC(3)[6],=WL7ACO(3)[6], + =WL7BA(3)[6],=WL7BGF(3)[6],=WL7CPL(3)[6],=WL7CSD(3)[6],=WL7DN/6(3)[6],=WL7EA(3)[6],=WL7EKK(3)[6], + =WL7RA(3)[6],=WL7SE(3)[6],=WL7TG(3)[6],=WL7WL(3)[6],=WL7YQ(3)[6],=WL7YQ/6(3)[6],=WP3OV(3)[6], + =WP4CUJ(3)[6],=WP4CW(3)[6],=WP4IER(3)[6],=WP4KSU(3)[6],=WP4MVE(3)[6],=WP4OBB(3)[6],=WP4OBC(3)[6], + =WP4PWS(3)[6], AA7(3)[6],AB7(3)[6],AC7(3)[6],AD7(3)[6],AE7(3)[6],AF7(3)[6],AG7(3)[6],AI7(3)[6],AJ7(3)[6], AK7(3)[6],K7(3)[6],KA7(3)[6],KB7(3)[6],KC7(3)[6],KD7(3)[6],KE7(3)[6],KF7(3)[6],KG7(3)[6], KI7(3)[6],KJ7(3)[6],KK7(3)[6],KM7(3)[6],KN7(3)[6],KO7(3)[6],KQ7(3)[6],KR7(3)[6],KS7(3)[6], @@ -1496,24 +1505,25 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =AL7JS(3)[6],=AL7JU(3)[6],=AL7JV(3)[6],=AL7JW(3)[6],=AL7JY(3)[6],=AL7KE(3)[6],=AL7KF(3)[6], =AL7KG(3)[6],=AL7KK(3)[6],=AL7KL(3)[6],=AL7KV(3)[6],=AL7L/7(3)[6],=AL7LI(3)[6],=AL7LL(3)[6], =AL7MH(3)[6],=AL7MQ(3)[6],=AL7ND(3)[6],=AL7NK(3)[6],=AL7NZ(3)[6],=AL7OK(3)[6],=AL7OW(3)[6], - =AL7PR(3)[6],=AL7PV(3)[6],=AL7QL(3)[6],=AL7R(3)[6],=AL7R/7(3)[6],=AL7RF(3)[6],=AL7RF/7(3)[6], - =AL7RM(3)[6],=AL7RR(3)[6],=AL7W(3)[6],=G4KHG/M(3)[6],=KH0AS(3)[6],=KH0H(3)[6],=KH0K(3)[6], - =KH0SH(3)[6],=KH0TL(3)[6],=KH0X(3)[6],=KH2CH(3)[6],=KH2G(3)[6],=KH2GG(3)[6],=KH2JA(3)[6], - =KH2QH(3)[6],=KH2RK(3)[6],=KH2SK(3)[6],=KH2SR(3)[6],=KH2TJ/7(3)[6],=KH2TJ/P(3)[6],=KH2XP(3)[6], - =KH2YL(3)[6],=KH3AD(3)[6],=KH6AB(3)[6],=KH6AHQ(3)[6],=KH6BXZ(3)[6],=KH6CN(3)[6],=KH6CN/7(3)[6], - =KH6COY(3)[6],=KH6CQG(3)[6],=KH6CQH(3)[6],=KH6CQH/7(3)[6],=KH6DB(3)[6],=KH6DE(3)[6],=KH6DOT(3)[6], - =KH6DUT(3)[6],=KH6EE(3)[6],=KH6EE/7(3)[6],=KH6FKA/7(3)[6],=KH6FU(3)[6],=KH6GB(3)[6],=KH6GDN(3)[6], - =KH6GN(3)[6],=KH6HP(3)[6],=KH6HU(3)[6],=KH6HWK(3)[6],=KH6IA(3)[6],=KH6ICQ(3)[6],=KH6IKC(3)[6], - =KH6IMN(3)[6],=KH6IQX(3)[6],=KH6ITY(3)[6],=KH6JFL(3)[6],=KH6JIM/7(3)[6],=KH6JJS(3)[6], - =KH6JPJ(3)[6],=KH6JPO(3)[6],=KH6JRW(3)[6],=KH6JT(3)[6],=KH6JUC(3)[6],=KH6JUQ(3)[6],=KH6KS(3)[6], - =KH6KW(3)[6],=KH6LEM(3)[6],=KH6ME(3)[6],=KH6MF(3)[6],=KH6NA(3)[6],=KH6NO/7(3)[6],=KH6NO/M(3)[6], - =KH6NU(3)[6],=KH6OV(3)[6],=KH6PG(3)[6],=KH6PR(3)[6],=KH6QAI(3)[6],=KH6QAI/7(3)[6],=KH6QAJ(3)[6], - =KH6RW(3)[6],=KH6RY(3)[6],=KH6SAT(3)[6],=KH6SS(3)[6],=KH6TX(3)[6],=KH6VM(3)[6],=KH6VM/7(3)[6], - =KH6VT(3)[6],=KH6WX(3)[6],=KH6XG(3)[6],=KH6XS(3)[6],=KH6XT(3)[6],=KH6YL(3)[6],=KH7AL(3)[6], - =KH7AR(3)[6],=KH7AX(3)[6],=KH7CB(3)[6],=KH7CM(3)[6],=KH7CZ(3)[6],=KH7FJ(3)[6],=KH7FR(3)[6], - =KH7HH(3)[6],=KH7HWK(3)[6],=KH7IP(3)[6],=KH7LE(3)[6],=KH7ME(3)[6],=KH7MR(3)[6],=KH7NI(3)[6], - =KH7NP(3)[6],=KH7R(3)[6],=KH7RD(3)[6],=KH7RT(3)[6],=KH7SQ(3)[6],=KH7SR(3)[6],=KH7VB(3)[6], - =KH7VC(3)[6],=KH7WW(3)[6],=KH7WW/7(3)[6],=KH7X/7(3)[6],=KH7YD(3)[6],=KH7YD/7(3)[6],=KH8AB(3)[6], + =AL7PR(3)[6],=AL7PV(3)[6],=AL7QL(3)[6],=AL7QZ(3)[6],=AL7R(3)[6],=AL7R/7(3)[6],=AL7RF(3)[6], + =AL7RF/7(3)[6],=AL7RM(3)[6],=AL7RR(3)[6],=AL7W(3)[6],=G4KHG/M(3)[6],=KH0AS(3)[6],=KH0H(3)[6], + =KH0K(3)[6],=KH0SH(3)[6],=KH0TL(3)[6],=KH0X(3)[6],=KH2CH(3)[6],=KH2G(3)[6],=KH2GG(3)[6], + =KH2JA(3)[6],=KH2QH(3)[6],=KH2RK(3)[6],=KH2SK(3)[6],=KH2SR(3)[6],=KH2TJ/7(3)[6],=KH2TJ/P(3)[6], + =KH2XP(3)[6],=KH2YL(3)[6],=KH3AD(3)[6],=KH6AB(3)[6],=KH6AHQ(3)[6],=KH6BXZ(3)[6],=KH6CN(3)[6], + =KH6CN/7(3)[6],=KH6COY(3)[6],=KH6CQG(3)[6],=KH6CQH(3)[6],=KH6CQH/7(3)[6],=KH6CTQ(3)[6], + =KH6DB(3)[6],=KH6DE(3)[6],=KH6DOT(3)[6],=KH6DUT(3)[6],=KH6EE(3)[6],=KH6EE/7(3)[6],=KH6FE(3)[6], + =KH6FKA/7(3)[6],=KH6FU(3)[6],=KH6GB(3)[6],=KH6GDN(3)[6],=KH6GN(3)[6],=KH6HP(3)[6],=KH6HU(3)[6], + =KH6HWK(3)[6],=KH6IA(3)[6],=KH6ICQ(3)[6],=KH6IKC(3)[6],=KH6IMN(3)[6],=KH6IQX(3)[6],=KH6ITY(3)[6], + =KH6JFL(3)[6],=KH6JIM/7(3)[6],=KH6JJS(3)[6],=KH6JMK(3)[6],=KH6JPJ(3)[6],=KH6JPO(3)[6], + =KH6JRW(3)[6],=KH6JT(3)[6],=KH6JUC(3)[6],=KH6JUQ(3)[6],=KH6KS(3)[6],=KH6KW(3)[6],=KH6LEM(3)[6], + =KH6ME(3)[6],=KH6MF(3)[6],=KH6NA(3)[6],=KH6NO/7(3)[6],=KH6NO/M(3)[6],=KH6NU(3)[6],=KH6OV(3)[6], + =KH6PG(3)[6],=KH6PR(3)[6],=KH6QAI(3)[6],=KH6QAI/7(3)[6],=KH6QAJ(3)[6],=KH6RW(3)[6],=KH6RY(3)[6], + =KH6SAT(3)[6],=KH6SS(3)[6],=KH6TX(3)[6],=KH6VM(3)[6],=KH6VM/7(3)[6],=KH6VT(3)[6],=KH6WX(3)[6], + =KH6XG(3)[6],=KH6XJ(3)[6],=KH6XS(3)[6],=KH6XT(3)[6],=KH6YL(3)[6],=KH7AR(3)[6],=KH7AX(3)[6], + =KH7CB(3)[6],=KH7CM(3)[6],=KH7CZ(3)[6],=KH7FJ(3)[6],=KH7FR(3)[6],=KH7HH(3)[6],=KH7HWK(3)[6], + =KH7IP(3)[6],=KH7LE(3)[6],=KH7ME(3)[6],=KH7MR(3)[6],=KH7NI(3)[6],=KH7NP(3)[6],=KH7R(3)[6], + =KH7RD(3)[6],=KH7RT(3)[6],=KH7SB(3)[6],=KH7SQ(3)[6],=KH7SR(3)[6],=KH7VB(3)[6],=KH7VC(3)[6], + =KH7WW(3)[6],=KH7WW/7(3)[6],=KH7WX(3)[6],=KH7X/7(3)[6],=KH7YD(3)[6],=KH7YD/7(3)[6],=KH8AB(3)[6], =KH8AH(3)[6],=KH8AZ(3)[6],=KH8BG(3)[6],=KH8D(3)[6],=KH8E(3)[6],=KH8K(3)[6],=KH9AA(3)[6], =KL0AI(3)[6],=KL0AN(3)[6],=KL0AP(3)[6],=KL0CA(3)[6],=KL0CM(3)[6],=KL0CW(3)[6],=KL0DF(3)[6], =KL0DG(3)[6],=KL0DR(3)[6],=KL0DT(3)[6],=KL0EU(3)[6],=KL0IR(3)[6],=KL0IS(3)[6],=KL0IW(3)[6], @@ -1530,37 +1540,38 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =KL2QE(3)[6],=KL2TR(3)[6],=KL2TZ(3)[6],=KL2VK(3)[6],=KL2WE(3)[6],=KL2XQ(3)[6],=KL2YH(3)[6], =KL3DL(3)[6],=KL3EZ(3)[6],=KL3FE(3)[6],=KL3IC(3)[6],=KL3IO(3)[6],=KL3IW(3)[6],=KL3ML(3)[6], =KL3MZ(3)[6],=KL3NE(3)[6],=KL3NO(3)[6],=KL3OQ(3)[6],=KL3PD(3)[6],=KL3TW(3)[6],=KL3TY(3)[6], - =KL3VJ(3)[6],=KL3XS(3)[6],=KL4BQ(3)[6],=KL4BS(3)[6],=KL4E(3)[6],=KL4NG(3)[6],=KL4QJ(3)[6], - =KL4RKH(3)[6],=KL4YFD(3)[6],=KL7AB(3)[6],=KL7AD(3)[6],=KL7AW(3)[6],=KL7BD(3)[6],=KL7BDC(3)[6], - =KL7BH(3)[6],=KL7BJ(3)[6],=KL7BR(3)[6],=KL7BS(3)[6],=KL7BT(3)[6],=KL7BUR(3)[6],=KL7BXP(3)[6], - =KL7C(3)[6],=KL7CPO(3)[6],=KL7CR(3)[6],=KL7CT(3)[6],=KL7CY(3)[6],=KL7DC(3)[6],=KL7DF(3)[6], - =KL7DI(3)[6],=KL7DK(3)[6],=KL7DLG(3)[6],=KL7DZQ(3)[6],=KL7EBN(3)[6],=KL7EF(3)[6],=KL7EFL(3)[6], - =KL7EH(3)[6],=KL7EIN(3)[6],=KL7EU(3)[6],=KL7FDQ(3)[6],=KL7FDQ/7(3)[6],=KL7FOZ(3)[6],=KL7FRQ(3)[6], - =KL7FS(3)[6],=KL7GA(3)[6],=KL7GCS(3)[6],=KL7GKY(3)[6],=KL7GRF(3)[6],=KL7GT(3)[6],=KL7HB(3)[6], - =KL7HBV(3)[6],=KL7HFI/7(3)[6],=KL7HFV(3)[6],=KL7HI(3)[6],=KL7HJR(3)[6],=KL7HLF(3)[6],=KL7HM(3)[6], - =KL7HMK(3)[6],=KL7HQL(3)[6],=KL7HSR(3)[6],=KL7IAL(3)[6],=KL7IBT(3)[6],=KL7IDY(3)[6],=KL7IEI(3)[6], - =KL7IFK(3)[6],=KL7IGB(3)[6],=KL7IHK(3)[6],=KL7IIK(3)[6],=KL7IKV(3)[6],=KL7IL(3)[6],=KL7IME(3)[6], - =KL7IOW(3)[6],=KL7IPV(3)[6],=KL7ISE(3)[6],=KL7IUX(3)[6],=KL7IWC/7(3)[6],=KL7IZC(3)[6], - =KL7IZH(3)[6],=KL7JBB(3)[6],=KL7JDQ(3)[6],=KL7JEA(3)[6],=KL7JES(3)[6],=KL7JIJ(3)[6],=KL7JJE(3)[6], - =KL7JKV(3)[6],=KL7KA(3)[6],=KL7KG/7(3)[6],=KL7LG(3)[6],=KL7LI(3)[6],=KL7LX(3)[6],=KL7LZ(3)[6], - =KL7M(3)[6],=KL7MY(3)[6],=KL7MZ(3)[6],=KL7NA(3)[6],=KL7NP(3)[6],=KL7NP/7(3)[6],=KL7OA(3)[6], - =KL7OF(3)[6],=KL7OL(3)[6],=KL7OR(3)[6],=KL7OR/7(3)[6],=KL7OS(3)[6],=KL7OY(3)[6],=KL7PC(3)[6], - =KL7PO(3)[6],=KL7QA(3)[6],=KL7QK(3)[6],=KL7QK/140(3)[6],=KL7QK/7(3)[6],=KL7QR(3)[6], - =KL7QR/7(3)[6],=KL7R(3)[6],=KL7RC(3)[6],=KL7RK(3)[6],=KL7RM(3)[6],=KL7RS(3)[6],=KL7S(3)[6], - =KL7SK(3)[6],=KL7SP(3)[6],=KL7T(3)[6],=KL7TU(3)[6],=KL7UP(3)[6],=KL7UT(3)[6],=KL7VK(3)[6], - =KL7VL(3)[6],=KL7VN(3)[6],=KL7VQ(3)[6],=KL7W(3)[6],=KL7WC(3)[6],=KL7WM(3)[6],=KL7WN(3)[6], - =KL7WP(3)[6],=KL7WP/7(3)[6],=KL7WT(3)[6],=KL7XL(3)[6],=KL7YJ(3)[6],=KL7YQ(3)[6],=KL7YY/M(3)[6], - =KL7ZH(3)[6],=KL7ZW(3)[6],=KL8RV(3)[6],=KL8SU(3)[6],=KL9PC(3)[6],=KP2BX(3)[6],=KP2CB(3)[6], - =KP2CT(3)[6],=KP2X(3)[6],=KP2Y(3)[6],=KP4EFZ(3)[6],=KP4ND(3)[6],=KP4UZ(3)[6],=KP4X(3)[6], - =NH0F(3)[6],=NH0K(3)[6],=NH0O(3)[6],=NH2DM(3)[6],=NH2JE(3)[6],=NH2KR(3)[6],=NH6B(3)[6], - =NH6BF(3)[6],=NH6CI(3)[6],=NH6CO(3)[6],=NH6DQ(3)[6],=NH6DX(3)[6],=NH6F(3)[6],=NH6FF(3)[6], - =NH6GZ(3)[6],=NH6HE(3)[6],=NH6HZ(3)[6],=NH6LF(3)[6],=NH6LM(3)[6],=NH6NS(3)[6],=NH6SO(3)[6], - =NH6U(3)[6],=NH6WE(3)[6],=NH6XN(3)[6],=NH6XP(3)[6],=NH6Z(3)[6],=NH6ZA(3)[6],=NH6ZE(3)[6], - =NH7FU(3)[6],=NH7FZ(3)[6],=NH7L(3)[6],=NH7M(3)[6],=NH7MY(3)[6],=NH7N(3)[6],=NH7ND(3)[6], - =NH7NJ/7(3)[6],=NH7OC(3)[6],=NH7PL(3)[6],=NH7RS(3)[6],=NH7S(3)[6],=NH7SH(3)[6],=NH7TG(3)[6], - =NH7VZ(3)[6],=NH7W(3)[6],=NH7WT(3)[6],=NH7WU(3)[6],=NH7YE(3)[6],=NH7YI(3)[6],=NL7AH(3)[6], - =NL7AR(3)[6],=NL7AZ(3)[6],=NL7CH(3)[6],=NL7D(3)[6],=NL7D/7(3)[6],=NL7DH(3)[6],=NL7DY(3)[6], - =NL7EO(3)[6],=NL7FQ(3)[6],=NL7FX(3)[6],=NL7GM(3)[6],=NL7GN(3)[6],=NL7GO(3)[6],=NL7GU(3)[6], + =KL3VJ(3)[6],=KL3XS(3)[6],=KL4BQ(3)[6],=KL4BS(3)[6],=KL4E(3)[6],=KL4FX(3)[6],=KL4NG(3)[6], + =KL4QJ(3)[6],=KL4RKH(3)[6],=KL4RY(3)[6],=KL4YFD(3)[6],=KL7AB(3)[6],=KL7AD(3)[6],=KL7AW(3)[6], + =KL7BD(3)[6],=KL7BDC(3)[6],=KL7BH(3)[6],=KL7BJ(3)[6],=KL7BR(3)[6],=KL7BS(3)[6],=KL7BT(3)[6], + =KL7BUR(3)[6],=KL7BXP(3)[6],=KL7C(3)[6],=KL7CPO(3)[6],=KL7CR(3)[6],=KL7CT(3)[6],=KL7CY(3)[6], + =KL7DC(3)[6],=KL7DF(3)[6],=KL7DI(3)[6],=KL7DK(3)[6],=KL7DLG(3)[6],=KL7DSI(3)[6],=KL7DZQ(3)[6], + =KL7EBN(3)[6],=KL7EF(3)[6],=KL7EFL(3)[6],=KL7EH(3)[6],=KL7EIN(3)[6],=KL7EU(3)[6],=KL7FDQ(3)[6], + =KL7FDQ/7(3)[6],=KL7FIR(3)[6],=KL7FOZ(3)[6],=KL7FRQ(3)[6],=KL7FS(3)[6],=KL7GA(3)[6],=KL7GCS(3)[6], + =KL7GKY(3)[6],=KL7GRF(3)[6],=KL7GT(3)[6],=KL7HB(3)[6],=KL7HBV(3)[6],=KL7HFI/7(3)[6],=KL7HFV(3)[6], + =KL7HI(3)[6],=KL7HJR(3)[6],=KL7HLF(3)[6],=KL7HM(3)[6],=KL7HMK(3)[6],=KL7HQL(3)[6],=KL7HSR(3)[6], + =KL7IAL(3)[6],=KL7IBT(3)[6],=KL7IDY(3)[6],=KL7IEI(3)[6],=KL7IFK(3)[6],=KL7IGB(3)[6],=KL7IHK(3)[6], + =KL7IIK(3)[6],=KL7IKV(3)[6],=KL7IL(3)[6],=KL7IME(3)[6],=KL7IOW(3)[6],=KL7IPV(3)[6],=KL7ISE(3)[6], + =KL7IUX(3)[6],=KL7IWC/7(3)[6],=KL7IZC(3)[6],=KL7IZH(3)[6],=KL7JBB(3)[6],=KL7JDQ(3)[6], + =KL7JEA(3)[6],=KL7JES(3)[6],=KL7JIJ(3)[6],=KL7JJE(3)[6],=KL7JKV(3)[6],=KL7KA(3)[6],=KL7KG/7(3)[6], + =KL7LG(3)[6],=KL7LI(3)[6],=KL7LX(3)[6],=KL7LZ(3)[6],=KL7M(3)[6],=KL7MY(3)[6],=KL7MZ(3)[6], + =KL7NA(3)[6],=KL7NP(3)[6],=KL7NP/7(3)[6],=KL7OA(3)[6],=KL7OF(3)[6],=KL7OL(3)[6],=KL7OR(3)[6], + =KL7OR/7(3)[6],=KL7OS(3)[6],=KL7OY(3)[6],=KL7PC(3)[6],=KL7PO(3)[6],=KL7QA(3)[6],=KL7QK(3)[6], + =KL7QK/140(3)[6],=KL7QK/7(3)[6],=KL7QR(3)[6],=KL7QR/7(3)[6],=KL7R(3)[6],=KL7RC(3)[6],=KL7RK(3)[6], + =KL7RM(3)[6],=KL7RN(3)[6],=KL7RS(3)[6],=KL7S(3)[6],=KL7SK(3)[6],=KL7SP(3)[6],=KL7T(3)[6], + =KL7TU(3)[6],=KL7UP(3)[6],=KL7UT(3)[6],=KL7VK(3)[6],=KL7VL(3)[6],=KL7VN(3)[6],=KL7VQ(3)[6], + =KL7W(3)[6],=KL7WC(3)[6],=KL7WM(3)[6],=KL7WN(3)[6],=KL7WP(3)[6],=KL7WP/7(3)[6],=KL7WT(3)[6], + =KL7XL(3)[6],=KL7YJ(3)[6],=KL7YQ(3)[6],=KL7YY/M(3)[6],=KL7ZH(3)[6],=KL7ZW(3)[6],=KL8RV(3)[6], + =KL8SU(3)[6],=KL9PC(3)[6],=KP2BX(3)[6],=KP2CB(3)[6],=KP2CT(3)[6],=KP2X(3)[6],=KP2Y(3)[6], + =KP4EFZ(3)[6],=KP4ND(3)[6],=KP4UZ(3)[6],=KP4X(3)[6],=NH0F(3)[6],=NH0K(3)[6],=NH0O(3)[6], + =NH2DM(3)[6],=NH2JE(3)[6],=NH2KR(3)[6],=NH6AY(3)[6],=NH6B(3)[6],=NH6BF(3)[6],=NH6CI(3)[6], + =NH6CO(3)[6],=NH6DQ(3)[6],=NH6DX(3)[6],=NH6F(3)[6],=NH6FF(3)[6],=NH6GZ(3)[6],=NH6HE(3)[6], + =NH6HZ(3)[6],=NH6LF(3)[6],=NH6LM(3)[6],=NH6NS(3)[6],=NH6SO(3)[6],=NH6U(3)[6],=NH6WE(3)[6], + =NH6XN(3)[6],=NH6XP(3)[6],=NH6Z(3)[6],=NH6ZA(3)[6],=NH6ZE(3)[6],=NH7FU(3)[6],=NH7FZ(3)[6], + =NH7L(3)[6],=NH7M(3)[6],=NH7MY(3)[6],=NH7N(3)[6],=NH7ND(3)[6],=NH7NJ/7(3)[6],=NH7OC(3)[6], + =NH7PL(3)[6],=NH7RS(3)[6],=NH7S(3)[6],=NH7SH(3)[6],=NH7TG(3)[6],=NH7VZ(3)[6],=NH7W(3)[6], + =NH7WT(3)[6],=NH7WU(3)[6],=NH7YE(3)[6],=NH7YI(3)[6],=NL5L(3)[6],=NL7AH(3)[6],=NL7AR(3)[6], + =NL7AZ(3)[6],=NL7CH(3)[6],=NL7D(3)[6],=NL7D/7(3)[6],=NL7DH(3)[6],=NL7DY(3)[6],=NL7EO(3)[6], + =NL7FQ(3)[6],=NL7FX(3)[6],=NL7FY(3)[6],=NL7GM(3)[6],=NL7GN(3)[6],=NL7GO(3)[6],=NL7GU(3)[6], =NL7GW(3)[6],=NL7HH(3)[6],=NL7HK(3)[6],=NL7HQ(3)[6],=NL7HU(3)[6],=NL7IN(3)[6],=NL7JJ(3)[6], =NL7JN(3)[6],=NL7KV(3)[6],=NL7LI(3)[6],=NL7MS(3)[6],=NL7MT(3)[6],=NL7NL(3)[6],=NL7OF(3)[6], =NL7PN(3)[6],=NL7QI(3)[6],=NL7RL(3)[6],=NL7RN(3)[6],=NL7TK(3)[6],=NL7UE(3)[6],=NL7US(3)[6], @@ -1572,23 +1583,23 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =WH6CXE(3)[6],=WH6CXN(3)[6],=WH6CYB(3)[6],=WH6CZ(3)[6],=WH6DAY(3)[6],=WH6DJO(3)[6],=WH6DKC(3)[6], =WH6DKO(3)[6],=WH6DLQ(3)[6],=WH6DQ(3)[6],=WH6DST(3)[6],=WH6DTH(3)[6],=WH6EEC(3)[6],=WH6EEG(3)[6], =WH6EGM(3)[6],=WH6EHW(3)[6],=WH6EJV(3)[6],=WH6EQB(3)[6],=WH6ESS(3)[6],=WH6ETO(3)[6],=WH6EWE(3)[6], - =WH6FCT(3)[6],=WH6FEU(3)[6],=WH6FJR(3)[6],=WH6FL(3)[6],=WH6FOJ(3)[6],=WH6FPR(3)[6],=WH6FPS(3)[6], - =WH6FQ(3)[6],=WH6GEV(3)[6],=WH6OL(3)[6],=WH6OY(3)[6],=WH6QV(3)[6],=WH6SD(3)[6],=WH6SR(3)[6], - =WH6TI(3)[6],=WH6U(3)[6],=WH6XV(3)[6],=WH6YT(3)[6],=WH6YX(3)[6],=WH6ZR(3)[6],=WH6ZV(3)[6], - =WH7A(3)[6],=WH7CY(3)[6],=WH7DA(3)[6],=WH7DB(3)[6],=WH7DE(3)[6],=WH7G(3)[6],=WH7GC(3)[6], - =WH7GY(3)[6],=WH7HU(3)[6],=WH7LB(3)[6],=WH7NS(3)[6],=WH7P(3)[6],=WH7RG(3)[6],=WH7TC(3)[6], - =WH7U(3)[6],=WH7UP(3)[6],=WH7WP(3)[6],=WH7WT(3)[6],=WH7XP(3)[6],=WH8AAG(3)[6],=WL7AAW(3)[6], - =WL7AL(3)[6],=WL7AP(3)[6],=WL7AQ(3)[6],=WL7AUY(3)[6],=WL7AWD(3)[6],=WL7AZG(3)[6],=WL7AZL(3)[6], - =WL7BCR(3)[6],=WL7BHR(3)[6],=WL7BLM(3)[6],=WL7BM(3)[6],=WL7BNQ(3)[6],=WL7BON(3)[6],=WL7BOO(3)[6], - =WL7BSW(3)[6],=WL7BUI(3)[6],=WL7BVN(3)[6],=WL7BVS(3)[6],=WL7CAZ(3)[6],=WL7CBF(3)[6],=WL7CES(3)[6], - =WL7COQ(3)[6],=WL7CPE(3)[6],=WL7CPI(3)[6],=WL7CQX(3)[6],=WL7CRJ(3)[6],=WL7CSL(3)[6],=WL7CTB(3)[6], - =WL7CTC(3)[6],=WL7CTE(3)[6],=WL7DD(3)[6],=WL7FA(3)[6],=WL7FR(3)[6],=WL7FU(3)[6],=WL7H(3)[6], - =WL7HE(3)[6],=WL7HK(3)[6],=WL7HL(3)[6],=WL7IQ(3)[6],=WL7IS(3)[6],=WL7JM(3)[6],=WL7K(3)[6], - =WL7K/7(3)[6],=WL7K/M(3)[6],=WL7LB(3)[6],=WL7LK(3)[6],=WL7MM(3)[6],=WL7OA(3)[6],=WL7P(3)[6], - =WL7PJ(3)[6],=WL7QC(3)[6],=WL7QX(3)[6],=WL7RV/140(3)[6],=WL7SD(3)[6],=WL7SO(3)[6],=WL7SV(3)[6], - =WL7T(3)[6],=WL7VK(3)[6],=WL7WB(3)[6],=WL7WF(3)[6],=WL7WG(3)[6],=WL7WK(3)[6],=WL7WU(3)[6], - =WL7XE(3)[6],=WL7XJ(3)[6],=WL7XN(3)[6],=WL7XW(3)[6],=WL7Z(3)[6],=WL7ZM(3)[6],=WP2ADG(3)[6], - =WP4BZG(3)[6],=WP4DYP(3)[6],=WP4NBP(3)[6], + =WH6FCT(3)[6],=WH6FEU(3)[6],=WH6FJR(3)[6],=WH6FL(3)[6],=WH6FOJ(3)[6],=WH6FPR(3)[6],=WH6FPV(3)[6], + =WH6FQ(3)[6],=WH6FQK(3)[6],=WH6GEV(3)[6],=WH6OL(3)[6],=WH6OY(3)[6],=WH6QV(3)[6],=WH6SD(3)[6], + =WH6SR(3)[6],=WH6TI(3)[6],=WH6U(3)[6],=WH6XV(3)[6],=WH6YT(3)[6],=WH6YX(3)[6],=WH6ZR(3)[6], + =WH6ZV(3)[6],=WH7A(3)[6],=WH7CY(3)[6],=WH7DA(3)[6],=WH7DB(3)[6],=WH7DE(3)[6],=WH7G(3)[6], + =WH7GC(3)[6],=WH7GY(3)[6],=WH7HU(3)[6],=WH7LB(3)[6],=WH7NS(3)[6],=WH7P(3)[6],=WH7RG(3)[6], + =WH7TC(3)[6],=WH7U(3)[6],=WH7UP(3)[6],=WH7WP(3)[6],=WH7WT(3)[6],=WH7XP(3)[6],=WH8AAG(3)[6], + =WL7AAW(3)[6],=WL7AL(3)[6],=WL7AP(3)[6],=WL7AQ(3)[6],=WL7AUY(3)[6],=WL7AWD(3)[6],=WL7AZG(3)[6], + =WL7AZL(3)[6],=WL7BCR(3)[6],=WL7BHR(3)[6],=WL7BLM(3)[6],=WL7BM(3)[6],=WL7BNQ(3)[6],=WL7BON(3)[6], + =WL7BOO(3)[6],=WL7BSW(3)[6],=WL7BUI(3)[6],=WL7BVN(3)[6],=WL7BVS(3)[6],=WL7CAZ(3)[6],=WL7CBF(3)[6], + =WL7CES(3)[6],=WL7COQ(3)[6],=WL7CPE(3)[6],=WL7CPI(3)[6],=WL7CQX(3)[6],=WL7CRJ(3)[6],=WL7CSL(3)[6], + =WL7CTB(3)[6],=WL7CTC(3)[6],=WL7CTE(3)[6],=WL7DD(3)[6],=WL7FA(3)[6],=WL7FR(3)[6],=WL7FU(3)[6], + =WL7H(3)[6],=WL7HE(3)[6],=WL7HK(3)[6],=WL7HL(3)[6],=WL7IQ(3)[6],=WL7IS(3)[6],=WL7JM(3)[6], + =WL7K(3)[6],=WL7K/7(3)[6],=WL7K/M(3)[6],=WL7LB(3)[6],=WL7LK(3)[6],=WL7MM(3)[6],=WL7OA(3)[6], + =WL7P(3)[6],=WL7PJ(3)[6],=WL7QC(3)[6],=WL7QX(3)[6],=WL7RV/140(3)[6],=WL7SD(3)[6],=WL7SO(3)[6], + =WL7SV(3)[6],=WL7T(3)[6],=WL7VK(3)[6],=WL7WB(3)[6],=WL7WF(3)[6],=WL7WG(3)[6],=WL7WK(3)[6], + =WL7WU(3)[6],=WL7XE(3)[6],=WL7XJ(3)[6],=WL7XN(3)[6],=WL7XW(3)[6],=WL7Z(3)[6],=WL7ZM(3)[6], + =WP2ADG(3)[6],=WP4BZG(3)[6],=WP4DYP(3)[6],=WP4NBP(3)[6], AA8(4)[8],AB8(4)[8],AC8(4)[8],AD8(4)[8],AE8(4)[8],AF8(4)[8],AG8(4)[8],AI8(4)[8],AJ8(4)[8], AK8(4)[8],K8(4)[8],KA8(4)[8],KB8(4)[8],KC8(4)[8],KD8(4)[8],KE8(4)[8],KF8(4)[8],KG8(4)[8], KI8(4)[8],KJ8(4)[8],KK8(4)[8],KM8(4)[8],KN8(4)[8],KO8(4)[8],KQ8(4)[8],KR8(4)[8],KS8(4)[8], @@ -1598,19 +1609,19 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: NW8(4)[8],NX8(4)[8],NY8(4)[8],NZ8(4)[8],W8(4)[8],WA8(4)[8],WB8(4)[8],WC8(4)[8],WD8(4)[8], WE8(4)[8],WF8(4)[8],WG8(4)[8],WI8(4)[8],WJ8(4)[8],WK8(4)[8],WM8(4)[8],WN8(4)[8],WO8(4)[8], WQ8(4)[8],WR8(4)[8],WS8(4)[8],WT8(4)[8],WU8(4)[8],WV8(4)[8],WW8(4)[8],WX8(4)[8],WY8(4)[8], - WZ8(4)[8],=AH2AR(4)[8],=AH2AV(4)[8],=AH2JD(4)[8],=AH6AO(4)[8],=AH6MQ(4)[8],=AL4E(4)[8], - =AL7AH(4)[8],=AL7BA/8(4)[8],=AL7GI(4)[8],=AL7GI/8(4)[8],=AL7J/8(4)[8],=AL7OP(4)[8],=KH2AP(4)[8], - =KH6BZF/8(4)[8],=KH6DHK(4)[8],=KH6IK(4)[8],=KH6ILT(4)[8],=KH6SM(4)[8],=KH7DK(4)[8],=KH7SP(4)[8], - =KL0DN(4)[8],=KL0NR(4)[8],=KL0PD(4)[8],=KL0PE(4)[8],=KL2NI(4)[8],=KL2PS(4)[8],=KL2WF(4)[8], - =KL2YU(4)[8],=KL3DA(4)[8],=KL3HQ(4)[8],=KL4PQ(4)[8],=KL5A(4)[8],=KL7DS(4)[8],=KL7FHI(4)[8], - =KL7FHK(4)[8],=KL7GF(4)[8],=KL7IKR(4)[8],=KL7OG(4)[8],=KL7RF(4)[8],=KL7RF/8(4)[8],=KL7SW(4)[8], - =KL8X(4)[8],=KL9A/8(4)[8],=KP2RF(4)[8],=KP4AKB(4)[8],=KP4AMZ(4)[8],=KP4AQI(4)[8],=KP4E(4)[8], - =KP4MAS(4)[8],=KP4VZ(4)[8],=KP4ZD(4)[8],=NH6CN(4)[8],=NH6CN/8(4)[8],=NL7CF(4)[8],=NL7FK(4)[8], - =NP2AK(4)[8],=NP2F(4)[8],=NP3NA(4)[8],=NP4C/8(4)[8],=VE3ACW/M(4)[8],=WH2U(4)[8],=WH6BCB(4)[8], - =WH6CYR(4)[8],=WH6E(4)[8],=WH6E/8(4)[8],=WH6EBA(4)[8],=WH6EJD(4)[8],=WH6EWB(4)[8],=WH6TB(4)[8], - =WL7AGO(4)[8],=WL7AM(4)[8],=WL7BKR(4)[8],=WL7CMV(4)[8],=WL7GG(4)[8],=WL7HC(4)[8],=WL7OS(4)[8], - =WL7OT(4)[8],=WP3KU(4)[8],=WP3S(4)[8],=WP4HJF(4)[8],=WP4IJK(4)[8],=WP4MWB(4)[8],=WP4NAE(4)[8], - =WP4NYQ(4)[8],=WP4PLR(4)[8], + WZ8(4)[8],=AH2AR(4)[8],=AH2AV(4)[8],=AH2JD(4)[8],=AH6AO(4)[8],=AH6MQ(4)[8],=AH8AH(4)[8], + =AL4E(4)[8],=AL7AH(4)[8],=AL7BA/8(4)[8],=AL7GI(4)[8],=AL7GI/8(4)[8],=AL7J/8(4)[8],=AL7OP(4)[8], + =KH2AP(4)[8],=KH6BZF/8(4)[8],=KH6DHK(4)[8],=KH6IK(4)[8],=KH6ILT(4)[8],=KH6SM(4)[8],=KH7DK(4)[8], + =KH7SP(4)[8],=KL0DN(4)[8],=KL0NR(4)[8],=KL0PD(4)[8],=KL0PE(4)[8],=KL2NI(4)[8],=KL2PS(4)[8], + =KL2WF(4)[8],=KL2YU(4)[8],=KL3DA(4)[8],=KL3HQ(4)[8],=KL4PQ(4)[8],=KL5A(4)[8],=KL7DS(4)[8], + =KL7FHI(4)[8],=KL7FHK(4)[8],=KL7GF(4)[8],=KL7IKR(4)[8],=KL7IYK(4)[8],=KL7IYK/8(4)[8],=KL7OG(4)[8], + =KL7RF(4)[8],=KL7RF/8(4)[8],=KL7SW(4)[8],=KL8X(4)[8],=KL9A/8(4)[8],=KP2RF(4)[8],=KP4AKB(4)[8], + =KP4AMZ(4)[8],=KP4AQI(4)[8],=KP4E(4)[8],=KP4MAS(4)[8],=KP4VZ(4)[8],=KP4ZD(4)[8],=NH6CN(4)[8], + =NH6CN/8(4)[8],=NL7CF(4)[8],=NL7FK(4)[8],=NP2AK(4)[8],=NP2F(4)[8],=NP3NA(4)[8],=NP4C/8(4)[8], + =VE3ACW/M(4)[8],=WH2U(4)[8],=WH6BCB(4)[8],=WH6CYR(4)[8],=WH6E(4)[8],=WH6E/8(4)[8],=WH6EBA(4)[8], + =WH6EJD(4)[8],=WH6EWB(4)[8],=WH6TB(4)[8],=WL7AGO(4)[8],=WL7AM(4)[8],=WL7BKR(4)[8],=WL7CMV(4)[8], + =WL7GG(4)[8],=WL7HC(4)[8],=WL7OS(4)[8],=WL7OT(4)[8],=WP3KU(4)[8],=WP3S(4)[8],=WP4HJF(4)[8], + =WP4IJK(4)[8],=WP4MWB(4)[8],=WP4NAE(4)[8],=WP4NYQ(4)[8],=WP4PLR(4)[8], AA9(4)[8],AB9(4)[8],AC9(4)[8],AD9(4)[8],AE9(4)[8],AF9(4)[8],AG9(4)[8],AI9(4)[8],AJ9(4)[8], AK9(4)[8],K9(4)[8],KA9(4)[8],KB9(4)[8],KC9(4)[8],KD9(4)[8],KE9(4)[8],KF9(4)[8],KG9(4)[8], KI9(4)[8],KJ9(4)[8],KK9(4)[8],KM9(4)[8],KN9(4)[8],KO9(4)[8],KQ9(4)[8],KR9(4)[8],KS9(4)[8], @@ -1623,39 +1634,42 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: WZ9(4)[8],=AH0AJ(4)[8],=AH6DA(4)[8],=AH6EZ/9(4)[8],=AH6OM(4)[8],=AH6YL(4)[8],=AL1CE(4)[8], =AL7AK(4)[8],=AL7AK/9(4)[8],=AL7BT(4)[8],=AL7CV(4)[8],=AL7DS(4)[8],=AL7II/9(4)[8],=AL7OL(4)[8], =AL7PM(4)[8],=AL7RH(4)[8],=KH0BE(4)[8],=KH2RP(4)[8],=KH6JNY(4)[8],=KH6KI(4)[8],=KH6UX(4)[8], - =KH7DR(4)[8],=KH7EI(4)[8],=KH7ZT(4)[8],=KL0LB(4)[8],=KL0NY(4)[8],=KL1NO(4)[8],=KL1NR(4)[8], - =KL1QN(4)[8],=KL1US(4)[8],=KL2A/9(4)[8],=KL2KP(4)[8],=KL2NQ(4)[8],=KL2UY(4)[8],=KL2YD(4)[8], - =KL2ZL(4)[8],=KL4CX(4)[8],=KL7AL(4)[8],=KL7AL/9(4)[8],=KL7BGR(4)[8],=KL7CE(4)[8],=KL7CE/9(4)[8], - =KL7IBV(4)[8],=KL7IKP(4)[8],=KL7IPS(4)[8],=KL7IVK(4)[8],=KL7JAB(4)[8],=KL7MU(4)[8],=KL7TD(4)[8], - =KP2XX(4)[8],=KP3JOS(4)[8],=KP3VA/M(4)[8],=KP4CI(4)[8],=KP4GE/9(4)[8],=KP4NKE(4)[8],=KP4SL(4)[8], - =KP4WG(4)[8],=NH2W(4)[8],=NH2W/9(4)[8],=NH6R(4)[8],=NH7TK(4)[8],=NL7CM(4)[8],=NL7KD(4)[8], - =NL7NK(4)[8],=NL7QC(4)[8],=NL7QC/9(4)[8],=NL7RC(4)[8],=NL7UH(4)[8],=NL7YI(4)[8],=NP2AV(4)[8], - =NP2GM(4)[8],=NP2L/9(4)[8],=NP2MU(4)[8],=NP3QC(4)[8],=NP4ZI(4)[8],=WH0AI(4)[8],=WH2T(4)[8], - =WH6ERQ(4)[8],=WH6FBA(4)[8],=WH6SB(4)[8],=WL7AHP(4)[8],=WL7AIT(4)[8],=WL7BEV(4)[8],=WL7CTA(4)[8], - =WL7FJ(4)[8],=WL7JAN(4)[8],=WL7NP(4)[8],=WL7UU(4)[8],=WP4JSP(4)[8],=WP4LKY(4)[8],=WP4LSQ(4)[8], - =WP4MQX(4)[8],=WP4MSD(4)[8],=WP4MTN(4)[8],=WP4MVQ(4)[8],=WP4MXP(4)[8],=WP4MYL(4)[8],=WP4OCZ(4)[8], + =KH7DR(4)[8],=KH7EI(4)[8],=KH7ZT(4)[8],=KL0LB(4)[8],=KL0NY(4)[8],=KL0XT(4)[8],=KL1NO(4)[8], + =KL1NR(4)[8],=KL1QN(4)[8],=KL1US(4)[8],=KL2A/9(4)[8],=KL2KP(4)[8],=KL2NQ(4)[8],=KL2UY(4)[8], + =KL2YD(4)[8],=KL2ZL(4)[8],=KL4CX(4)[8],=KL7AL(4)[8],=KL7AL/9(4)[8],=KL7BGR(4)[8],=KL7CE(4)[8], + =KL7CE/9(4)[8],=KL7IBV(4)[8],=KL7IKP(4)[8],=KL7IPS(4)[8],=KL7IVK(4)[8],=KL7JAB(4)[8],=KL7MU(4)[8], + =KL7TD(4)[8],=KP2XX(4)[8],=KP3JOS(4)[8],=KP3VA/M(4)[8],=KP4CI(4)[8],=KP4GE/9(4)[8],=KP4NKE(4)[8], + =KP4SL(4)[8],=KP4WG(4)[8],=NH2W(4)[8],=NH2W/9(4)[8],=NH6R(4)[8],=NH7TK(4)[8],=NL7CM(4)[8], + =NL7KD(4)[8],=NL7NK(4)[8],=NL7QC(4)[8],=NL7QC/9(4)[8],=NL7RC(4)[8],=NL7UH(4)[8],=NL7YI(4)[8], + =NP2AV(4)[8],=NP2DK(4)[8],=NP2GM(4)[8],=NP2L/9(4)[8],=NP2MU(4)[8],=NP3QC(4)[8],=NP4ZI(4)[8], + =WH0AI(4)[8],=WH2T(4)[8],=WH6ERQ(4)[8],=WH6FBA(4)[8],=WH6SB(4)[8],=WL7AHP(4)[8],=WL7AIT(4)[8], + =WL7BEV(4)[8],=WL7CTA(4)[8],=WL7FJ(4)[8],=WL7JAN(4)[8],=WL7NP(4)[8],=WL7UU(4)[8],=WP4JSP(4)[8], + =WP4LKY(4)[8],=WP4LSQ(4)[8],=WP4MQX(4)[8],=WP4MSD(4)[8],=WP4MTN(4)[8],=WP4MVQ(4)[8],=WP4MXP(4)[8], + =WP4MYL(4)[8],=WP4OCZ(4)[8], =AH2BG(4)[8],=AH2CF(4)[8],=AH6ES(4)[8],=AH6FF(4)[8],=AH6HR(4)[8],=AH6HR/4(4)[8],=AH6KB(4)[8], =AL0P(4)[8],=AL2C(4)[8],=AL2F(4)[8],=AL2F/4(4)[8],=AL4B(4)[8],=AL7CX(4)[8],=AL7EU(4)[8], =AL7JN(4)[8],=AL7KN(4)[8],=AL7LP(4)[8],=AL7MR(4)[8],=AL7QO(4)[8],=KH0UN(4)[8],=KH2AR(4)[8], - =KH2AR/4(4)[8],=KH2DN(4)[8],=KH4AF(4)[8],=KH6EO(4)[8],=KH6JQW(4)[8],=KH6KM(4)[8],=KH6OE(4)[8], - =KH6RD(4)[8],=KH6RD/4(4)[8],=KH6SKY(4)[8],=KH6SKY/4(4)[8],=KH7JM(4)[8],=KH7UB(4)[8],=KL0AH(4)[8], - =KL0BX(4)[8],=KL0CP(4)[8],=KL0ET(4)[8],=KL0ET/M(4)[8],=KL0EY(4)[8],=KL0FF(4)[8],=KL0GI(4)[8], - =KL0LN(4)[8],=KL0PM(4)[8],=KL0VH(4)[8],=KL1DN(4)[8],=KL1IG(4)[8],=KL1LV(4)[8],=KL1SE(4)[8], - =KL1SE/4(4)[8],=KL1ZA(4)[8],=KL2GB(4)[8],=KL2HK(4)[8],=KL2LK(4)[8],=KL2LU(4)[8],=KL2TD(4)[8], - =KL3PG(4)[8],=KL3PV(4)[8],=KL3RA(4)[8],=KL4KA(4)[8],=KL4WV(4)[8],=KL7DT/4(4)[8],=KL7FO/P(4)[8], - =KL7GN/M(4)[8],=KL7IUQ(4)[8],=KL7JKC(4)[8],=KL7LT(4)[8],=KL7WW(4)[8],=KL7YN(4)[8],=KL7YT(4)[8], - =KL9MEK(4)[8],=KP3RC(4)[8],=KP4TOM(4)[8],=NH2E(4)[8],=NH6T/4(4)[8],=NH7FK(4)[8],=NH7FL(4)[8], - =NH7H(4)[8],=NL7OE(4)[8],=NL7YU(4)[8],=NP3FB(4)[8],=NP4AC(4)[8],=NP4AC/4(4)[8],=WH6AUL(4)[8], - =WH6BPL/4(4)[8],=WH6DM(4)[8],=WH6EOG(4)[8],=WH6EQW(4)[8],=WH6FEJ(4)[8],=WH6LAK(4)[8],=WH6OR(4)[8], - =WH6Q/4(4)[8],=WL4B(4)[8],=WL7BHI(4)[8],=WL7BHJ(4)[8],=WL7CQH(4)[8],=WL7CQK(4)[8],=WL7IP(4)[8], - =WL7PC(4)[8],=WL7SF(4)[8],=WL7TD(4)[8],=WL7XZ(4)[8],=WP4CNA(4)[8],=WP4XF(4)[8], - =AL7AU(4)[7],=AL7NI(4)[7],=AL7RT(4)[7],=AL7RT/7(4)[7],=KH2BR/7(4)[7],=KH6JVF(4)[7],=KH6OZ(4)[7], - =KH7SS(4)[7],=KL0NT(4)[7],=KL0NV(4)[7],=KL0RN(4)[7],=KL0TF(4)[7],=KL1HE(4)[7],=KL1MW(4)[7], - =KL1TV(4)[7],=KL2NZ(4)[7],=KL4CZ(4)[7],=KL7AR(4)[7],=KL7HF(4)[7],=KL7HSG(4)[7],=KL7JGS(4)[7], - =KL7JGS/M(4)[7],=KL7JM(4)[7],=KL7JUL(4)[7],=KL7LH(4)[7],=KL7MVX(4)[7],=KL7YY/7(4)[7],=KL9A(4)[7], - =KL9A/7(4)[7],=NH0E(4)[7],=NH6HW(4)[7],=NL7IH(4)[7],=NL7MW(4)[7],=NL7UI(4)[7],=WH2M(4)[7], - =WH6COM(4)[7],=WH6ETU(4)[7],=WH6EVP(4)[7],=WL7A(4)[7],=WL7DP(4)[7],=WL7HP/7(4)[7],=WL7I(4)[7], - =AL7LU(5)[8],=KL7JFR(5)[8],=WP4GR(5)[8]; + =KH2AR/4(4)[8],=KH2DN(4)[8],=KH2EP(4)[8],=KH4AF(4)[8],=KH6EO(4)[8],=KH6JQW(4)[8],=KH6KM(4)[8], + =KH6OE(4)[8],=KH6RD(4)[8],=KH6RD/4(4)[8],=KH6SKY(4)[8],=KH6SKY/4(4)[8],=KH7JM(4)[8],=KH7UB(4)[8], + =KL0AH(4)[8],=KL0BX(4)[8],=KL0CP(4)[8],=KL0ET(4)[8],=KL0ET/M(4)[8],=KL0EY(4)[8],=KL0FF(4)[8], + =KL0GI(4)[8],=KL0LN(4)[8],=KL0PM(4)[8],=KL0VH(4)[8],=KL1DN(4)[8],=KL1IG(4)[8],=KL1LV(4)[8], + =KL1SE(4)[8],=KL1SE/4(4)[8],=KL1ZA(4)[8],=KL2GB(4)[8],=KL2HK(4)[8],=KL2LK(4)[8],=KL2LU(4)[8], + =KL2TD(4)[8],=KL3PG(4)[8],=KL3PV(4)[8],=KL3RA(4)[8],=KL4KA(4)[8],=KL4WV(4)[8],=KL7DT/4(4)[8], + =KL7FO/P(4)[8],=KL7GN/M(4)[8],=KL7IUQ(4)[8],=KL7JKC(4)[8],=KL7LT(4)[8],=KL7WW(4)[8],=KL7YN(4)[8], + =KL7YT(4)[8],=KL9MEK(4)[8],=KP3RC(4)[8],=KP4TOM(4)[8],=NH2E(4)[8],=NH6T/4(4)[8],=NH7FK(4)[8], + =NH7FL(4)[8],=NH7H(4)[8],=NL7OE(4)[8],=NL7YU(4)[8],=NP2KS(4)[8],=NP3FB(4)[8],=NP4AC(4)[8], + =NP4AC/4(4)[8],=WH6AUL(4)[8],=WH6BPL/4(4)[8],=WH6DM(4)[8],=WH6EOG(4)[8],=WH6EQW(4)[8], + =WH6FEJ(4)[8],=WH6LAK(4)[8],=WH6OR(4)[8],=WH6Q/4(4)[8],=WL4B(4)[8],=WL7BHI(4)[8],=WL7BHJ(4)[8], + =WL7CQH(4)[8],=WL7CQK(4)[8],=WL7IP(4)[8],=WL7PC(4)[8],=WL7SF(4)[8],=WL7TD(4)[8],=WL7XZ(4)[8], + =WP3IK(4)[8],=WP4CNA(4)[8],=WP4XF(4)[8], + =AL1VE/R(4)[7],=AL7AU(4)[7],=AL7NI(4)[7],=AL7RT(4)[7],=AL7RT/7(4)[7],=KH2BR/7(4)[7],=KH6JVF(4)[7], + =KH6OZ(4)[7],=KH7AL(4)[7],=KH7SS(4)[7],=KL0NT(4)[7],=KL0NV(4)[7],=KL0RN(4)[7],=KL0TF(4)[7], + =KL1HE(4)[7],=KL1MW(4)[7],=KL1TV(4)[7],=KL2NZ(4)[7],=KL4CZ(4)[7],=KL7AR(4)[7],=KL7HF(4)[7], + =KL7HSG(4)[7],=KL7JGS(4)[7],=KL7JGS/M(4)[7],=KL7JM(4)[7],=KL7JUL(4)[7],=KL7LH(4)[7],=KL7MVX(4)[7], + =KL7YY/7(4)[7],=KL9A(4)[7],=KL9A/7(4)[7],=NH0E(4)[7],=NH6HW(4)[7],=NL7IH(4)[7],=NL7MW(4)[7], + =NL7UI(4)[7],=WH2M(4)[7],=WH6COM(4)[7],=WH6ETU(4)[7],=WH6EVP(4)[7],=WL7A(4)[7],=WL7DP(4)[7], + =WL7HP/7(4)[7],=WL7I(4)[7], + =AL7LU(5)[8],=KL7JFR(5)[8]; Guantanamo Bay: 08: 11: NA: 20.00: 75.00: 5.0: KG4: KG4,=KG44WW,=KG4AC,=KG4AS,=KG4AW,=KG4AY,=KG4BP,=KG4DY,=KG4EM,=KG4EU,=KG4HF,=KG4HH,=KG4LA,=KG4LB, =KG4MA,=KG4NE,=KG4SC,=KG4SS,=KG4WH,=KG4WV,=KG4XP,=KG4ZK,=W1AW/KG4; @@ -1669,11 +1683,11 @@ Baker & Howland Islands: 31: 61: OC: 0.00: 176.00: 12.0: KH1: AH1,KH1,NH1,WH1; Guam: 27: 64: OC: 13.37: -144.70: -10.0: KH2: AH2,KH2,NH2,WH2,=AB2AB,=AB8EW,=AC0FG,=AC7WL,=AE6QZ,=AE7CA,=AH0AX,=AH0F,=AH0FM,=AH0S,=AI6ID,=AJ6JF, - =K1IWD,=K2QGC,=K4QFS,=K5GUA,=K5GUM,=KA0RU,=KA1I,=KA6BEG,=KB7OVT,=KB7PQU,=KC2OOX,=KD7IRV,=KE4YSP, - =KE7GMC,=KE7IPG,=KF4UFC,=KF5ULC,=KF7BMU,=KG4BKW,=KG6AGT,=KG6ARL,=KG6DX,=KG6FJG,=KG6JDX,=KG6JKR, - =KG6JKT,=KG6TWZ,=KH0DX,=KH0ES,=KH0TF,=KH0UM,=KH6KK,=KI4KKH,=KI4KKI,=KI7SSW,=KJ6AYQ,=KJ6KCJ, - =KK6GVF,=KK7AV,=KM4NVB,=KN4IAS,=KN4LVP,=N0RY,=N2MI,=N5ATC,=NH0A,=NH0B,=NH0Q,=NH7TL,=NP3EZ,=W5LFA, - =W6KV,=W7GVC,=W9MRE,=WA3KNB,=WB7AXZ,=WD6DGS,=WH0AC; + =K1IWD,=K2QGC,=K4QFS,=K5GUA,=K5GUM,=KA0RU,=KA1I,=KA6BEG,=KB7OVT,=KB7PQU,=KC2OOX,=KD0AA,=KD7IRV, + =KE4YSP,=KE7GMC,=KE7IPG,=KF4UFC,=KF5ULC,=KF7BMU,=KG4BKW,=KG6AGT,=KG6ARL,=KG6DX,=KG6FJG,=KG6JDX, + =KG6JKR,=KG6JKT,=KG6TWZ,=KH0DX,=KH0ES,=KH0TF,=KH0UM,=KH6KK,=KI4KKH,=KI4KKI,=KI7SSW,=KJ6AYQ, + =KJ6KCJ,=KK6GVF,=KK7AV,=KM4NVB,=KN4IAS,=KN4LVP,=N0RY,=N2MI,=N5ATC,=NH0A,=NH0B,=NH0Q,=NH7TL,=NP3EZ, + =W5LFA,=W6KV,=W7GVC,=W9MRE,=WA3KNB,=WB7AXZ,=WD6DGS,=WH0AC; Johnston Island: 31: 61: OC: 16.72: 169.53: 10.0: KH3: AH3,KH3,NH3,WH3,=KJ6BZ; Midway Island: 31: 61: OC: 28.20: 177.37: 11.0: KH4: @@ -1681,57 +1695,58 @@ Midway Island: 31: 61: OC: 28.20: 177.37: 11.0: KH4: Palmyra & Jarvis Islands: 31: 61: OC: 5.87: 162.07: 11.0: KH5: AH5,KH5,NH5,WH5; Hawaii: 31: 61: OC: 21.12: 157.48: 10.0: KH6: - AH6,AH7,KH6,KH7,NH6,NH7,WH6,WH7,=AA7LE,=AA8JA,=AB0JM,=AB3WS,=AB4CO,=AB6AP,=AB8VQ,=AC4PJ,=AC4TJ, - =AC9PT,=AE3TT,=AE5AB,=AE5LR,=AG4FH,=AH0A,=AH0AG,=AH2CC,=AH2CN,=AJ0M,=AJ8HT,=AK2J,=AL3U,=AL7RQ, - =K0BAD,=K0LAS,=K0LIH,=K0LUC,=K0OUS,=K1ENT,=K1ER,=K1HZM,=K1OSP,=K1OWL,=K1RJ,=K1VAN,=K2FFT,=K2GT, - =K3NW,=K3UNS,=K4AJQ,=K4EVR,=K4RAC,=K4UAI,=K4UHL,=K4XSS,=K4XV,=K5HQM,=K5ZAI,=K5ZYO,=K6AMA,=K6APP, - =K6BU,=K6CEE,=K6GJS,=K6GUY,=K6HI,=K6HNL,=K6JAE,=K6KKW,=K6LN,=K6NLF,=K6RSB,=K7ALH,=K7ASH,=K7FAR, - =K7FR,=K7NRJ,=K7QAS,=K7ZOX,=K8EUT,=K9AGI,=K9FD,=K9UBS,=KA0FOR,=KA0VHP,=KA1ICJ,=KA1YJ,=KA2IXG, - =KA2WXU,=KA3HIZ,=KA3TUA,=KA4INK,=KA4SBE,=KA6QOD,=KA6SVW,=KA7APU,=KA7BSK,=KA7RKW,=KA8EBL,=KA8KND, - =KA9DMP,=KB0DJR,=KB0PXK,=KB0ZKZ,=KB1EUJ,=KB1GC,=KB1PCX,=KB1UHL,=KB2MRY,=KB3DMT,=KB3FDP,=KB3HXI, - =KB3IOC,=KB3OXU,=KB3PJS,=KB3SEV,=KB4NGN,=KB5HVJ,=KB5NNY,=KB5OWT,=KB5OXR,=KB6CNU,=KB6EGA,=KB6INB, - =KB6PKF,=KB6SWL,=KB7AKH,=KB7AKQ,=KB7DDX,=KB7EA,=KB7G,=KB7JB,=KB7LPW,=KB7MEU,=KB7QKJ,=KB7UQH, - =KB7UVR,=KB7WDC,=KB7WUP,=KB8SKX,=KC0WQU,=KC0YIH,=KC0ZER,=KC1DBY,=KC2CLQ,=KC2GSU,=KC2HL,=KC2MIU, - =KC2PGW,=KC2SRW,=KC2YL,=KC2ZSG,=KC2ZSH,=KC2ZSI,=KC3GZT,=KC4HHS,=KC5GAX,=KC6HOX,=KC6QQI,=KC6RYQ, - =KC6SHT,=KC6SWR,=KC6YIO,=KC7ASJ,=KC7AXX,=KC7DUT,=KC7EJC,=KC7HNC,=KC7KAT,=KC7KAW,=KC7KBA,=KC7KHW, - =KC7KJT,=KC7LFM,=KC7NZ,=KC7PLG,=KC7USA,=KC7VHF,=KC7VWU,=KC7YXO,=KC8EFI,=KC8EJ,=KC9AUA,=KC9EQS, - =KC9KEX,=KC9NJG,=KC9SBG,=KD0JNO,=KD0OXU,=KD0QLQ,=KD0QLR,=KD0RPD,=KD0WVZ,=KD0ZSP,=KD3FZ,=KD4GVR, - =KD4GW,=KD4ML,=KD4NFW,=KD4QWO,=KD5BSK,=KD5HDA,=KD5HX,=KD5TBQ,=KD6CVU,=KD6CWF,=KD6EPD,=KD6IPX, - =KD6LRA,=KD6NVX,=KD6VTU,=KD7GWI,=KD7GWM,=KD7HTG,=KD7KFT,=KD7LMP,=KD7SME,=KD7SMV,=KD7TZ,=KD7UV, - =KD7UZG,=KD7WJM,=KD8GVO,=KD8LYB,=KE0JSB,=KE0KIE,=KE0TU,=KE2CX,=KE4DYE,=KE4RNU,=KE4UXQ,=KE4ZXQ, - =KE5CGA,=KE5FJM,=KE5UZN,=KE5VQB,=KE6AHX,=KE6AXN,=KE6AXP,=KE6AYZ,=KE6CQE,=KE6EDJ,=KE6EVT,=KE6JXO, - =KE6MKW,=KE6RAW,=KE6TFR,=KE6TIS,=KE6TIX,=KE6TKQ,=KE7FJA,=KE7FSK,=KE7HEW,=KE7IZS,=KE7JTX,=KE7KRQ, - =KE7LWN,=KE7MW,=KE7PEQ,=KE7PIZ,=KE7QML,=KE7RCT,=KE7UAJ,=KE7UV,=KE7UW,=KF4DWA,=KF4FQR,=KF4IBW, - =KF4JLZ,=KF4OOB,=KF4SGA,=KF4UJC,=KF4URD,=KF4VHS,=KF5AHW,=KF5MXM,=KF5MXP,=KF6BS,=KF6FDG,=KF6IVV, - =KF6LWN,=KF6LYU,=KF6MQT,=KF6OSA,=KF6PJ,=KF6PQE,=KF6QZD,=KF6RLP,=KF6YZR,=KF6ZAL,=KF6ZVS,=KF7GNP, - =KF7LRS,=KF7OJR,=KF7TUU,=KF7VUK,=KG0XR,=KG4CAN,=KG4FJB,=KG4HZF,=KG4SGC,=KG4SGV,=KG4TZD,=KG5CH, - =KG5CNO,=KG5IVP,=KG6DV,=KG6HRX,=KG6IER,=KG6IGY,=KG6JJP,=KG6LFX,=KG6MZJ,=KG6NNF,=KG6NQI,=KG6OOB, - =KG6RJI,=KG6SDD,=KG6TFI,=KG6WZD,=KG6ZRY,=KG7AYU,=KG7CJI,=KG7EUP,=KG7ZJM,=KG9MDR,=KH0AI,=KH0HL, - =KH0WJ,=KH2DC,=KH2MD,=KH2TD,=KH2TE,=KH2YI,=KH3AE,=KH3AE/M,=KH3AF,=KH8Z,=KI4CAU,=KI4HCZ,=KI4NOH, - =KI4YAF,=KI4YOG,=KI6CRL,=KI6DVJ,=KI6EFY,=KI6FTE,=KI6HBZ,=KI6JEC,=KI6LPT,=KI6NOC,=KI6QDQ,=KI6QQJ, - =KI6SNP,=KI6VYB,=KI6WOJ,=KI6ZRV,=KI7AUZ,=KI7EZG,=KI7FJW,=KI7FJX,=KI7FUT,=KI7OS,=KI7QZQ,=KJ4BHO, - =KJ4EYV,=KJ4KND,=KJ4WOI,=KJ6COM,=KJ6CQT,=KJ6FDF,=KJ6GYD,=KJ6LAW,=KJ6LAX,=KJ6LBI,=KJ6NZH,=KJ6QQT, - =KJ6RGW,=KJ6TJZ,=KK4EEC,=KK4RNF,=KK6BRW,=KK6EJ,=KK6GM,=KK6OMX,=KK6PGA,=KK6QAI,=KK6RM,=KK6VJN, - =KK6ZQ,=KK6ZZE,=KK7WR,=KL0TK,=KL1TP,=KL3FN,=KL3JC,=KL7PN,=KL7UB,=KL7XT,=KM4IP,=KM6IK,=KM6RM, - =KM6RWE,=KM6UVP,=KN6BE,=KN6ZU,=KN8AQR,=KO6KW,=KO6QT,=KQ6CD,=KQ6M,=KR1LLR,=KU4OY,=KW4JC,=KX6RTG, + AH6,AH7,KH6,KH7,NH6,NH7,WH6,WH7,=AA7FL,=AA7LE,=AA8JA,=AB0JM,=AB3WS,=AB4CO,=AB6AP,=AB8VQ,=AC4PJ, + =AC4TJ,=AC9PT,=AE3TT,=AE5AB,=AE5LR,=AG4FH,=AH0A,=AH0AG,=AH2CC,=AH2CN,=AJ0M,=AJ8HT,=AK2J,=AL3U, + =AL6D,=AL7RQ,=K0BAD,=K0LAS,=K0LIH,=K0LUC,=K0OUS,=K1ENT,=K1ER,=K1HZM,=K1OSP,=K1OWL,=K1RJ,=K1VAN, + =K2FFT,=K2GT,=K3NW,=K3UNS,=K4AJQ,=K4EVR,=K4RAC,=K4UAI,=K4UHL,=K4XV,=K5HQM,=K5PKT,=K5ZAI,=K5ZYO, + =K6AMA,=K6APP,=K6BU,=K6CEE,=K6GJS,=K6GUY,=K6HI,=K6HNL,=K6JAE,=K6KKW,=K6LN,=K6RSB,=K7ALH,=K7ASH, + =K7NRJ,=K7QAS,=K7ZOX,=K8EUT,=K9AGI,=K9FD,=K9UBS,=KA0FOR,=KA0VHP,=KA1ICJ,=KA1YJ,=KA2IXG,=KA2WXU, + =KA3HIZ,=KA3TUA,=KA4INK,=KA4SBE,=KA6QOD,=KA6SVW,=KA7APU,=KA7BSK,=KA7RKW,=KA8EBL,=KA8KND,=KA9DMP, + =KB0DJR,=KB0PXK,=KB0ZKZ,=KB1EUJ,=KB1GC,=KB1KAC,=KB1PCX,=KB1UHL,=KB2MRY,=KB3DMT,=KB3FDP,=KB3HXI, + =KB3IOC,=KB3OXU,=KB3PJS,=KB3SEV,=KB4NGN,=KB5HVJ,=KB5MTI,=KB5NNY,=KB5OWT,=KB5OXR,=KB6CNU,=KB6EGA, + =KB6INB,=KB6PKF,=KB6SWL,=KB7AKH,=KB7AKQ,=KB7DDX,=KB7EA,=KB7G,=KB7JB,=KB7LPW,=KB7MEU,=KB7QKJ, + =KB7UQH,=KB7UVR,=KB7WDC,=KB7WUP,=KB8SKX,=KC0HFI,=KC0WQU,=KC0YIH,=KC0ZER,=KC1DBY,=KC2CLQ,=KC2GSU, + =KC2HL,=KC2MIU,=KC2PGW,=KC2SRW,=KC2YL,=KC2ZSG,=KC2ZSH,=KC2ZSI,=KC3GZT,=KC4HHS,=KC5GAX,=KC6HOX, + =KC6MCC,=KC6QQI,=KC6RYQ,=KC6SHT,=KC6SWR,=KC6YIO,=KC7ASJ,=KC7AXX,=KC7DUT,=KC7EJC,=KC7HNC,=KC7KAT, + =KC7KAW,=KC7KBA,=KC7KHW,=KC7KJT,=KC7LFM,=KC7NZ,=KC7PLG,=KC7USA,=KC7VHF,=KC7VWU,=KC7YXO,=KC8EFI, + =KC8EJ,=KC8JNV,=KC9AUA,=KC9EQS,=KC9KEX,=KC9NJG,=KC9SBG,=KD0JNO,=KD0OXU,=KD0QLQ,=KD0QLR,=KD0RPD, + =KD0WVZ,=KD0ZSP,=KD3FZ,=KD4GVR,=KD4GW,=KD4ML,=KD4NFW,=KD4QWO,=KD5BSK,=KD5HDA,=KD5HX,=KD5TBQ, + =KD6CVU,=KD6CWF,=KD6EPD,=KD6IPX,=KD6LRA,=KD6NVX,=KD6VTU,=KD7GWI,=KD7GWM,=KD7HTG,=KD7KFT,=KD7LMP, + =KD7SME,=KD7SMV,=KD7TZ,=KD7UV,=KD7UZG,=KD7WJM,=KD8GVO,=KD8LYB,=KE0JSB,=KE0KIE,=KE0TU,=KE2CX, + =KE4DYE,=KE4RNU,=KE4UXQ,=KE4ZXQ,=KE5CGA,=KE5FJM,=KE5UZN,=KE5VQB,=KE6AHX,=KE6AXN,=KE6AXP,=KE6AYZ, + =KE6CQE,=KE6EDJ,=KE6EVT,=KE6JXO,=KE6MKW,=KE6RAW,=KE6TFR,=KE6TIS,=KE6TIX,=KE6TKQ,=KE7FJA,=KE7FSK, + =KE7HEW,=KE7IZS,=KE7JTX,=KE7KRQ,=KE7LWN,=KE7MW,=KE7PEQ,=KE7PIZ,=KE7QML,=KE7RCT,=KE7UAJ,=KE7UV, + =KE7UW,=KF4DWA,=KF4FQR,=KF4IBW,=KF4JLZ,=KF4OOB,=KF4SGA,=KF4UJC,=KF4URD,=KF4VHS,=KF5AHW,=KF5MXM, + =KF5MXP,=KF6BS,=KF6FDG,=KF6IVV,=KF6LWN,=KF6LYU,=KF6MQT,=KF6OHL,=KF6OSA,=KF6PJ,=KF6PQE,=KF6QZD, + =KF6RLP,=KF6YZR,=KF6ZAL,=KF6ZVS,=KF7GNP,=KF7LRS,=KF7OJR,=KF7TUU,=KF7VUK,=KG0XR,=KG4CAN,=KG4FJB, + =KG4HZF,=KG4JKJ,=KG4SGC,=KG4SGV,=KG4TZD,=KG5CH,=KG5CNO,=KG5IVP,=KG6CJA,=KG6CJK,=KG6DV,=KG6HRX, + =KG6IER,=KG6IGY,=KG6JJP,=KG6LFX,=KG6MZJ,=KG6NNF,=KG6NQI,=KG6OOB,=KG6RJI,=KG6SDD,=KG6TFI,=KG6WZD, + =KG6ZRY,=KG7AYU,=KG7CJI,=KG7EUP,=KG7ZJM,=KG9MDR,=KH0AI,=KH0HL,=KH0WJ,=KH2DC,=KH2MD,=KH2TD,=KH2TE, + =KH2YI,=KH3AE,=KH3AE/M,=KH3AF,=KH8Z,=KI4CAU,=KI4HCZ,=KI4NOH,=KI4YAF,=KI4YOG,=KI6CRL,=KI6DVJ, + =KI6EFY,=KI6FTE,=KI6HBZ,=KI6JEC,=KI6LPT,=KI6NOC,=KI6QDQ,=KI6QQJ,=KI6SNP,=KI6VYB,=KI6WOJ,=KI6ZRV, + =KI7AUZ,=KI7EZG,=KI7FJW,=KI7FJX,=KI7FUT,=KI7OS,=KI7QZQ,=KJ4BHO,=KJ4EYV,=KJ4KND,=KJ4WOI,=KJ6CKZ, + =KJ6COM,=KJ6CPN,=KJ6CQT,=KJ6FDF,=KJ6GYD,=KJ6LAW,=KJ6LAX,=KJ6LBI,=KJ6NZH,=KJ6QQT,=KJ6RGW,=KJ6TJZ, + =KK4EEC,=KK4RNF,=KK6BRW,=KK6DWS,=KK6EJ,=KK6GM,=KK6OMX,=KK6PGA,=KK6QAI,=KK6RM,=KK6VJN,=KK6ZQ, + =KK6ZZE,=KK7WR,=KL0TK,=KL1TP,=KL3FN,=KL3JC,=KL7PN,=KL7UB,=KL7XT,=KM4IP,=KM6IK,=KM6RM,=KM6RWE, + =KM6UVP,=KN6BE,=KN6ZU,=KN8AQR,=KO4BNK,=KO6KW,=KO6QT,=KQ6CD,=KQ6M,=KR1LLR,=KU4OY,=KW4JC,=KX6RTG, =KY1I,=N0CAN,=N0KXY,=N0PJV,=N0RMC,=N0VYO,=N0ZSJ,=N1CBF,=N1CFD,=N1CNQ,=N1IDP,=N1SHV,=N1TEE,=N1TLE, =N1VOP,=N1YLH,=N2AL,=N2KJU,=N2KLQ,=N3BQY,=N3DJT,=N3FUR,=N3GWR,=N3HQW,=N3RWD,=N3VDM,=N3ZFY,=N4BER, - =N4ERA,=N4ZIW,=N5IWF,=N5JKJ,=N6AI,=N6CGA,=N6DXW,=N6GOZ,=N6IKX,=N6KB,=N6NCT,=N6PJQ,=N6QBK,=N6ZAB, - =N7AMY,=N7BLC,=N7BMD,=N7KZB,=N7NYY,=N7ODC,=N7TSV,=N7WBX,=N9GFL,=N9SBL,=NB6R,=ND1A,=NE7SO,=NG1T, - =NH2CC,=NH2CD,=NH2CF,=NH2CQ,=NH2CR,=NH2IB,=NH2IF,=NH2II,=NH2IJ,=NH2IO,=NH2JO,=NH2KF,=NH2KH,=NH2YL, - =NH2Z,=NI1J,=NL7UW,=NM2B,=NO0H,=NT0DA,=NT4AA,=NZ2F,=W0UNX,=W1BMB,=W2UNS,=W3ZRT,=W4PRO,=W4YQS, - =W5FJG,=W6CAG,=W6CWJ,=W6KEV,=W6KIT,=W6KPI,=W6MQB,=W6MRJ,=W6NBK,=W6QPV,=W6ROM,=W6SHH,=W6UNX,=W7EHP, - =W7NVQ,=W7NX,=W7RCR,=W7UEA,=W8AYD,=W8JAY,=W8WH,=WA0FUR,=WA0NHD,=WA0TFB,=WA2AUI,=WA3ZEM,=WA6AW, - =WA6CZL,=WA6ECX,=WA6IIQ,=WA6JDA,=WA6JJQ,=WA6QDQ,=WA6UVF,=WA7ESE,=WA7HEO,=WA7TFE,=WA7ZK,=WA8HEB, - =WA8JQP,=WB0RUA,=WB0TZQ,=WB2AHM,=WB2SQW,=WB4JTT,=WB4MNF,=WB5ZDH,=WB5ZOV,=WB6CVJ,=WB6FOX,=WB6PIO, - =WB6PJT,=WB6SAA,=WB6VBM,=WB8NCD,=WB9SMM,=WC6B,=WD0FTF,=WD0LFN,=WD8LIB,=WD8OBO,=WH2Y,=WH7K,=WU0H, - =WV0Z,=WV6K,=WY6F; + =N4ERA,=N4ZIW,=N5IWF,=N5JKJ,=N6AI,=N6CGA,=N6DXW,=N6EQZ,=N6GOZ,=N6IKX,=N6KB,=N6NCT,=N6PJQ,=N6QBK, + =N6ZAB,=N7AMY,=N7BLC,=N7BMD,=N7KZB,=N7NYY,=N7ODC,=N7TSV,=N7WBX,=N9GFL,=N9SBL,=NB6R,=ND1A,=NE7SO, + =NG1T,=NH2CC,=NH2CD,=NH2CF,=NH2CQ,=NH2CR,=NH2IB,=NH2IF,=NH2II,=NH2IJ,=NH2IO,=NH2JO,=NH2KF,=NH2KH, + =NH2YL,=NH2Z,=NI1J,=NL7UW,=NM2B,=NO0H,=NT0DA,=NT4AA,=NZ2F,=W0UNX,=W1BMB,=W1ETT,=W1JJS,=W2UNS, + =W3ZRT,=W4PRO,=W4YQS,=W5FJG,=W6CAG,=W6CWJ,=W6KEV,=W6KIT,=W6KPI,=W6MQB,=W6MRJ,=W6NBK,=W6QPV,=W6ROM, + =W6SHH,=W6UNX,=W7EHP,=W7NVQ,=W7NX,=W7RCR,=W7UEA,=W8AYD,=W8JAY,=W8WH,=WA0FUR,=WA0NHD,=WA0TFB, + =WA2AUI,=WA3ZEM,=WA6AW,=WA6CZL,=WA6ECX,=WA6IIQ,=WA6JDA,=WA6JJQ,=WA6QDQ,=WA6UVF,=WA7ESE,=WA7HEO, + =WA7TFE,=WA7ZK,=WA8HEB,=WA8JQP,=WB0RUA,=WB0TZQ,=WB2AHM,=WB2SQW,=WB4JTT,=WB4MNF,=WB5ZDH,=WB5ZOV, + =WB6CVJ,=WB6FOX,=WB6PIO,=WB6PJT,=WB6SAA,=WB6VBM,=WB8NCD,=WB9SMM,=WC6B,=WD0FTF,=WD0LFN,=WD4MLF, + =WD8LIB,=WD8OBO,=WH2Y,=WH7K,=WU0H,=WV0Z,=WV6K,=WY6F; Kure Island: 31: 61: OC: 29.00: 178.00: 10.0: KH7K: AH7K,KH7K,NH7K,WH7K; American Samoa: 32: 62: OC: -14.32: 170.78: 11.0: KH8: AH8,KH8,NH8,WH8,=AB9OH,=AF7MN,=KD8TFY,=KH0WF,=KM4YJH,=KS6EL,=KS6FS,=WH6BAR,=WL7BMP; Swains Island: 32: 62: OC: -11.05: 171.25: 11.0: KH8/s: - =KH6BK/KH8,=KH8/WH7S,=KH8S/K3UY,=KH8S/NA6M,=KH8SI,=NH8S,=W8S; + =K9CS/KH8S,=KH6BK/KH8,=KH8/WH7S,=KH8S/K3UY,=KH8S/NA6M,=KH8S/W8TN,=KH8SI,=NH8S,=W8S; Wake Island: 31: 65: OC: 19.28: -166.63: -12.0: KH9: AH9,KH9,NH9,WH9; Alaska: 01: 01: NA: 61.40: 148.87: 8.0: KL: @@ -1741,48 +1756,50 @@ Alaska: 01: 01: NA: 61.40: 148.87: 8.0: KL: =K1BZD,=K1KAO,=K1MAT,=K1TMT,=K2ICW,=K2NPS,=K3JMI,=K4DRC,=K4ETC,=K4HOE,=K4PSG,=K4RND,=K4WPK,=K5DOW, =K5HL,=K5RD,=K5RSO,=K5RZW,=K5TDN,=K6ANE,=K6GKW,=K7BUF,=K7CAP,=K7EJM,=K7GRW,=K7LOP,=K7MVX,=K7OCL, =K7RDR,=K7SGA,=K7UNX,=K7VRK,=K8IEL,=K8OUA,=K9DUG,=KA0SIM,=KA0YPV,=KA1NCN,=KA2TJZ,=KA2ZSD,=KA6DBB, - =KA6UGT,=KA7ETQ,=KA7HOX,=KA7JOR,=KA7PUB,=KA7TMU,=KA7TOM,=KA7UKN,=KA7VCR,=KA7YEY,=KA9GYQ,=KB0APK, - =KB0LOW,=KB0TSU,=KB0UGE,=KB0UVK,=KB1CRT,=KB1FCX,=KB1KLH,=KB1PHP,=KB1QCD,=KB1QCE,=KB1SYV,=KB1WQL, - =KB2FWF,=KB2JWV,=KB2ZME,=KB3CYB,=KB3JFK,=KB3NCR,=KB3VQE,=KB4DX,=KB5DNT,=KB5HEV,=KB5NOW,=KB5UWU, - =KB5YLG,=KB6DKJ,=KB7AMA,=KB7BNG,=KB7BUF,=KB7DEL,=KB7FXJ,=KB7IBI,=KB7JA,=KB7LJZ,=KB7LON,=KB7PHT, - =KB7QLB,=KB7RXZ,=KB7SIQ,=KB7UBH,=KB7VFZ,=KB7YEC,=KB7ZVZ,=KB8QKR,=KB8SBG,=KB8TEW,=KB8VYJ,=KB9MWG, - =KB9RWE,=KB9RWJ,=KB9YGR,=KC0ATI,=KC0CWG,=KC0CYR,=KC0EF,=KC0EFL,=KC0GDH,=KC0GHH,=KC0GLN,=KC0LLL, - =KC0NSV,=KC0OKQ,=KC0PSZ,=KC0TK,=KC0TZL,=KC0UYK,=KC0VDN,=KC0WSG,=KC0YSW,=KC1DL,=KC1KPL,=KC1LVR, - =KC2BYX,=KC2GVS,=KC2HRV,=KC2KMU,=KC2OJP,=KC2PCV,=KC2PIO,=KC3DBK,=KC4MXQ,=KC4MXR,=KC5BNN,=KC5CHO, - =KC5DJA,=KC5IBS,=KC5KIG,=KC5LKF,=KC5LKG,=KC5NHL,=KC5QPJ,=KC5THY,=KC5YIB,=KC5YOX,=KC5ZAA,=KC6RJW, - =KC7BUL,=KC7COW,=KC7ENM,=KC7FWK,=KC7GSO,=KC7HJM,=KC7HPF,=KC7IKE,=KC7IKF,=KC7INC,=KC7MIJ,=KC7MPY, - =KC7MRO,=KC7OQZ,=KC7PLJ,=KC7PLQ,=KC7RCP,=KC7TYT,=KC7UZY,=KC7WOA,=KC7YZR,=KC8GKK,=KC8MVW,=KC8NOY, - =KC8WWS,=KC8YIV,=KC9CMY,=KC9HIK,=KC9IKH,=KC9VLD,=KD0CLU,=KD0CZC,=KD0DHU,=KD0FJG,=KD0IXU,=KD0JJB, - =KD0NSG,=KD0ONB,=KD0VAK,=KD0VAL,=KD0ZOD,=KD2CTE,=KD2GKT,=KD2NPD,=KD2SKJ,=KD4EYW,=KD4MEY,=KD4QJL, - =KD5DNA,=KD5DWV,=KD5GAL,=KD5MQC,=KD5QPD,=KD5RVD,=KD5WCF,=KD5WEV,=KD5WYP,=KD6DLB,=KD6RVY,=KD6YKS, - =KD7APU,=KD7AWK,=KD7BBX,=KD7BGP,=KD7DIG,=KD7DUQ,=KD7FGL,=KD7FUL,=KD7GFG,=KD7HXF,=KD7KRK,=KD7MGO, - =KD7OOS,=KD7QAR,=KD7SIX,=KD7TOJ,=KD7TWB,=KD7UAG,=KD7VOI,=KD7VXE,=KD7ZTJ,=KD8DDY,=KD8GEL,=KD8GMS, - =KD8JOU,=KD8KQL,=KD8LNA,=KD8WMX,=KD9TK,=KE0DYM,=KE0KKI,=KE4DGR,=KE4MQD,=KE4YEI,=KE4YLG,=KE5CVD, - =KE5CVT,=KE5DQV,=KE5FOC,=KE5GEB,=KE5HHR,=KE5JHS,=KE5JTB,=KE5NLG,=KE5QDJ,=KE5QDK,=KE5WGZ,=KE5ZRK, - =KE5ZUM,=KE6DLM,=KE6DUJ,=KE6DXH,=KE6IPM,=KE6SYD,=KE6TCE,=KE6VUB,=KE7DFO,=KE7ELL,=KE7EOP,=KE7EPZ, - =KE7FNC,=KE7FXM,=KE7GOE,=KE7HMJ,=KE7KYU,=KE7PXV,=KE7TRX,=KE8RO,=KF3L,=KF4JET,=KF4PLR,=KF4TBD, - =KF4YFD,=KF5CVM,=KF5ETW,=KF5FJQ,=KF5HFB,=KF5HJC,=KF5NDT,=KF5UBP,=KF5YYK,=KF6AWG,=KF6AXS,=KF6BMF, - =KF6BOV,=KF6EJR,=KF6GNM,=KF6IAO,=KF6ILC,=KF6IOT,=KF6LGK,=KF6MFK,=KF6QOJ,=KF6RMG,=KF6RPC,=KF6SHS, - =KF6TGR,=KF6UWT,=KF7ARC,=KF7CXJ,=KF7FLL,=KF7FLM,=KF7GKY,=KF7ING,=KF7ITN,=KF7KTH,=KF7LEX,=KF7LUA, - =KF7PCJ,=KF7PFT,=KF7PSS,=KF7PUQ,=KF7UFY,=KF7VBO,=KF7WVE,=KF8ZB,=KG2IA,=KG4BBX,=KG4NBL/P,=KG4TJS, - =KG4WNZ,=KG5EQN,=KG5GDF,=KG5GTD,=KG5JQC,=KG5MIB,=KG5MIO,=KG6ALN,=KG6DTI,=KG6MBC,=KG6RJE,=KG6TAL, - =KG7CUR,=KG7DVI,=KG7GJL,=KG7JVJ,=KG7OQC,=KG7OUF,=KG7SEQ,=KG7TGE,=KG7ZEV,=KH0NF,=KH0NG,=KH0RF, - =KH2YN,=KH7BW,=KH7DA,=KI4COG,=KI4ERC,=KI4GAG,=KI4GCF,=KI4GDI,=KI4NGY,=KI4NVI,=KI4SET,=KI4SOM, - =KI6BGR,=KI6DES,=KI6HGW,=KI6YXZ,=KI7COR,=KI7PZ,=KI8JT,=KJ4HEW,=KJ4IAQ,=KJ4PSV,=KJ4WIQ,=KJ4YOY, - =KJ4ZWI,=KJ6DCH,=KJ6KRG,=KJ6RFQ,=KJ6ZSX,=KJ7IR,=KJ7MY,=KK4AMV,=KK4CLS,=KK4LRE,=KK4QXE,=KK4RYG, - =KK4WWH,=KK4WWI,=KK6IUY,=KK6PGV,=KK6SNS,=KK7I,=KK7IV,=KK7STL,=KL7D/M,=KL7NC/IMD,=KM4AGL,=KM4KWS, - =KM4KX,=KM4NIC,=KM4OE,=KM4PJH,=KM4TJI,=KM6NOL,=KM6YOD,=KN4ENR,=KN4HGD,=KN4LJD,=KN4RXC,=KN8IVE, - =KR4WV,=KV3X,=KW1W,=KW4XD,=KY7J,=KZ6HJC,=N0GDT,=N0GDU,=N0GLI,=N0HJT,=N0HYI,=N0HZF,=N0JEN,=N0LHN, - =N0SN,=N0SUB,=N0WXJ,=N0XKY,=N0XS,=N0ZKV,=N1HEN,=N1HUT,=N1KDQ,=N1KTI,=N1NDA,=N1NJS,=N1QFE,=N1TX, - =N2CXH,=N2SHO,=N2TJY,=N2YZW,=N3QEH,=N4AVX,=N4CM,=N4HCJ,=N4HZU,=N4NAV,=N5CSO,=N5UKX,=N5WPR,=N6BSC, - =N6CVV,=N6CZU,=N6JM,=N6QEK,=N6ZZX,=N7BUO,=N7DBN,=N7DKL,=N7DUD,=N7FCT,=N7GLP,=N7HER,=N7HQK,=N7IA, - =N7JUX,=N7MGT,=N7MTG,=N7QAN,=N7TBU,=N7UTV,=N7UWT,=N7XEA,=N7XNM,=N7YKY,=N7YQS,=N8DDY,=N8EX,=N8JKB, - =N8KCJ,=N8SUG,=N9AIG,=N9YD,=NA7WM,=NC4OI,=NE7EK,=NH2GZ,=NH2LS,=NH7UO,=NM0H,=NN4NN,=NP4FU,=NU9Q, - =NW7F,=W0EZM,=W0FJN,=W0RWS,=W0UZJ,=W0ZEE,=W1JM,=W1LYD,=W1RSC,=W1ZKA,=W2DLS,=W2KRZ,=W3ICG,=W3JPN, - =W3MKG,=W4AUL,=W4BMR,=W4RSB,=W5JKT,=W6DDP,=W6GTE,=W6ROW,=W7APM,=W7DDG,=W7EIK,=W7JMR,=W7PWA,=W7RAZ, - =W7ROS,=W7WEZ,=W7ZWT,=W8MDD,=W8PVZ,=W8TCX,=W9ITU,=W9JMC,=WA0JS,=WA1FVJ,=WA2BGL,=WA2BIW,=WA6GFS, - =WA7B,=WA7MDS,=WA7PXH,=WA7USX,=WA7YXF,=WB0CMZ,=WB1BR,=WB1GZL,=WB1ILS,=WB6COP,=WB9JZL,=WD6CET, - =WH6CYY,=WH6DPL,=WH6DX,=WH6GBB,=WH6GCO,=WH7AK,=WJ8M,=WP4IYI,=WT5T,=WX1NCC; + =KA6UGT,=KA7ETQ,=KA7HHF,=KA7HOX,=KA7JOR,=KA7PUB,=KA7TMU,=KA7TOM,=KA7UKN,=KA7VCR,=KA7YEY,=KA9GYQ, + =KB0APK,=KB0LOW,=KB0TSU,=KB0UGE,=KB0UVK,=KB1CRT,=KB1FCX,=KB1KLH,=KB1PHP,=KB1QCD,=KB1QCE,=KB1SYV, + =KB1WQL,=KB2FWF,=KB2JWV,=KB2ZME,=KB3CYB,=KB3JFK,=KB3NCR,=KB3VQE,=KB4DX,=KB5DNT,=KB5HEV,=KB5NOW, + =KB5UWU,=KB5YLG,=KB6DKJ,=KB7AMA,=KB7BNG,=KB7BUF,=KB7DEL,=KB7FXJ,=KB7IBI,=KB7JA,=KB7LJZ,=KB7LON, + =KB7PHT,=KB7QLB,=KB7RWK,=KB7RXZ,=KB7SIQ,=KB7UBH,=KB7VFZ,=KB7YEC,=KB7ZVZ,=KB8QKR,=KB8SBG,=KB8TEW, + =KB8VYJ,=KB9MWG,=KB9RWE,=KB9RWJ,=KB9THD,=KB9YGR,=KC0ATI,=KC0CWG,=KC0CYR,=KC0EF,=KC0EFL,=KC0GDH, + =KC0GHH,=KC0GLN,=KC0LLL,=KC0NSV,=KC0OKQ,=KC0PSZ,=KC0TK,=KC0TZL,=KC0UYK,=KC0VDN,=KC0WSG,=KC0YSW, + =KC1DL,=KC1KPL,=KC1LVR,=KC2BYX,=KC2HRV,=KC2KMU,=KC2OJP,=KC2PCV,=KC2PIO,=KC3BWW,=KC3DBK,=KC4MXQ, + =KC4MXR,=KC5BNN,=KC5CHO,=KC5DJA,=KC5IBS,=KC5KIG,=KC5LKF,=KC5LKG,=KC5NHL,=KC5QPJ,=KC5THY,=KC5YIB, + =KC5YOX,=KC5ZAA,=KC6FRJ,=KC6RJW,=KC7BUL,=KC7COW,=KC7DNT,=KC7ENM,=KC7FWK,=KC7GSO,=KC7HJM,=KC7HPF, + =KC7IKE,=KC7IKF,=KC7INC,=KC7MIJ,=KC7MPY,=KC7MRO,=KC7OQZ,=KC7PLJ,=KC7PLQ,=KC7RCP,=KC7TYT,=KC7UZY, + =KC7WOA,=KC7YZR,=KC8GKK,=KC8MVW,=KC8NOY,=KC8WWS,=KC8YIV,=KC9CMY,=KC9HIK,=KC9IKH,=KC9SXX,=KC9VLD, + =KD0CLU,=KD0CZC,=KD0DHU,=KD0FJG,=KD0IXU,=KD0JJB,=KD0NSG,=KD0ONB,=KD0VAK,=KD0VAL,=KD0ZOD,=KD2CTE, + =KD2GKT,=KD2NPD,=KD2SKJ,=KD4EYW,=KD4MEY,=KD4QJL,=KD5DNA,=KD5DWV,=KD5GAL,=KD5MQC,=KD5QPD,=KD5RVD, + =KD5WCF,=KD5WEV,=KD5WYP,=KD6DLB,=KD6RVY,=KD6YKS,=KD7APU,=KD7AWK,=KD7BBX,=KD7BGP,=KD7DIG,=KD7DUQ, + =KD7FGL,=KD7FUL,=KD7HXF,=KD7KRK,=KD7MGO,=KD7OOS,=KD7QAR,=KD7SIX,=KD7TOJ,=KD7TWB,=KD7UAG,=KD7VOI, + =KD7VXE,=KD7ZTJ,=KD8DDY,=KD8GEL,=KD8GMS,=KD8JOU,=KD8KQL,=KD8LNA,=KD8WMX,=KD9TK,=KE0DYM,=KE0KKI, + =KE4DGR,=KE4MQD,=KE4YEI,=KE4YLG,=KE5CVD,=KE5CVT,=KE5DQV,=KE5FOC,=KE5GEB,=KE5HHR,=KE5JHS,=KE5JTB, + =KE5NLG,=KE5QDJ,=KE5QDK,=KE5WGZ,=KE5ZRK,=KE5ZUM,=KE6DLM,=KE6DUJ,=KE6DXH,=KE6IPM,=KE6SYD,=KE6TCE, + =KE6VUB,=KE7DFO,=KE7ELL,=KE7EOP,=KE7EPZ,=KE7FNC,=KE7FXM,=KE7GOE,=KE7HMJ,=KE7KYU,=KE7PXV,=KE7TRX, + =KE7ZXH,=KE8RO,=KF3L,=KF4JET,=KF4PLR,=KF4TBD,=KF4YFD,=KF5CVM,=KF5ETW,=KF5FJQ,=KF5HFB,=KF5HJC, + =KF5NDT,=KF5UBP,=KF5YYK,=KF6AWG,=KF6AXS,=KF6BMF,=KF6BOV,=KF6EJR,=KF6GNM,=KF6IAO,=KF6ILC,=KF6IOT, + =KF6LGK,=KF6MFK,=KF6QOJ,=KF6RMG,=KF6RPC,=KF6SHS,=KF6TGR,=KF6UWT,=KF7ARC,=KF7CXJ,=KF7FLL,=KF7FLM, + =KF7GKY,=KF7ING,=KF7ITN,=KF7KTH,=KF7LEX,=KF7LUA,=KF7PCJ,=KF7PFT,=KF7PSS,=KF7PUQ,=KF7UFY,=KF7VBO, + =KF7WVE,=KF8ZB,=KG2IA,=KG4BBX,=KG4NBL/P,=KG4TJS,=KG4WNZ,=KG5DBP,=KG5EQN,=KG5GDF,=KG5GTD,=KG5JQC, + =KG5MIB,=KG5MIO,=KG6ALN,=KG6DTI,=KG6MBC,=KG6RJE,=KG6TAL,=KG7CUR,=KG7DVI,=KG7GJL,=KG7JVJ,=KG7OQC, + =KG7OUF,=KG7SEQ,=KG7TGE,=KG7ZEV,=KH0NF,=KH0NG,=KH0RF,=KH2YN,=KH7BW,=KI4COG,=KI4ERC,=KI4FJK, + =KI4GAG,=KI4GCF,=KI4GDI,=KI4NGY,=KI4NVI,=KI4SET,=KI4SOM,=KI6BGR,=KI6DES,=KI6HGW,=KI6YXZ,=KI7COR, + =KI7PZ,=KI8JT,=KJ4HEW,=KJ4IAQ,=KJ4PSV,=KJ4WIQ,=KJ4YOY,=KJ4ZWI,=KJ6DCH,=KJ6KRG,=KJ6RFQ,=KJ6ZSX, + =KJ7IR,=KJ7MY,=KK4AMV,=KK4CLS,=KK4LRE,=KK4QXE,=KK4RYG,=KK4WWH,=KK4WWI,=KK6IUY,=KK6LL,=KK6PGV, + =KK6PLA,=KK6SNS,=KK7I,=KK7IV,=KK7STL,=KL7D/M,=KL7NC/IMD,=KM4AGL,=KM4KWS,=KM4KX,=KM4NIC,=KM4OE, + =KM4PJH,=KM4TJI,=KM6NOL,=KM6YOD,=KN4ENR,=KN4HGD,=KN4LJD,=KN4RXC,=KN8IVE,=KO4DHN,=KR4WV,=KV3X, + =KW1W,=KW4XD,=KY7J,=KZ6HJC,=N0GDT,=N0GDU,=N0GLI,=N0HJT,=N0HYI,=N0HZF,=N0JEN,=N0JOB,=N0LHN,=N0SN, + =N0SUB,=N0WXJ,=N0XKY,=N0XS,=N0ZKV,=N1HEN,=N1HUT,=N1KDQ,=N1KTI,=N1NDA,=N1NJS,=N1QFE,=N1TX,=N2CXH, + =N2SHO,=N2TJY,=N2YZW,=N3QEH,=N4AVX,=N4CM,=N4HCJ,=N4HZU,=N4NAV,=N5AAR,=N5CSO,=N5UKX,=N5WPR,=N6BSC, + =N6CVV,=N6CZU,=N6JM,=N6QEK,=N6ZZX,=N7BUO,=N7CGC,=N7DBN,=N7DKL,=N7DUD,=N7FCT,=N7GLP,=N7HER,=N7HQK, + =N7IA,=N7JUX,=N7MGT,=N7MTG,=N7QAN,=N7TBU,=N7UTV,=N7UWT,=N7XEA,=N7XNM,=N7YKY,=N7YQS,=N8DDY,=N8EX, + =N8JKB,=N8KCJ,=N8KYW,=N8SUG,=N9AIG,=N9YD,=NA7WM,=NC4OI,=NE7EK,=NH2GZ,=NH2LS,=NH7UO,=NM0H,=NN4NN, + =NP4FU,=NU9Q,=NW7F,=W0EZM,=W0FJN,=W0OPT,=W0RWS,=W0UZJ,=W0ZEE,=W1JM,=W1LYD,=W1RSC,=W1ZKA,=W2DLS, + =W2KRZ,=W3ICG,=W3JPN,=W3MKG,=W4AUL,=W4BMR,=W4RSB,=W5JKT,=W6DDP,=W6GTE,=W6ROW,=W7APM,=W7DDG,=W7EIK, + =W7JMR,=W7PWA,=W7RAZ,=W7ROS,=W7WEZ,=W7ZWT,=W8MDD,=W8PVZ,=W8TCX,=W9CG,=W9ITU,=W9JMC,=WA0JS,=WA1FVJ, + =WA2BGL,=WA2BIW,=WA6GFS,=WA7B,=WA7MDS,=WA7PXH,=WA7USX,=WA7YXF,=WB0CMZ,=WB1BR,=WB1GZL,=WB1ILS, + =WB6COP,=WB9JZL,=WD6CET,=WE3B,=WH6CYY,=WH6DPL,=WH6DX,=WH6GBB,=WH6GCO,=WH7AK,=WJ8M,=WP4IYI,=WT5T, + =WW4AL,=WX1NCC; Navassa Island: 08: 11: NA: 18.40: 75.00: 5.0: KP1: KP1,NP1,WP1; US Virgin Islands: 08: 11: NA: 17.73: 64.80: 4.0: KP2: @@ -1793,24 +1810,24 @@ US Virgin Islands: 08: 11: NA: 17.73: 64.80: 4.0: KP2: =W2KW/KV4,=W3K/KD2CLB,=W4LIS,=WA4HLB,=WB2KQW,=WB4WFU,=WD8AHQ; Puerto Rico: 08: 11: NA: 18.18: 66.55: 4.0: KP4: KP3,KP4,NP3,NP4,WP3,WP4,=AA2ZN,=AB2DR,=AF4OU,=AF5IZ,=AG4CD,=AI4EZ,=K1NDN,=K4C/LH,=K4LCR,=K4PFH, - =K5YJR,=K6BOT,=K8ZB,=K9JOS,=KA2GNG,=KA2MBR,=KA2UCX,=KA2YGB,=KA3ZGQ,=KA7URH,=KA9UTY,=KB0AQB, - =KB0JRR,=KB0TEP,=KB1CKX,=KB1IJU,=KB1KDP,=KB1RUQ,=KB1TUA,=KB1UEK,=KB1UZV,=KB1ZKF,=KB2ALR,=KB2BVX, - =KB2CIE,=KB2KWB,=KB2MMX,=KB2NMT,=KB2NYN,=KB2OIF,=KB2OMN,=KB2OPM,=KB2QQK,=KB2RYP,=KB2TID,=KB2VHY, - =KB2WKT,=KB2YKJ,=KB3BPK,=KB3BTN,=KB3LUV,=KB3SBO,=KB3TTV,=KB8ZVP,=KB9OWX,=KB9RZD,=KB9YVE,=KB9YVF, - =KC1CRV,=KC1CUF,=KC1DRV,=KC1IHB,=KC1IHO,=KC1JLY,=KC1KZI,=KC2BZZ,=KC2CJL,=KC2CTM,=KC2DUO,=KC2EMM, - =KC2ERU,=KC2GRZ,=KC2JNE,=KC2LET,=KC2TE,=KC2UXP,=KC2VCR,=KC3GEO,=KC5DKT,=KC5FWS,=KC8BFN,=KC8IRI, - =KD2KPC,=KD2VQ,=KD4TVS,=KD5DVV,=KD5PKH,=KD9GIZ,=KD9MRY,=KE0AYJ,=KE0GFK,=KE0SH,=KE1MA,=KE3WW, - =KE4GGD,=KE4GYA,=KE4SKH,=KE4THL,=KE4WUE,=KE5LNG,=KF4KPO,=KF4VYH,=KF4WTX,=KF4ZDB,=KF5YGN,=KF5YGX, - =KF6OGJ,=KG4EEG,=KG4EEL,=KG4GYO,=KG4IRC,=KG4IVO,=KG4VCC,=KG5AFY,=KG9KG,=KH2RU,=KH4AA,=KI4LRJ, - =KI4RGF,=KI4TSW,=KI4WOA,=KI4WOB,=KJ4KZN,=KJ4LOZ,=KJ4UPN,=KJ4UXJ,=KJ6OV,=KK4AOZ,=KK4DCX,=KK4EBE, - =KK4PHB,=KM4VDZ,=KM4WGI,=KM4YBN,=KM4YSR,=KM4ZJW,=KM6CTO,=KN4AWH,=KN4GNO,=KN4IBD,=KN4IDV,=KN4IGP, - =KN4ILO,=KN4INP,=KN4JCC,=KN4KPX,=KN4KPY,=KN4MNT,=KN4NLZ,=KN4ODN,=KN4QBT,=KN4QZZ,=KN4REC,=KN4SKZ, - =KN4TNC,=KN4UAN,=KP2H,=KP2Z,=KP3CW/SKP,=KP3RE/LGT,=KP3RE/LH,=KP3RE/LT,=KP4ES/L,=KP4ES/LGT, - =KP4ES/LH,=KP4FD/IARU,=KP4FRA/IARU,=KP4FRD/LH,=KP4MD/P,=KP4VP/LH,=KR4SQ,=KU4JI,=N0XAR,=N1CN, - =N1HRV,=N1JFL,=N1QVU,=N1SCD,=N1SZM,=N1VCW,=N1YAY,=N1ZJC,=N2FVA,=N2IBR,=N2KKN,=N2KUE,=N2OUS,=N2PGO, - =N3JAM,=N3VIJ,=N3VVW,=N3YUB,=N3ZII,=N4CIE,=N4JZD,=N4LER,=N4MMT,=N4UK,=N6NVD,=N6RHF,=NB0G,=NP3M/LH, - =NP4VO/LH,=W1AW/PR,=W6WAW,=W9JS,=W9NKE,=WA2RVA,=WB2AC,=WB2HMY,=WB5YOF,=WB7ADC,=WB7VVV,=WD4LOL, - =WP4L/TP,=WQ2N; + =K5YJR,=K6BOT,=K8ZB,=K9JOS,=KA2ABJ,=KA2GNG,=KA2MBR,=KA2UCX,=KA2YGB,=KA3PNP,=KA3ZGQ,=KA7URH, + =KA9UTY,=KB0AQB,=KB0JRR,=KB0TEP,=KB1CKX,=KB1IJU,=KB1KDP,=KB1RUQ,=KB1TUA,=KB1UEK,=KB1UZV,=KB1ZKF, + =KB2ALR,=KB2BVX,=KB2CIE,=KB2KWB,=KB2MMX,=KB2NMT,=KB2NYN,=KB2OIF,=KB2OMN,=KB2OPM,=KB2QQK,=KB2RYP, + =KB2TID,=KB2VHY,=KB2WKT,=KB2YKJ,=KB3BPK,=KB3BTN,=KB3LUV,=KB3SBO,=KB3TTV,=KB8ZVP,=KB9OWX,=KB9RZD, + =KB9YVE,=KB9YVF,=KC1CRV,=KC1CUF,=KC1DRV,=KC1IHB,=KC1IHO,=KC1JLY,=KC1KZI,=KC2BZZ,=KC2CJL,=KC2CTM, + =KC2DUO,=KC2EMM,=KC2ERS,=KC2ERU,=KC2GRZ,=KC2HAS,=KC2JNE,=KC2LET,=KC2TE,=KC2UXP,=KC2VCR,=KC3GEO, + =KC4ADN,=KC5DKT,=KC5FWS,=KC8BFN,=KC8IRI,=KD2KPC,=KD2VQ,=KD4TVS,=KD5DVV,=KD5PKH,=KD9GIZ,=KD9MRY, + =KE0AYJ,=KE0GFK,=KE0SH,=KE1MA,=KE3WW,=KE4GGD,=KE4GYA,=KE4SKH,=KE4THL,=KE4WUE,=KE5LNG,=KF4KPO, + =KF4TZG,=KF4VYH,=KF4WTX,=KF4ZDB,=KF5YGN,=KF5YGX,=KF6OGJ,=KG4EEG,=KG4EEL,=KG4GYO,=KG4IRC,=KG4IVO, + =KG4VCC,=KG5AFY,=KG9KG,=KH2RU,=KH4AA,=KI4LRJ,=KI4RGF,=KI4TSW,=KI4WOA,=KI4WOB,=KJ4KZN,=KJ4LOZ, + =KJ4UPN,=KJ4UXJ,=KJ4VSD,=KJ6OV,=KK4AOZ,=KK4DCX,=KK4EBE,=KK4PHB,=KM4VDZ,=KM4WGI,=KM4YBN,=KM4YSR, + =KM4ZJW,=KM6CTO,=KN4AWH,=KN4GNO,=KN4IBD,=KN4IDV,=KN4IGP,=KN4ILO,=KN4INP,=KN4JCC,=KN4KPX,=KN4KPY, + =KN4MNT,=KN4NLZ,=KN4ODN,=KN4QBT,=KN4QZZ,=KN4REC,=KN4SKZ,=KN4TNC,=KN4UAN,=KP2H,=KP2Z,=KP3CW/SKP, + =KP3RE/LGT,=KP3RE/LH,=KP3RE/LT,=KP4ES/L,=KP4ES/LGT,=KP4ES/LH,=KP4FD/IARU,=KP4FRA/IARU,=KP4FRD/LH, + =KP4MD/P,=KP4VP/LH,=KR4SQ,=KU4JI,=N0XAR,=N1CN,=N1HRV,=N1JFL,=N1QVU,=N1SCD,=N1SZM,=N1VCW,=N1YAY, + =N1ZJC,=N2FVA,=N2IBR,=N2KKN,=N2KUE,=N2OUS,=N2PGO,=N3JAM,=N3VIJ,=N3VVW,=N3YUB,=N3ZII,=N4CIE,=N4JZD, + =N4LER,=N4MMT,=N4NDL,=N4UK,=N6NVD,=N6RHF,=NB0G,=NP3M/LH,=NP4VO/LH,=W1AW/PR,=W6WAW,=W9JS,=W9NKE, + =WA2RVA,=WB2AC,=WB2HMY,=WB5YOF,=WB7ADC,=WB7VVV,=WD4LOL,=WP4L/TP,=WQ2N; Desecheo Island: 08: 11: NA: 18.08: 67.88: 4.0: KP5: KP5,NP5,WP5; Norway: 14: 18: EU: 61.00: -9.00: -1.0: LA: @@ -1831,78 +1848,78 @@ Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: =LT5D/LH,=LU1AAE/D,=LU1AAS/D,=LU1ACX/D,=LU1AEE/D,=LU1AET/D,=LU1AGP/D,=LU1AIM/D,=LU1ALF/D,=LU1AM/D, =LU1APR/D,=LU1ARG/D,=LU1ASP/D,=LU1AW/E,=LU1BCE/D,=LU1BMD/D,=LU1CHD/D,=LU1CL/D,=LU1COA/D,=LU1DAR/D, =LU1DAS/D,=LU1DBI/D,=LU1DCB/D,=LU1DDK/D,=LU1DDO/D,=LU1DHO/D,=LU1DI/D,=LU1DK/D,=LU1DKD/D,=LU1DLB/D, - =LU1DMA/E,=LU1DMK/D,=LU1DNQ/D,=LU1DP/D,=LU1DQ/D,=LU1DS/D,=LU1DSO/D,=LU1DU/D,=LU1DVE/D,=LU1DYP/D, - =LU1DZ/D,=LU1DZ/E,=LU1DZR/D,=LU1EEE/D,=LU1EEZ/D,=LU1EFF/D,=LU1EJ/LH,=LU1EJ/YL,=LU1ELP/D,=LU1ELY/D, - =LU1EPC/D,=LU1EPF/D,=LU1EQ/D,=LU1EQU/D,=LU1ERA/D,=LU1EST/D,=LU1EUU/D,=LU1EW/D,=LU1EXU/D,=LU1EY/D, - =LU1HBD/D,=LU1HLH/D,=LU1KCQ/D,=LU1UAG/D,=LU1VDF/D,=LU1VOF/D,=LU1VYL/D,=LU1XWC/E,=LU1XZ/D,=LU1YY/D, - =LU2AAS/D,=LU2ABT/D,=LU2AEZ/D,=LU2AFE/D,=LU2AGQ/D,=LU2AHB/D,=LU2ALE/D,=LU2AMM/D,=LU2AOZ/D, - =LU2AVG/D,=LU2AVW/D,=LU2BJA/D,=LU2BN/D,=LU2BOE/D,=LU2BPM/D,=LU2CDE/D,=LU2CDO/D,=LU2CHP/D,=LU2CM/D, - =LU2CRV/D,=LU2DAR/D,=LU2DB/D,=LU2DG/D,=LU2DHM/D,=LU2DJB/D,=LU2DJC/D,=LU2DJL/D,=LU2DKN/D,=LU2DPW/D, - =LU2DRT/D,=LU2DT/D,=LU2DT/D/LH,=LU2DT/LGT,=LU2DT/LH,=LU2DVF/D,=LU2ED/D,=LU2EDC/D,=LU2EE/D, - =LU2EE/E,=LU2EFI/D,=LU2EGA/D,=LU2EGI/D,=LU2EGP/D,=LU2EHA/D,=LU2EIT/D,=LU2EJL/D,=LU2EK/D,=LU2ELT/D, - =LU2EMQ/D,=LU2ENG/D,=LU2ENH/D,=LU2EPL/D,=LU2EPP/D,=LU2ERC/D,=LU2FBX/D,=LU2FGD/D,=LU2FNH/D, - =LU2HOD/D,=LU2JFC/D,=LU2VDV/D,=LU2YF/D,=LU3AAL/D,=LU3ADC/D,=LU3AJL/D,=LU3AOI/D,=LU3ARE/D, - =LU3ARM/D,=LU3AYE/D,=LU3CA/D,=LU3CM/D,=LU3CRA/D,=LU3CT/D,=LU3DAR/D,=LU3DAT/D,=LU3DAT/E,=LU3DC/D, - =LU3DEY/D,=LU3DFD/D,=LU3DH/D,=LU3DHF/D,=LU3DJA/D,=LU3DJI/D,=LU3DJT/D,=LU3DK/D,=LU3DLF/D,=LU3DMZ/D, - =LU3DO/D,=LU3DOC/D,=LU3DP/D,=LU3DPH/D,=LU3DQJ/D,=LU3DR/D,=LU3DRP/D,=LU3DRP/E,=LU3DXG/D,=LU3DXI/D, - =LU3DY/D,=LU3DYN/D,=LU3DZO/D,=LU3EBS/D,=LU3ED/D,=LU3EDU/D,=LU3EFL/D,=LU3EJ/L,=LU3EJD/D,=LU3ELR/D, - =LU3EMB/D,=LU3EOU/D,=LU3EP/D,=LU3ERU/D,=LU3ES/D,=LU3ESY/D,=LU3EZA/D,=LU3FCI/D,=LU3HKA/D,=LU4AA/D, - =LU4AAO/D,=LU4AAO/E,=LU4ACA/D,=LU4ADE/D,=LU4AJC/D,=LU4ARU/D,=LU4BAN/D,=LU4BFP/D,=LU4BMG/D, - =LU4BR/D,=LU4CMF/D,=LU4DBL/D,=LU4DBP/D,=LU4DBT/D,=LU4DBV/D,=LU4DCE/D,=LU4DCY/D,=LU4DGC/D, - =LU4DHA/D,=LU4DHC/D,=LU4DHE/D,=LU4DIS/D,=LU4DJB/D,=LU4DK/D,=LU4DLJ/D,=LU4DLL/D,=LU4DLN/D, - =LU4DMI/D,=LU4DPB/D,=LU4DQ/D,=LU4DRC/D,=LU4DRH/D,=LU4DRH/E,=LU4DVD/D,=LU4EAE/D,=LU4EET/D, - =LU4EGP/D,=LU4EHP/D,=LU4EJ/D,=LU4EL/D,=LU4ELE/D,=LU4EOU/D,=LU4ERS/D,=LU4ESP/D,=LU4ETD/D,=LU4ETN/D, - =LU4EV/D,=LU4HSA/D,=LU4HTD/D,=LU4MA/D,=LU4UWZ/D,=LU4UZW/D,=LU4VEN/D,=LU4VSD/D,=LU4WAP/D,=LU5AHN/D, - =LU5ALE/D,=LU5ALS/D,=LU5AM/D,=LU5ANL/D,=LU5AQV/D,=LU5ARS/D,=LU5ASA/D,=LU5AVD/D,=LU5BDS/D,=LU5BE/D, - =LU5BTL/D,=LU5CBA/D,=LU5CRE/D,=LU5DA/D,=LU5DA/E,=LU5DAS/D,=LU5DCO/D,=LU5DDH/D,=LU5DEM/D,=LU5DF/D, - =LU5DFR/D,=LU5DFT/D,=LU5DGG/D,=LU5DGR/D,=LU5DHE/D,=LU5DIT/D,=LU5DJE/D,=LU5DKE/D,=LU5DLH/D, - =LU5DLT/D,=LU5DLZ/D,=LU5DMI/D,=LU5DMP/D,=LU5DMR/D,=LU5DQ/D,=LU5DRV/D,=LU5DSH/D,=LU5DSM/D,=LU5DT/D, - =LU5DTB/D,=LU5DTF/D,=LU5DUC/D,=LU5DVB/D,=LU5DWS/D,=LU5DYT/D,=LU5EAO/D,=LU5EC/D,=LU5ED/D,=LU5EDS/D, - =LU5EFG/D,=LU5EH/D,=LU5EHC/D,=LU5EJL/D,=LU5EM/D,=LU5EP/D,=LU5EW/D,=LU5FZ/D,=LU5FZ/E,=LU5JAH/D, - =LU5JIB/D,=LU5OD/D,=LU5VAS/D,=LU5VAT/D,=LU5XP/D,=LU5YBR/D,=LU5YF/D,=LU6AER/D,=LU6AMT/D,=LU6CN/D, - =LU6DAX/D,=LU6DBL/D,=LU6DC/D,=LU6DCT/D,=LU6DDC/D,=LU6DG/D,=LU6DIE/D,=LU6DIO/D,=LU6DK/D,=LU6DKT/D, - =LU6DL/D,=LU6DM/D,=LU6DO/D,=LU6DRD/D,=LU6DRD/E,=LU6DRN/D,=LU6DRR/D,=LU6DSA/D,=LU6DTB/D,=LU6EAG/D, - =LU6EC/D,=LU6EDC/D,=LU6EE/D,=LU6EEG/D,=LU6EGO/D,=LU6EI/D,=LU6EJJ/D,=LU6EKL/D,=LU6ELP/D,=LU6EMM/D, - =LU6ENA/D,=LU6EPE/D,=LU6EPR/D,=LU6EPR/E,=LU6EQV/D,=LU6EU/D,=LU6EVD/D,=LU6EWR/D,=LU6EXD/D, - =LU6HBB/D,=LU6JJ/D,=LU6UAL/D,=LU6UO/D,=LU6UVI/D,=LU6XQ/D,=LU7AA/D,=LU7AC/D,=LU7ADC/D,=LU7ADN/D, - =LU7ARI/D,=LU7ART/D,=LU7AVW/D,=LU7BSN/D,=LU7BTO/D,=LU7BTO/E,=LU7CAW/D,=LU7CC/E,=LU7CP/D,=LU7DAC/D, - =LU7DAF/D,=LU7DAJ/D,=LU7DAR/D,=LU7DBA/D,=LU7DBL/D,=LU7DCE/D,=LU7DD/D,=LU7DDC/D,=LU7DDO/D, - =LU7DHE/D,=LU7DHG/D,=LU7DJH/D,=LU7DLN/D,=LU7DNM/D,=LU7DOT/D,=LU7DP/D,=LU7DR/D,=LU7DS/D,=LU7DSC/D, - =LU7DSS/D,=LU7DSU/D,=LU7DSY/D,=LU7DTC/D,=LU7DW/D,=LU7DZL/D,=LU7DZL/E,=LU7DZV/D,=LU7ECZ/D, - =LU7EGY/D,=LU7EHL/D,=LU7EIA/D,=LU7EJC/D,=LU7ELY/D,=LU7EMA/D,=LU7EMM/D,=LU7ENP/D,=LU7EO/D, - =LU7EON/D,=LU7EPC/D,=LU7ETR/D,=LU7EXX/D,=LU7HBL/D,=LU7HW/D,=LU7HZ/D,=LU7VCH/D,=LU8ABR/D,=LU8ACH/D, - =LU8ADX/D,=LU8AE/D,=LU8ARI/D,=LU8ATM/D,=LU8DAF/D,=LU8DCF/D,=LU8DCH/D,=LU8DCK/D,=LU8DCM/D, - =LU8DIP/D,=LU8DIW/D,=LU8DJR/D,=LU8DLD/D,=LU8DLT/D,=LU8DMD/D,=LU8DQ/D,=LU8DR/D,=LU8DRA/D,=LU8DRH/D, - =LU8DRQ/D,=LU8DSJ/D,=LU8DTF/D,=LU8DUJ/D,=LU8DVQ/D,=LU8DW/D,=LU8DWR/D,=LU8DX/D,=LU8DY/D,=LU8DZE/D, - =LU8DZH/D,=LU8EAG/D,=LU8EAJ/D,=LU8EBJ/D,=LU8EBJ/E,=LU8EBK/D,=LU8EBK/E,=LU8EC/D,=LU8ECF/D, - =LU8ECF/E,=LU8EEM/D,=LU8EFF/D,=LU8EGC/D,=LU8EGS/D,=LU8EHQ/D,=LU8EHQ/E,=LU8EHS/D,=LU8EHV/D, - =LU8EKC/D,=LU8EMC/D,=LU8ERH/D,=LU8ETC/D,=LU8EU/D,=LU8EXJ/D,=LU8EXN/D,=LU8FAU/D,=LU8VCC/D, - =LU8VER/D,=LU9ACJ/D,=LU9AEA/D,=LU9AJK/D,=LU9AOS/D,=LU9AUC/D,=LU9BGN/D,=LU9BRC/D,=LU9BSA/D, - =LU9CGN/D,=LU9CLH/D,=LU9DA/D,=LU9DAA/D,=LU9DAD/D,=LU9DB/D,=LU9DE/D,=LU9DEQ/D,=LU9DF/D,=LU9DGE/D, - =LU9DHL/D,=LU9DJS/D,=LU9DKO/D,=LU9DMG/D,=LU9DNV/D,=LU9DO/D,=LU9DPD/D,=LU9DPI/D,=LU9DPZ/E, - =LU9DSD/D,=LU9DVO/D,=LU9DX/D,=LU9EAG/D,=LU9ECE/D,=LU9EI/D,=LU9EIM/D,=LU9EJM/D,=LU9EJS/E,=LU9EJZ/D, - =LU9ENH/D,=LU9EOE/D,=LU9ERA/D,=LU9ESD/D,=LU9ESD/E,=LU9ESD/LH,=LU9EV/D,=LU9EV/E,=LU9EV/LH,=LU9EY/D, - =LU9EYE/D,=LU9EZX/D,=LU9HDR/D,=LU9HJV/D,=LU9HVR/D,=LU9USD/D,=LU9WM/D,=LV7E/D,=LW1DAL/D,=LW1DDX/D, - =LW1DE/D,=LW1DEN/D,=LW1DEW/D,=LW1DG/D,=LW1DJ/D,=LW1DOG/D,=LW1DQQ/D,=LW1DVB/D,=LW1DXH/D,=LW1DXP/D, - =LW1DYN/D,=LW1DYP/D,=LW1EA/D,=LW1ECE/D,=LW1ECO/D,=LW1ELI/D,=LW1EQI/D,=LW1EQZ/D,=LW1EVO/D, - =LW1EXU/D,=LW2DAF/D,=LW2DAW/D,=LW2DET/D,=LW2DJM/D,=LW2DKF/D,=LW2DNC/D,=LW2DOD/D,=LW2DOM/D, - =LW2DSM/D,=LW2DX/E,=LW2DYA/D,=LW2ECC/D,=LW2ECK/D,=LW2ECM/D,=LW2EFS/D,=LW2EHD/D,=LW2ENB/D, - =LW2EQS/D,=LW2EUA/D,=LW3DAB/D,=LW3DAW/D,=LW3DBM/D,=LW3DC/D,=LW3DED/D,=LW3DER/D,=LW3DFP/D,=LW3DG/D, - =LW3DGC/D,=LW3DJC/D,=LW3DKC/D,=LW3DKC/E,=LW3DKO/D,=LW3DKO/E,=LW3DN/D,=LW3DRW/D,=LW3DSM/D, - =LW3DSR/D,=LW3DTD/D,=LW3EB/D,=LW3EIH/D,=LW3EK/D,=LW3EMP/D,=LW4DAF/D,=LW4DBE/D,=LW4DBM/D,=LW4DCV/D, - =LW4DKI/D,=LW4DOR/D,=LW4DRH/D,=LW4DRH/E,=LW4DRV/D,=LW4DTM/D,=LW4DTR/D,=LW4DWV/D,=LW4DXH/D, - =LW4ECV/D,=LW4EIN/D,=LW4EM/D,=LW4EM/E,=LW4EM/LH,=LW4ERO/D,=LW4ESY/D,=LW4ETG/D,=LW4EZT/D,=LW4HCL/D, - =LW5DAD/D,=LW5DD/D,=LW5DFR/D,=LW5DHG/D,=LW5DIE/D,=LW5DLY/D,=LW5DNN/D,=LW5DOG/D,=LW5DQ/D,=LW5DR/D, - =LW5DR/LH,=LW5DTD/D,=LW5DTQ/D,=LW5DUS/D,=LW5DWX/D,=LW5EE/D,=LW5EO/D,=LW5EOL/D,=LW6DCA/D,=LW6DLS/D, - =LW6DTM/D,=LW6DW/D,=LW6DYH/D,=LW6DYZ/D,=LW6EAK/D,=LW6EEA/D,=LW6EFR/D,=LW6EGE/D,=LW6EHD/D, - =LW6EXM/D,=LW7DAF/D,=LW7DAG/D,=LW7DAJ/D,=LW7DAR/D,=LW7DFD/D,=LW7DGT/D,=LW7DJ/D,=LW7DKB/D, - =LW7DKX/D,=LW7DLY/D,=LW7DNS/E,=LW7DPJ/D,=LW7DVC/D,=LW7DWX/D,=LW7ECZ/D,=LW7EDH/D,=LW7EJV/D, - =LW7ELR/D,=LW7EOJ/D,=LW7HA/D,=LW8DAL/D,=LW8DCM/D,=LW8DIP/D,=LW8DMC/D,=LW8DMK/D,=LW8DPZ/E, - =LW8DRU/D,=LW8DYT/D,=LW8EAG/D,=LW8ECQ/D,=LW8EFR/D,=LW8EGA/D,=LW8EJ/D,=LW8ELR/D,=LW8EU/D,=LW8EVB/D, - =LW8EXF/D,=LW9DAD/D,=LW9DAE/D,=LW9DIH/D,=LW9DMM/D,=LW9DRD/D,=LW9DRT/D,=LW9DSP/D,=LW9DTP/D, - =LW9DTQ/D,=LW9DTR/D,=LW9DX/D,=LW9EAG/D,=LW9ECR/D,=LW9EDX/D,=LW9EGQ/D,=LW9ENF/D,=LW9ESY/D, - =LW9EUE/D,=LW9EUU/D,=LW9EVA/D,=LW9EVA/E,=LW9EVE/D,=LW9EYP/D,=LW9EZV/D,=LW9EZW/D,=LW9EZX/D, - =LW9EZY/D, + =LU1DLF/D,=LU1DMA/E,=LU1DMK/D,=LU1DNQ/D,=LU1DP/D,=LU1DQ/D,=LU1DS/D,=LU1DSO/D,=LU1DU/D,=LU1DVE/D, + =LU1DYP/D,=LU1DZ/D,=LU1DZ/E,=LU1DZR/D,=LU1EEE/D,=LU1EEZ/D,=LU1EFF/D,=LU1EJ/LH,=LU1EJ/YL,=LU1ELP/D, + =LU1ELY/D,=LU1EPC/D,=LU1EPF/D,=LU1EQ/D,=LU1EQU/D,=LU1ERA/D,=LU1EST/D,=LU1EUU/D,=LU1EW/D,=LU1EXU/D, + =LU1EY/D,=LU1HBD/D,=LU1HLH/D,=LU1KCQ/D,=LU1UAG/D,=LU1VDF/D,=LU1VOF/D,=LU1VYL/D,=LU1XWC/E,=LU1XZ/D, + =LU1YY/D,=LU2AAS/D,=LU2ABT/D,=LU2AEZ/D,=LU2AFE/D,=LU2AGQ/D,=LU2AHB/D,=LU2ALE/D,=LU2AMM/D, + =LU2AOZ/D,=LU2AVG/D,=LU2AVW/D,=LU2BJA/D,=LU2BN/D,=LU2BOE/D,=LU2BPM/D,=LU2CDE/D,=LU2CDO/D, + =LU2CHP/D,=LU2CM/D,=LU2CRV/D,=LU2DAR/D,=LU2DB/D,=LU2DG/D,=LU2DHM/D,=LU2DJB/D,=LU2DJC/D,=LU2DJL/D, + =LU2DKN/D,=LU2DPW/D,=LU2DRT/D,=LU2DT/D,=LU2DT/D/LH,=LU2DT/LGT,=LU2DT/LH,=LU2DVF/D,=LU2ED/D, + =LU2EDC/D,=LU2EE/D,=LU2EE/E,=LU2EFI/D,=LU2EGA/D,=LU2EGI/D,=LU2EGP/D,=LU2EHA/D,=LU2EIT/D,=LU2EJL/D, + =LU2EK/D,=LU2ELT/D,=LU2EMQ/D,=LU2ENG/D,=LU2ENH/D,=LU2EPL/D,=LU2EPP/D,=LU2ERC/D,=LU2FBX/D, + =LU2FGD/D,=LU2FNH/D,=LU2HOD/D,=LU2JFC/D,=LU2VDV/D,=LU2YF/D,=LU3AAL/D,=LU3ADC/D,=LU3AJL/D, + =LU3AOI/D,=LU3ARE/D,=LU3ARM/D,=LU3AYE/D,=LU3CA/D,=LU3CM/D,=LU3CRA/D,=LU3CT/D,=LU3DAR/D,=LU3DAT/D, + =LU3DAT/E,=LU3DC/D,=LU3DEY/D,=LU3DFD/D,=LU3DH/D,=LU3DHF/D,=LU3DJA/D,=LU3DJI/D,=LU3DJT/D,=LU3DK/D, + =LU3DLF/D,=LU3DMZ/D,=LU3DO/D,=LU3DOC/D,=LU3DP/D,=LU3DPH/D,=LU3DQJ/D,=LU3DR/D,=LU3DRP/D,=LU3DRP/E, + =LU3DXG/D,=LU3DXI/D,=LU3DY/D,=LU3DYN/D,=LU3DZO/D,=LU3EBS/D,=LU3ED/D,=LU3EDU/D,=LU3EFL/D,=LU3EJ/L, + =LU3EJD/D,=LU3ELR/D,=LU3EMB/D,=LU3EOU/D,=LU3EP/D,=LU3ERU/D,=LU3ES/D,=LU3ESY/D,=LU3EZA/D,=LU3FCI/D, + =LU3HKA/D,=LU4AA/D,=LU4AAO/D,=LU4AAO/E,=LU4ACA/D,=LU4ADE/D,=LU4AJC/D,=LU4ARU/D,=LU4BAN/D, + =LU4BFP/D,=LU4BMG/D,=LU4BR/D,=LU4CMF/D,=LU4DBL/D,=LU4DBP/D,=LU4DBT/D,=LU4DBV/D,=LU4DCE/D, + =LU4DCY/D,=LU4DGC/D,=LU4DHA/D,=LU4DHC/D,=LU4DHE/D,=LU4DIS/D,=LU4DJB/D,=LU4DK/D,=LU4DLJ/D, + =LU4DLL/D,=LU4DLN/D,=LU4DMI/D,=LU4DPB/D,=LU4DQ/D,=LU4DRC/D,=LU4DRH/D,=LU4DRH/E,=LU4DVD/D, + =LU4EAE/D,=LU4EET/D,=LU4EGP/D,=LU4EHP/D,=LU4EJ/D,=LU4EL/D,=LU4ELE/D,=LU4EOU/D,=LU4ERS/D,=LU4ESP/D, + =LU4ETD/D,=LU4ETN/D,=LU4EV/D,=LU4HSA/D,=LU4HTD/D,=LU4MA/D,=LU4UWZ/D,=LU4UZW/D,=LU4VEN/D,=LU4VSD/D, + =LU4WAP/D,=LU5AHN/D,=LU5ALE/D,=LU5ALS/D,=LU5AM/D,=LU5ANL/D,=LU5AQV/D,=LU5ARS/D,=LU5ASA/D, + =LU5AVD/D,=LU5BDS/D,=LU5BE/D,=LU5BTL/D,=LU5CBA/D,=LU5CRE/D,=LU5DA/D,=LU5DA/E,=LU5DAS/D,=LU5DCO/D, + =LU5DDH/D,=LU5DEM/D,=LU5DF/D,=LU5DFR/D,=LU5DFT/D,=LU5DGG/D,=LU5DGR/D,=LU5DHE/D,=LU5DIT/D, + =LU5DJE/D,=LU5DKE/D,=LU5DLH/D,=LU5DLT/D,=LU5DLZ/D,=LU5DMI/D,=LU5DMP/D,=LU5DMR/D,=LU5DQ/D, + =LU5DRV/D,=LU5DSH/D,=LU5DSM/D,=LU5DT/D,=LU5DTB/D,=LU5DTF/D,=LU5DUC/D,=LU5DVB/D,=LU5DWS/D, + =LU5DYT/D,=LU5EAO/D,=LU5EC/D,=LU5ED/D,=LU5EDS/D,=LU5EFG/D,=LU5EH/D,=LU5EHC/D,=LU5EJL/D,=LU5EM/D, + =LU5EP/D,=LU5EW/D,=LU5FZ/D,=LU5FZ/E,=LU5JAH/D,=LU5JIB/D,=LU5OD/D,=LU5VAS/D,=LU5VAT/D,=LU5XP/D, + =LU5YBR/D,=LU5YF/D,=LU6AER/D,=LU6AMT/D,=LU6CN/D,=LU6DAX/D,=LU6DBL/D,=LU6DC/D,=LU6DCT/D,=LU6DDC/D, + =LU6DG/D,=LU6DIE/D,=LU6DIO/D,=LU6DK/D,=LU6DKT/D,=LU6DL/D,=LU6DM/D,=LU6DO/D,=LU6DRD/D,=LU6DRD/E, + =LU6DRN/D,=LU6DRR/D,=LU6DSA/D,=LU6DTB/D,=LU6EAG/D,=LU6EC/D,=LU6EDC/D,=LU6EE/D,=LU6EEG/D,=LU6EGO/D, + =LU6EI/D,=LU6EJJ/D,=LU6EKL/D,=LU6ELP/D,=LU6EMM/D,=LU6ENA/D,=LU6EPE/D,=LU6EPR/D,=LU6EPR/E, + =LU6EQV/D,=LU6EU/D,=LU6EVD/D,=LU6EWR/D,=LU6EXD/D,=LU6HBB/D,=LU6JJ/D,=LU6UAL/D,=LU6UO/D,=LU6UVI/D, + =LU6XQ/D,=LU7AA/D,=LU7AC/D,=LU7ADC/D,=LU7ADN/D,=LU7ARI/D,=LU7ART/D,=LU7AVW/D,=LU7BSN/D,=LU7BTO/D, + =LU7BTO/E,=LU7CAW/D,=LU7CC/E,=LU7CP/D,=LU7DAC/D,=LU7DAF/D,=LU7DAJ/D,=LU7DAR/D,=LU7DBA/D,=LU7DBL/D, + =LU7DCE/D,=LU7DD/D,=LU7DDC/D,=LU7DDO/D,=LU7DHE/D,=LU7DHG/D,=LU7DJH/D,=LU7DLN/D,=LU7DNM/D, + =LU7DOT/D,=LU7DP/D,=LU7DR/D,=LU7DS/D,=LU7DSC/D,=LU7DSS/D,=LU7DSU/D,=LU7DSY/D,=LU7DTC/D,=LU7DW/D, + =LU7DZL/D,=LU7DZL/E,=LU7DZV/D,=LU7ECZ/D,=LU7EGY/D,=LU7EHL/D,=LU7EIA/D,=LU7EJC/D,=LU7ELY/D, + =LU7EMA/D,=LU7EMM/D,=LU7ENP/D,=LU7EO/D,=LU7EON/D,=LU7EPC/D,=LU7ETR/D,=LU7EXX/D,=LU7HBL/D,=LU7HW/D, + =LU7HZ/D,=LU7VCH/D,=LU8ABR/D,=LU8ACH/D,=LU8ADX/D,=LU8AE/D,=LU8ARI/D,=LU8ATM/D,=LU8DAF/D,=LU8DCF/D, + =LU8DCH/D,=LU8DCK/D,=LU8DCM/D,=LU8DIP/D,=LU8DIW/D,=LU8DJR/D,=LU8DLD/D,=LU8DLT/D,=LU8DMD/D, + =LU8DQ/D,=LU8DR/D,=LU8DRA/D,=LU8DRH/D,=LU8DRQ/D,=LU8DSJ/D,=LU8DTF/D,=LU8DUJ/D,=LU8DVQ/D,=LU8DW/D, + =LU8DWR/D,=LU8DX/D,=LU8DY/D,=LU8DZE/D,=LU8DZH/D,=LU8EAG/D,=LU8EAJ/D,=LU8EBJ/D,=LU8EBJ/E,=LU8EBK/D, + =LU8EBK/E,=LU8EC/D,=LU8ECF/D,=LU8ECF/E,=LU8EEM/D,=LU8EFF/D,=LU8EGC/D,=LU8EGS/D,=LU8EHQ/D, + =LU8EHQ/E,=LU8EHS/D,=LU8EHV/D,=LU8EKC/D,=LU8EMC/D,=LU8ERH/D,=LU8ETC/D,=LU8EU/D,=LU8EXJ/D, + =LU8EXN/D,=LU8FAU/D,=LU8VCC/D,=LU8VER/D,=LU9ACJ/D,=LU9AEA/D,=LU9AJK/D,=LU9AOS/D,=LU9AUC/D, + =LU9BGN/D,=LU9BRC/D,=LU9BSA/D,=LU9CGN/D,=LU9CLH/D,=LU9DA/D,=LU9DAA/D,=LU9DAD/D,=LU9DB/D,=LU9DE/D, + =LU9DEQ/D,=LU9DF/D,=LU9DGE/D,=LU9DHL/D,=LU9DJS/D,=LU9DKO/D,=LU9DMG/D,=LU9DNV/D,=LU9DO/D,=LU9DPD/D, + =LU9DPI/D,=LU9DPZ/E,=LU9DSD/D,=LU9DVO/D,=LU9DX/D,=LU9EAG/D,=LU9ECE/D,=LU9EI/D,=LU9EIM/D,=LU9EJM/D, + =LU9EJS/E,=LU9EJZ/D,=LU9ENH/D,=LU9EOE/D,=LU9ERA/D,=LU9ESD/D,=LU9ESD/E,=LU9ESD/LH,=LU9EV/D, + =LU9EV/E,=LU9EV/LH,=LU9EY/D,=LU9EYE/D,=LU9EZX/D,=LU9HDR/D,=LU9HJV/D,=LU9HVR/D,=LU9USD/D,=LU9WM/D, + =LV7E/D,=LW1DAL/D,=LW1DDX/D,=LW1DE/D,=LW1DEN/D,=LW1DEW/D,=LW1DG/D,=LW1DJ/D,=LW1DOG/D,=LW1DQQ/D, + =LW1DVB/D,=LW1DXH/D,=LW1DXP/D,=LW1DYN/D,=LW1DYP/D,=LW1EA/D,=LW1ECE/D,=LW1ECO/D,=LW1ELI/D, + =LW1EQI/D,=LW1EQZ/D,=LW1EVO/D,=LW1EXU/D,=LW2DAF/D,=LW2DAW/D,=LW2DET/D,=LW2DJM/D,=LW2DKF/D, + =LW2DNC/D,=LW2DOD/D,=LW2DOM/D,=LW2DSM/D,=LW2DX/E,=LW2DYA/D,=LW2ECC/D,=LW2ECK/D,=LW2ECM/D, + =LW2EFS/D,=LW2EHD/D,=LW2ENB/D,=LW2EQS/D,=LW2EUA/D,=LW3DAB/D,=LW3DAW/D,=LW3DBM/D,=LW3DC/D, + =LW3DED/D,=LW3DER/D,=LW3DFP/D,=LW3DG/D,=LW3DGC/D,=LW3DJC/D,=LW3DKC/D,=LW3DKC/E,=LW3DKO/D, + =LW3DKO/E,=LW3DN/D,=LW3DRW/D,=LW3DSM/D,=LW3DSR/D,=LW3DTD/D,=LW3EB/D,=LW3EIH/D,=LW3EK/D,=LW3EMP/D, + =LW4DAF/D,=LW4DBE/D,=LW4DBM/D,=LW4DCV/D,=LW4DKI/D,=LW4DOR/D,=LW4DRH/D,=LW4DRH/E,=LW4DRV/D, + =LW4DTM/D,=LW4DTR/D,=LW4DWV/D,=LW4DXH/D,=LW4ECV/D,=LW4EIN/D,=LW4EM/D,=LW4EM/E,=LW4EM/LH,=LW4ERO/D, + =LW4ESY/D,=LW4ETG/D,=LW4EZT/D,=LW4HCL/D,=LW5DAD/D,=LW5DD/D,=LW5DFR/D,=LW5DHG/D,=LW5DIE/D, + =LW5DLY/D,=LW5DNN/D,=LW5DOG/D,=LW5DQ/D,=LW5DR/D,=LW5DR/LH,=LW5DTD/D,=LW5DTQ/D,=LW5DUS/D,=LW5DWX/D, + =LW5EE/D,=LW5EO/D,=LW5EOL/D,=LW6DCA/D,=LW6DLS/D,=LW6DTM/D,=LW6DW/D,=LW6DYH/D,=LW6DYZ/D,=LW6EAK/D, + =LW6EEA/D,=LW6EFR/D,=LW6EGE/D,=LW6EHD/D,=LW6EXM/D,=LW7DAF/D,=LW7DAG/D,=LW7DAJ/D,=LW7DAR/D, + =LW7DFD/D,=LW7DGT/D,=LW7DJ/D,=LW7DKB/D,=LW7DKX/D,=LW7DLY/D,=LW7DNS/E,=LW7DPJ/D,=LW7DVC/D, + =LW7DWX/D,=LW7ECZ/D,=LW7EDH/D,=LW7EJV/D,=LW7ELR/D,=LW7EOJ/D,=LW7HA/D,=LW8DAL/D,=LW8DCM/D, + =LW8DIP/D,=LW8DMC/D,=LW8DMK/D,=LW8DPZ/E,=LW8DRU/D,=LW8DYT/D,=LW8EAG/D,=LW8ECQ/D,=LW8EFR/D, + =LW8EGA/D,=LW8EJ/D,=LW8ELR/D,=LW8EU/D,=LW8EVB/D,=LW8EXF/D,=LW9DAD/D,=LW9DAE/D,=LW9DIH/D,=LW9DMM/D, + =LW9DRD/D,=LW9DRT/D,=LW9DSP/D,=LW9DTP/D,=LW9DTQ/D,=LW9DTR/D,=LW9DX/D,=LW9EAG/D,=LW9ECR/D, + =LW9EDX/D,=LW9EGQ/D,=LW9ENF/D,=LW9ESY/D,=LW9EUE/D,=LW9EUU/D,=LW9EVA/D,=LW9EVA/E,=LW9EVE/D, + =LW9EYP/D,=LW9EZV/D,=LW9EZW/D,=LW9EZX/D,=LW9EZY/D, =LS4AA/F,=LT2F/F,=LU1FFF/F,=LU1FHE/F,=LU1FMC/F,=LU1FMS/F,=LU1FSE/F,=LU1FVG/F,=LU2FDA/F,=LU2FGD/F, =LU2FLB/F,=LU2FNA/F,=LU2FP/F,=LU3FCA/F,=LU3FCI/F,=LU3FLG/F,=LU3FMD/F,=LU3FV/F,=LU3FVH/F,=LU4AA/F, =LU4ETN/F,=LU4FKS/F,=LU4FM/F,=LU4FNO/F,=LU4FNP/F,=LU4FOO/F,=LU4HOD/F,=LU5ASA/F,=LU5FB/F,=LU5FBM/F, @@ -1934,8 +1951,8 @@ Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: =LU5JKI/J,=LU5JLA/J,=LU5JLX/J,=LU5JNC/J,=LU5JOL/J,=LU5JU/J,=LU5JZZ/J,=LU6JAF/J,=LU6JRA/J, =LU7DAC/J,=LU7JI/J,=LU7JLB/J,=LU7JMS/J,=LU7JR/J,=LU7JRM/J,=LU8JOP/J,=LU9CYV/J,=LU9JLV/J,=LU9JMG/J, =LU9JPR/J,=LU9YB/J,=LW2DRJ/J,=LW3EMP/J, - =LU1KAF/K,=LU1KWC/K,=LU2KLC/K,=LU4KC/K,=LU5KAH/K,=LU5OM/K,=LU6KAQ/K,=LU7KHB/K,=LU7KT/K,=LU8KE/K, - =LU9KMB/K,=LW1EVO/K,=LW3DFP/K, + =LU1KAF/K,=LU1KWC/K,=LU2KLC/K,=LU4AA/K,=LU4KC/K,=LU5KAH/K,=LU5OM/K,=LU6KAQ/K,=LU7KHB/K,=LU7KT/K, + =LU8KE/K,=LU9KMB/K,=LW1EVO/K,=LW3DFP/K, =LU1AAS/L,=LU1DZ/L,=LU1LAA/L,=LU1LT/L,=LU1LTL/L,=LU2LDB/L,=LU3AYE/L,=LU4AGC/L,=LU4EFC/L,=LU4LAD/L, =LU4LBU/L,=LU4LMA/L,=LU5FZ/L,=LU5ILA/L,=LU5LAE/L,=LU5LBV/L,=LU6JRA/L,=LU8IEZ/L,=LU8LFV/L, =LU9GOO/L,=LU9GOY/L,=LU9JX/L,=LU9LEW/L,=LU9LOP/L,=LU9LZY/L,=LU9LZZ/L,=LU9XPA/L,=LW3EMP/L, @@ -2048,7 +2065,7 @@ Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: =LU5XWA/XP[16],=LU6EE/XA[16],=LU6XAH/X[16],=LU7DSY/XA[16],=LU7EUI/XP[16],=LU7XDY/X[16], =LU7XDY/XA[16],=LU7XSC/XP[16],=LU8DLD/XA[16],=LU8DRA/XA[16],=LU8EOT/X[16],=LU8XC/X[16], =LU8XUU/XP[16],=LU8XW/X[16],=LU8XW/XP[16],=LU9DPD/XA[16],=LU9HUP/X[16],=LW3DKO/XA[16], - =LW3ET/XP[16], + =LW3DVN/X[16],=LW3ET/XP[16], AY0Y[16],AY1Y[16],AY2Y[16],AY3Y[16],AY4Y[16],AY5Y[16],AY6Y[16],AY7Y[16],AY8Y[16],AY9Y[16], AZ0Y[16],AZ1Y[16],AZ2Y[16],AZ3Y[16],AZ4Y[16],AZ5Y[16],AZ6Y[16],AZ7Y[16],AZ8Y[16],AZ9Y[16], L20Y[16],L21Y[16],L22Y[16],L23Y[16],L24Y[16],L25Y[16],L26Y[16],L27Y[16],L28Y[16],L29Y[16], @@ -2081,7 +2098,7 @@ Luxembourg: 14: 27: EU: 50.00: -6.00: -1.0: LX: Lithuania: 15: 29: EU: 55.45: -23.63: -2.0: LY: LY,=LY/4X4FC/LH,=LY/4Z5KJ/LH,=LY1CM/A/LH,=LY1CM/LH,=LY1CM/P/LGT,=LY1CM/P/LH,=LY1DF/LH,=LY1DR/LGT, =LY1DS/LH,=LY1FW/LH,=LY2BIG/LH,=LY2DX/LGT,=LY2DX/LH,=LY2FN/LGT,=LY2FN/LH,=LY2UF/LGT,=LY2UF/LH, - =LY3BW/LH,=LY3MU/LH,=LY3TT/LH,=LY4Y/LH,=LY5O/P/LH,=LY5W/P/LH; + =LY3BW/LH,=LY3MU/LH,=LY3TT/LH,=LY4Y/LH,=LY5O/P/LH,=LY5W/P/LH,=YL/LY1CM/LH; Bulgaria: 20: 28: EU: 42.83: -25.08: -2.0: LZ: LZ,=LZ/G0SGB/LH,=LZ2NU/LH,=LZ4HWF/LH; Peru: 10: 12: SA: -10.00: 76.00: 5.0: OA: @@ -2109,11 +2126,11 @@ Finland: 15: 18: EU: 63.78: -27.08: -2.0: OH: =OH2BXT/S,=OH2C/S,=OH2EO/S,=OH2ET/LH,=OH2ET/LS,=OH2ET/S,=OH2FBX/S,=OH2FBX/SA,=OH2HK/S,=OH2HZ/S, =OH2MEE/S,=OH2MEE/SA,=OH2MH/S,=OH2MO/S,=OH2MO/SA,=OH2NAS/S,=OH2NAS/SA,=OH2NM/LH,=OH2PO/S, =OH2PO/SA,=OH2S/S,=OH2S/SA,=OH2XL/S,=OH2XMP/S,=OH2ZL/SA,=OH2ZY/S,=OI2ABG/S, - =OF3HHO/S,=OF3KRB/S,=OG3X/LH,=OH3A/LH,=OH3ABN/S,=OH3ACA/S,=OH3AG/LH,=OH3CT/S,=OH3CT/SA,=OH3FJQ/S, - =OH3FJQ/SA,=OH3GDO/LH,=OH3GQM/S,=OH3HB/S,=OH3HB/SA,=OH3HHO/S,=OH3HHO/SA,=OH3IH/S,=OH3IH/SA, - =OH3IS/S,=OH3KRB/S,=OH3KRB/SA,=OH3LB/S,=OH3LB/SA,=OH3LS/S,=OH3MY/S,=OH3MY/SA,=OH3N/S,=OH3NOB/S, - =OH3NVK/S,=OH3R/SA,=OH3SUF/JOTA,=OH3TAM/LH,=OH3VV/S,=OH3W/S,=OH3WR/SA,=OI3SVM/S,=OI3SVM/SA, - =OI3V/LH,=OI3V/S,=OI3V/SA,=OI3W/LGT,=OI3W/LH, + =OF3HHO/S,=OF3KRB/S,=OG3X/LH,=OH0MZA/3,=OH3A/LH,=OH3ABN/S,=OH3ACA/S,=OH3AG/LH,=OH3CT/S,=OH3CT/SA, + =OH3FJQ/S,=OH3FJQ/SA,=OH3GDO/LH,=OH3GQM/S,=OH3HB/S,=OH3HB/SA,=OH3HHO/S,=OH3HHO/SA,=OH3IH/S, + =OH3IH/SA,=OH3IS/S,=OH3KRB/S,=OH3KRB/SA,=OH3LB/S,=OH3LB/SA,=OH3LS/S,=OH3MY/S,=OH3MY/SA,=OH3N/S, + =OH3NOB/S,=OH3NVK/S,=OH3R/SA,=OH3SUF/JOTA,=OH3TAM/LH,=OH3VV/S,=OH3W/S,=OH3WR/SA,=OI3SVM/S, + =OI3SVM/SA,=OI3V/LH,=OI3V/S,=OI3V/SA,=OI3W/LGT,=OI3W/LH, =OG0V/4,=OH0I/4,=OH0V/4,=OH4FSL/SA,=OH4N/S,=OH4SG/S,=OI4JM/S,=OI4JM/SA,=OI4PM/S, =OF200AD/LS,=OF200AD/S,=OF5AD/S,=OG5A/LS,=OG5A/S,=OH0AW/5,=OH5A/S,=OH5AA/LS,=OH5AD/LS,=OH5AD/S, =OH5B/LH,=OH5EAB/S,=OH5EAB/SA,=OH5GOE/S,=OH5J/S,=OH5J/SA,=OH5JJL/S,=OH5K/S,=OH5LP/S,=OH5LP/SA, @@ -2134,7 +2151,7 @@ Czech Republic: 15: 28: EU: 50.00: -16.00: -1.0: OK: OK,OL,=OK6RA/APF,=OK9BAR/YL,=OL0R/J, =OK1KCR/J,=OK1KI/YL; Slovak Republic: 15: 28: EU: 49.00: -20.00: -1.0: OM: - OM,=VERSION; + OM; Belgium: 14: 27: EU: 50.70: -4.85: -1.0: ON: ON,OO,OP,OQ,OR,OS,OT,=ON3BLB/YL,=ON3TC/YL,=ON4BRC/J,=ON4BRN/LGT,=ON4BRN/LH,=ON4BRN/LS,=ON4BRN/SUB, =ON4CCC/LGT,=ON4CCC/LH,=ON4CEL/LGT,=ON4CEL/LH,=ON4CIS/LGT,=ON4CIS/LH,=ON4CJK/LH,=ON4CKZ/LH, @@ -2314,9 +2331,9 @@ Palau: 27: 64: OC: 7.45: -134.53: -9.0: T8: Asiatic Turkey: 20: 39: AS: 39.18: -35.65: -2.0: TA: TA,TB,TC,YM,=TC50TRAC/01K,=TC50TRAC/17B,=TC50TRAC/18E,=TC50TRAC/28GR,=TC50TRAC/41KF, =TA1AD/0,=TA1E/0,=TA1ED/0,=TA1FL/0,=TA1ZK/0,=TC0SV/LH, - =TA1AJJ/2,=TA1BX/2,=TA1BZ/2,=TA1C/2,=TA1CM/2,=TA1FA/2,=TA1FM/2,=TA1HZ/2,=TA2IJ/YOM,=TC2ELH/LH, - =TC50TRAC/34K,=TC50TRAC/41G,=TC50TRAC/41K,=TC50TRAC/67E,=TC50TRAC/67Z,=YM1SIZ/2, - =TA1BM/3,=TA1BX/3,=TA1BX/3/M,=TA1D/3,=TA3J/LH,=TC50TRAC/10B,=TC50TRAC/16M,=TC50TRAC/35I, + =TA1AJJ/2,=TA1BX/2,=TA1BZ/2,=TA1C/2,=TA1CM/2,=TA1CX/2,=TA1FA/2,=TA1FM/2,=TA1HZ/2,=TA2IJ/YOM, + =TC2ELH/LH,=TC50TRAC/34K,=TC50TRAC/41G,=TC50TRAC/41K,=TC50TRAC/67E,=TC50TRAC/67Z,=YM1SIZ/2, + =TA1BM/3,=TA1BX/3,=TA1BX/3/M,=TA1D/3,=TA1UT/3,=TA3J/LH,=TC50TRAC/10B,=TC50TRAC/16M,=TC50TRAC/35I, =TC50TRAC/35K, =TA1AO/4,=TA1D/4,=TA1HZ/4,=TA3J/4/LGT,=TA4/DJ5AA/LH,=TC50TRAC/03D,=TC50TRAC/15B, =TC50TRAC/01A,=TC50TRAC/80K,=TC50TRAC/80O, @@ -2355,36 +2372,37 @@ Benin: 35: 46: AF: 9.87: -2.25: -1.0: TY: Mali: 35: 46: AF: 18.00: 2.58: 0.0: TZ: TZ; European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: - R,U,=R0AGD/6,=R0CAF/1,=R0XAD/6/P,=R25EMW(17)[19],=R80PSP,=R80UPOL,=R8CT/4/P,=R8FF/3/M,=R90DOSAAF, - =R9AV/6,=R9FCH/6,=R9JBF/1,=R9JI/1,=R9KC/6/M,=R9WR/1,=R9XAU/6,=RA0AM/6,=RA0BM/6,=RA0ZZ/3, - =RA3CQ/9/M(17)[20],=RA80SP,=RA9JR/3,=RA9JX/3,=RA9P/4,=RA9RT/3,=RA9UUY/6,=RA9YA/6,=RC80SP,=RC8C/6, - =RG0F/5,=RG50P(17),=RG50P/9(17)[30],=RJ80SP,=RK80X(17)[19],=RK8O/4,=RL9AA/6,=RM80SP,=RM8A/4/M, - =RM94AE,=RN9M/4,=RN9OI/3,=RO80RO,=RP61XX(17)[19],=RP62X(17)[19],=RP63X(17)[19],=RP63XO(17)[19], - =RP64X(17)[19],=RP65FPP(17)[30],=RP8X(17)[30],=RQ80SP,=RT9T/1,=RT9T/3,=RU0ZW/6,=RU2FB/3, - =RU2FB/3/P,=RU4SS/9(17)[30],=RU4WA/9(17)[30],=RU9MU/3,=RV9LM/3,=RV9XX/3,=RW0IM/1,=RW0QE/6,=RW2F/6, - =RW9FF/3,=RW9W/3,=RW9W/4,=RX2FS/3,=RX9KT/6,=RX9TC/1,=RX9UL/1,=RZ9AWN/6,=UA0AK/3,=UA0FQ/6, - =UA0KBG/3,=UA0KBG/6,=UA0KCX/3/P,=UA0KT/4,=UA0QNE/3,=UA0QNU/3,=UA0QQJ/3,=UA0UV/6,=UA0XAK/3, - =UA0XAK/6,=UA9CCO/6,=UA9CDC/3,=UA9CTT/3,=UA9FFS/1/MM,=UE23DKA,=UE6MAC/9(17),=UE95AE,=UE95E, - =UE95ME,=UE96ME,=UE99PS, + R,U,=R0AGD/6,=R0CAF/1,=R0XAD/6/P,=R25EMW(17)[19],=R7AB/M,=R7AB/P,=R80PSP,=R80UPOL,=R8CT/4/P, + =R8FF/3/M,=R8FF/7,=R90DOSAAF,=R9AV/6,=R9FCH/6,=R9JBF/1,=R9JI/1,=R9KC/6/M,=R9WR/1,=R9XAU/6, + =RA0AM/6,=RA0BM/6,=RA0ZZ/3,=RA3CQ/9/M(17)[20],=RA80SP,=RA9JR/3,=RA9JX/3,=RA9P/4,=RA9RT/3, + =RA9UUY/6,=RA9YA/6,=RC80SP,=RC8C/6,=RG0F/5,=RG50P(17),=RG50P/9(17)[30],=RJ80SP,=RK80X(17)[19], + =RK8O/4,=RL9AA/6,=RM80SP,=RM8A/4/M,=RM94AE,=RN9M/4,=RN9OI/3,=RO80RO,=RP61XX(17)[19], + =RP62X(17)[19],=RP63X(17)[19],=RP63XO(17)[19],=RP64X(17)[19],=RP65FPP(17)[30],=RP8X(17)[30], + =RQ80SP,=RT9T/3,=RU0ZW/6,=RU2FB/3,=RU2FB/3/P,=RU4SS/9(17)[30],=RU4WA/9(17)[30],=RU9MU/3,=RV1CC/M, + =RV9LM/3,=RV9XX/3,=RW0IM/1,=RW0QE/6,=RW2F/6,=RW9FF/3,=RW9W/3,=RW9W/4,=RX2FS/3,=RX9TC/1,=RX9UL/1, + =RZ9AWN/6,=UA0AK/3,=UA0FQ/6,=UA0KBG/3,=UA0KBG/6,=UA0KCX/3/P,=UA0KT/4,=UA0QNE/3,=UA0QNU/3, + =UA0QQJ/3,=UA0UV/6,=UA0XAK/3,=UA0XAK/6,=UA9CCO/6,=UA9CDC/3,=UA9CTT/3,=UA9FFS/1/MM,=UE23DKA, + =UE6MAC/9(17),=UE95AE,=UE95E,=UE95ME,=UE96ME,=UE99PS, =R900BL,=R9J/1,=RA2FN/1,=RA9KU/1,=RA9KU/1/M,=RA9MC/1,=RA9SGI/1,=RK9XWV/1,=RL1O,=RM0L/1,=RM80DZ, - =RN85AM,=RN85KN,=RU2FB/1,=RU9YT/1,=RU9YT/1/P,=RW1AI/ANT,=RW1AI/LH,=RW8W/1,=RW9QA/1,=RX3AMI/1/LH, - =UA1ADQ/ANT,=UA1BJ/ANT,=UA1JJ/ANT,=UA2FFX/1,=UA9B/1,=UA9KG/1,=UA9KGH/1,=UA9KK/1,=UA9UDX/1, - =UB9YUW/1,=UE21A,=UE21B,=UE21M,=UE22A,=UE25AC,=UE25AQ,=UE2AT/1, - =R0XAC/1,=R8XF/1,=R900DM,=R90LPU,=R9JNO/1,=RA0FU/1,=RA9FNV/1,=RN9N/1,=RU9MU/1,=RV0CA/1,=RV1CC/1, - =RV2FW/1,=RV9JD/1,=RX9TN/1,=UA0BDS/1,=UA0SIK/1,=UA1CDA/LH,=UA1CIO/LH,=UA9MA/1,=UA9MQR/1,=UB5O/1, + =RN85AM,=RN85KN,=RT9T/1,=RU2FB/1,=RU9YT/1,=RU9YT/1/P,=RW1AI/ANT,=RW1AI/LH,=RW8W/1,=RW9QA/1, + =RX3AMI/1/LH,=UA1ADQ/ANT,=UA1BJ/ANT,=UA1JJ/ANT,=UA2FFX/1,=UA9B/1,=UA9KG/1,=UA9KGH/1,=UA9KK/1, + =UA9UDX/1,=UB9YUW/1,=UE21A,=UE21B,=UE21M,=UE22A,=UE25AC,=UE25AQ,=UE2AT/1, + =R0XAC/1,=R8XF/1,=R900DM,=R90LPU,=R9JNO/1,=RA0FU/1,=RA9FNV/1,=RN9N/1,=RU9MU/1,=RV0CA/1,=RV2FW/1, + =RV9JD/1,=RX9TN/1,=UA0BDS/1,=UA0SIK/1,=UA1CDA/LH,=UA1CIO/LH,=UA9MA/1,=UA9MQR/1, R1N[19],RA1N[19],RC1N[19],RD1N[19],RE1N[19],RF1N[19],RG1N[19],RJ1N[19],RK1N[19],RL1N[19],RM1N[19], RN1N[19],RO1N[19],RQ1N[19],RT1N[19],RU1N[19],RV1N[19],RW1N[19],RX1N[19],RY1N[19],RZ1N[19],U1N[19], UA1N[19],UB1N[19],UC1N[19],UD1N[19],UE1N[19],UF1N[19],UG1N[19],UH1N[19],UI1N[19],=R01DTV/1[19], - =R85KFF[19],=R90K[19],=RK75OP[19],=RN1NA/ANT[19],=RO25KL[19],=RO75RK[19],=RP72PT[19],=RP72RK[19], - =RP73PT[19],=RP73RK[19],=RP74PT[19],=RP74RK[19],=RP75PT[19],=RP75RK[19],=RV9JD/1/M[19], + =R100RK[19],=R85KFF[19],=R90K[19],=RK75OP[19],=RN1NA/ANT[19],=RO25KL[19],=RO75RK[19],=RP72PT[19], + =RP72RK[19],=RP73PT[19],=RP73RK[19],=RP74PT[19],=RP74RK[19],=RP75PT[19],=RP75RK[19],=RV1CC/1[19], + =RV9JD/1/M[19], R1O[19],RA1O[19],RC1O[19],RD1O[19],RE1O[19],RF1O[19],RG1O[19],RJ1O[19],RK1O[19],RL1O[19],RM1O[19], RN1O[19],RO1O[19],RQ1O[19],RT1O[19],RU1O[19],RV1O[19],RW1O[19],RX1O[19],RY1O[19],RZ1O[19],U1O[19], UA1O[19],UB1O[19],UC1O[19],UD1O[19],UE1O[19],UF1O[19],UG1O[19],UH1O[19],UI1O[19],=R0000O[19], - =R100FA[19],=R100K[19],=R20ARRS[19],=R25ILIM[19],=R8FF/1[19],=R9LI/1[19],=R9MCM/1[19], + =R100FA[19],=R100K[19],=R20ARRS[19],=R25ILIM[19],=R5QA/1[19],=R8FF/1[19],=R9LI/1[19],=R9MCM/1[19], =RA0NN/1[19],=RA9XA/1[19],=RA9XA/1/P[19],=RK0SE/1[19],=RM9X/1[19],=RO80KEDR[19],=RP72A[19], =RP73A[19],=RP73AU[19],=RP74A[19],=RP74AU[19],=RP75A[19],=RP75AOS[19],=RP75AU[19],=RP75NK[19], =RP75OM[19],=UA1PAC/ANT[19],=UA9UAX/1[19],=UA9UAX/1/M[19],=UA9XK/1[19],=UA9XMC/1[19], - =UA9XRK/1[19],=UE25IK[19],=UE80AR[19],=UE80AR/M[19],=UE80AR/P[19],=UE90PR[19], + =UA9XRK/1[19],=UB5O/1[19],=UE25IK[19],=UE80AR[19],=UE80AR/M[19],=UE80AR/P[19],=UE90PR[19], R1P[20],RA1P[20],RC1P[20],RD1P[20],RE1P[20],RF1P[20],RG1P[20],RJ1P[20],RK1P[20],RL1P[20],RM1P[20], RN1P[20],RO1P[20],RQ1P[20],RT1P[20],RU1P[20],RV1P[20],RW1P[20],RX1P[20],RY1P[20],RZ1P[20],U1P[20], UA1P[20],UB1P[20],UC1P[20],UD1P[20],UE1P[20],UF1P[20],UG1P[20],UH1P[20],UI1P[20],=R8XW/1[20], @@ -2400,14 +2418,14 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =RA9CFH/1[19],=RA9CFH/1/P[19],=RK21Z[19],=RK3DZJ/1/LH[19],=RM9WN/1[19],=RP72MU[19],=RP73MU[19], =RP73ZP[19],=RP74ZP[19],=RP75BFS[19],=RP75EP[19],=RP75PL[19],=RU1ZC/ANT[19],=RW1ZQ/LH[19], =RY83HN[19],=UB1ZBD/N[19], - =R01DTV/3,=R85PAR,=R870B,=R870C,=R870K,=R870M,=R870O,=R8FF/3,=R9FM/3,=RA2AT,=RA2FDX/3,=RA9CO/3, - =RA9USU/3,=RC85MP,=RL3AB/FF,=RT2F/3/M,=RT9K/3,=RW0LF/3,=RX9UL/3,=RX9WN/3,=RZ9UA/3,=UA0KCX/3, - =UA3AV/ANT,=UA8AA/3,=UA8AA/5,=UA9KHD/3,=UA9MA/3,=UA9MDU/3,=UA9MRX/3,=UA9QCP/3,=UA9UAX/3,=UE24SU, - =R85AAL,=R85QMR,=R85WDW,=R8B,=R8FF/M,=R90DNF,=R99FSB,=R9YU/3,=RA0BY/3,=RA80KEDR,=RA9KV/3,=RA9SB/3, - =RA9XY/3,=RD0L/3,=RK3DSW/ANT,=RK3DWA/3/N,=RN9MD/3,=RT80KEDR,=RU0LM/3,=RU2FA/3,=RU3HD/ANT,=RV0AO/3, - =RV9LM/3/P,=RW0IM/3,=RW3DU/N,=RW9UEW/3,=RX9SN/3,=RZ9OL/3/M,=RZ9OL/3/P,=RZ9SZ/3,=RZ9W/3,=UA0JAD/3, - =UA0KCL/3,=UA0ZAZ/3,=UA9AJ/3/M,=UA9DD/3,=UA9HSI/3,=UA9ONJ/3,=UA9XGD/3,=UA9XMC/3,=UE23DSA,=UE25FO, - =UE95GA,=UE96WS, + =R01DTV/3,=R85PAR,=R870B,=R870C,=R870K,=R870M,=R870O,=R9FM/3,=RA2AT,=RA2FDX/3,=RA9CO/3,=RA9USU/3, + =RC85MP,=RL3AB/FF,=RT2F/3/M,=RT9K/3,=RW0LF/3,=RX9UL/3,=RX9WN/3,=RZ9UA/3,=UA0KCX/3,=UA3AV/ANT, + =UA8AA/3,=UA8AA/5,=UA9KHD/3,=UA9MA/3,=UA9MDU/3,=UA9MRX/3,=UA9QCP/3,=UA9UAX/3,=UE24SU, + =R85AAL,=R85QMR,=R85WDW,=R8B,=R8FF/3,=R8FF/M,=R8FF/P,=R90DNF,=R90WDW,=R99FSB,=R9YU/3,=RA0BY/3, + =RA80KEDR,=RA9KV/3,=RA9SB/3,=RA9XY/3,=RD0L/3,=RK3DSW/ANT,=RK3DWA/3/N,=RN9MD/3,=RT80KEDR,=RU0LM/3, + =RU2FA/3,=RU3HD/ANT,=RV0AO/3,=RV9LM/3/P,=RW0IM/3,=RW3DU/N,=RW9UEW/3,=RX9SN/3,=RZ9OL/3/M, + =RZ9OL/3/P,=RZ9SZ/3,=RZ9W/3,=UA0JAD/3,=UA0KCL/3,=UA0ZAZ/3,=UA9AJ/3/M,=UA9DD/3,=UA9HSI/3,=UA9ONJ/3, + =UA9XGD/3,=UA9XMC/3,=UE23DSA,=UE25FO,=UE95GA,=UE96WS, =R80ORL,=UA0QGM/3,=UE80O,=UE80OL, =R0CAF/3,=R3GO/FF,=RM0L/3,=RN3GL/FF,=RN3GW/FF,=RT5G/P/FF,=RW0IW/3,=UA3GM/ANT,=UE90FL, =RA9KT/3,=RZ9SZ/3/M,=UA0FHC/3,=UF2F/3/M, @@ -2419,23 +2437,24 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =UA9JLY/3,=UA9XLE/3,=UB0AJJ/3,=UB5O/M,=UC0LAF/3,=UE25AFG,=UE25R,=UE27AFG,=UE28AFG,=UE96SN, =R80RTL,=R90IARU,=R9CZ/3,=RU80TO,=RZ9HK/3/P, =R920RZ,=R95DOD,=RA0QQ/3,=UA0KBA/3,=UE80S,=UE85NKN,=UE85WDW, - =R3TT/FF,=R8FF/P,=R8TA/4/P,=R8TR/3,=R90NOR,=R9KW/3,=R9KW/4,=R9PA/4,=RA95FL,=RA9AP/3,=RA9CKQ/4, - =RA9KW/3,=RA9KW/3/M,=RA9ST/3/P,=RG9A/3/P,=RM9T/4/P,=RN0CT/4,=RT9S/3,=RT9S/3/P,=RT9S/4,=RT9S/P, - =RU95FL,=RU9LA/4,=RV9FQ/3,=RV9FQ/3/M,=RV9WB/4,=RV9WLE/3/P,=RV9WZ/3,=RW9KW/3,=RW9WA/3,=RX9SN/P, - =UA0ADX/3,=UA0DM/4,=UA0S/4,=UA0SC/4,=UA9APA/3/P,=UA9CTT/4,=UA9PM/4,=UA9SSR/3,=UE200TARS,=UE25TF, - =UE9FDA/3,=UE9FDA/3/M,=UE9WDA/3,=UI8W/3/P, + =R3TT/FF,=R8TA/4/P,=R8TR/3,=R90NOR,=R9KW/3,=R9KW/4,=R9PA/4,=RA95FL,=RA9AP/3,=RA9CKQ/4,=RA9KW/3, + =RA9KW/3/M,=RA9ST/3/P,=RG9A/3/P,=RM9T/4/P,=RN0CT/4,=RT9S/3,=RT9S/3/P,=RT9S/4,=RT9S/P,=RU95FL, + =RU9LA/4,=RV9FQ/3,=RV9FQ/3/M,=RV9WB/4,=RV9WLE/3/P,=RV9WZ/3,=RW9KW/3,=RW9WA/3,=RX9SN/P,=UA0ADX/3, + =UA0DM/4,=UA0S/4,=UA0SC/4,=UA9APA/3/P,=UA9CTT/4,=UA9PM/4,=UA9SSR/3,=UE200TARS,=UE25TF,=UE9FDA/3, + =UE9FDA/3/M,=UE9WDA/3,=UI8W/3/P, =R5VAJ/N,=R850G,=R850PN,=RU0BW/3,=RV80KEDR,=RX9TL/3,=UA0FM/3, =R110A/P,=R80PVB, - =RA9XF/3,=RC80KEDR,=RK0BWW/3,=RN80KEDR,=RW9XC/3/M,=RX3XX/N,=UA0KBA/3/P,=UA9SIV/3,=UE0ZOO/3, - =R85WTA,=R8FF/3/P,=R98KPM,=R99KPM,=RA3YV/ANT,=RK0UT/3,=RW0LX/3,=UA3YH/ANT,=UA9KZ/3,=UB8JAF/3, - =UE91L,=UE95K,=UE95RA, + =R8XF/3,=RA9XF/3,=RC80KEDR,=RK0BWW/3,=RN80KEDR,=RW9XC/3/M,=RX3XX/N,=UA0KBA/3/P,=UA9SIV/3, + =UE0ZOO/3, + =R85WTA,=R8FF/3/P,=R90WDWR,=R98KPM,=R99KPM,=RA3YV/ANT,=RK0UT/3,=RW0LX/3,=UA3YH/ANT,=UA9KZ/3, + =UB8JAF/3,=UE91L,=UE95K,=UE95RA, =R3ZK/FF,=RA3ZZ/ANT,=RA9AK/3,=RA9KD/3,=RU3ZK/FF,=RW0BG/3,=UA0QBC/3, =R89DRA,=RA07DR,=RA9DF/4/P,=RA9ODR/4/M,=RC4AF/FF,=RN4ACA/FF,=RV9CX/6/M,=UA4ASE/FF,=UA4ATL/FF, =UA8WAA/6,=UA9FGR/4,=UE00S,=UE00S/P,=UE09VG,=UE80RWW, =R4CDX/FF,=R8FF/4,=R8FR/4/M,=RA9KO/4,=RL96WS,=RL97WS,=RU80KEDR,=RU80KEDR/P,=RU9SO/4/M,=RV4CC/FF, =RW0UZ/4,=RW9AW/4/M,=RZ0SB/4,=UA0KAT/4,=UA8WAA/4,=UA9AGR/4/M,=UA9JPX/4,=UA9OC/4,=UE23DZO,=UE95MS, =UE95WS,=UE98WS,=UE99PW, - =R9CMA/4,=R9JBN/4, + =R8CW/4,=R9CMA/4,=R9JBN/4, R4H[30],R4I[30],RA4H[30],RA4I[30],RC4H[30],RC4I[30],RD4H[30],RD4I[30],RE4H[30],RE4I[30],RF4H[30], RF4I[30],RG4H[30],RG4I[30],RJ4H[30],RJ4I[30],RK4H[30],RK4I[30],RL4H[30],RL4I[30],RM4H[30], RM4I[30],RN4H[30],RN4I[30],RO4H[30],RO4I[30],RQ4H[30],RQ4I[30],RT4H[30],RT4I[30],RU4H[30], @@ -2452,14 +2471,14 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =RW4HTK[29],=RW4HW[29],=RW4HZ[29],=RW9SW/4[30],=RW9TP/4[30],=RW9WJ/4[30],=RW9WJ/4/P[30], =RW9WJ/P[30],=RZ4HWF/LH[30],=RZ4HZW/FF[30],=RZ9WU/4/M[30],=UA0KAO/4[30],=UA0QJA/4[30],=UA4H[29], =UA4HBM[29],=UA4HGL[29],=UA4HIP[29],=UA4HIP/M[30],=UA4HRZ[29],=UA4HY[29],=UA9JGX/4[30], - =UA9LAO/4[30],=UA9SQG/4/P[30],=UA9SY/4[30],=UB5O/4[30],=UC4I[29],=UI4I[29], + =UA9LAO/4[30],=UA9SQG/4/P[30],=UA9SY/4[30],=UC4I[29],=UI4I[29], =R01DTV/4,=R9XC/4,=RA9XAF/4,=UA4HIP/4,=UA9JFE/4, =R8XF/4,=RA4NCC[30],=RA9FR/4/P,=RA9XSM/4,=RD9CX/4,=RD9CX/4/P,=RU0LM/4,=RW9XC/4/M,=UA4NE/M, =UA4NF[30],=UA4NF/M,=UA9APA/4/P,=UA9FIT/4,=UA9XI/4,=UE9FDA/4,=UE9FDA/4/M,=UE9GDA/4, =R95PW,=R9WI/4/P,=RA9CKM/4/M,=RA9FR/4/M,=RJ4P[30],=RK4P[30],=RK4PK[30],=RM4P[30],=RM4R[30], - =RM8W/4/M,=RN9WWW/4,=RN9WWW/4/M,=RT05RO,=RV9FQ/4/M,=RV9WKI/4/M,=RV9WKI/4/P,=RV9WMZ/4/M,=RV9WZ/4, - =RW9TP/4/P,=RW9WA/4,=RW9WA/4/M,=RZ9WM/4,=UA2FM/4,=UA3AKO/4,=UA4PN[30],=UA4RF[30],=UA4RW[30], - =UA9AJ/4/M,=UA9JFN/4/M,=UA9JNQ/4,=UA9SG/4,=UE96MP,=UE9WDA/4,=UE9WDA/4/M, + =RM8W/4/M,=RN9WWW/4,=RN9WWW/4/M,=RT05RO,=RU9SO/M,=RV9FQ/4/M,=RV9WKI/4/M,=RV9WKI/4/P,=RV9WMZ/4/M, + =RV9WZ/4,=RW9TP/4/P,=RW9WA/4,=RW9WA/4/M,=RZ9WM/4,=UA2FM/4,=UA3AKO/4,=UA4PN[30],=UA4RF[30], + =UA4RW[30],=UA9AJ/4/M,=UA9JFN/4/M,=UA9JNQ/4,=UA9SG/4,=UE96MP,=UE9WDA/4,=UE9WDA/4/M, =R8UT/4/P,=RX9WN/4, =RQ0C/4,=RZ5D/4,=UA9XX/4,=UE9WFF/4, R4W[30],RA4W[30],RC4W[30],RD4W[30],RE4W[30],RF4W[30],RG4W[30],RJ4W[30],RK4W[30],RL4W[30],RM4W[30], @@ -2469,8 +2488,8 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =RA9WU/4/P[30],=RP72IZ[30],=RP73IZ[30],=RP74IZ[30],=RP75IZ[30],=RT20NY[30],=RW9FWB/4[30], =RW9FWR/4[30],=RW9FWR/4/M[30],=RX9FW/4[30],=UA9UAX/4/M[30], =RT9T/4,=RV9MD/4,=UA4PCM/M,=UE04YCS,=UE85AGN,=UE90AGN, - =R01DTV,=R01DTV/7,=R0IT/6,=R80TV,=R8XW/6,=R9JO/6,=R9KD/6,=R9OM/6,=R9WGM/6/M,=RA0APW/6,=RA0FW/6, - =RA0LIF/6,=RA0LLW/6,=RA0QR/6,=RA9ODR/6,=RA9ODR/6/M,=RA9SAS/6,=RA9UWD/6,=RA9WW/6,=RD9CX/6, + =R01DTV,=R01DTV/7,=R0IT/6,=R1CF/M,=R80TV,=R8XW/6,=R9JO/6,=R9KD/6,=R9OM/6,=R9WGM/6/M,=RA0APW/6, + =RA0FW/6,=RA0LIF/6,=RA0LLW/6,=RA0QR/6,=RA9ODR/6,=RA9ODR/6/M,=RA9SAS/6,=RA9UWD/6,=RA9WW/6,=RD9CX/6, =RD9CX/6/P,=RK6AH/LH,=RK9JA/6,=RN0CF/6,=RN0JT/6,=RQ0C/6,=RT9K/6,=RT9K/6/P,=RT9K/6/QRP,=RU2FB/6, =RU9MX/6,=RU9QRP/6/M,=RU9QRP/6/P,=RU9SO/6,=RV9FQ/6,=RW0LIF/6,=RW0LIF/6/LH,=RW6AWW/LH,=RW9JZ/6, =RW9WA/6,=RX6AA/ANT,=RX6AAP/ANT,=RX9TX/6,=RZ9HG/6,=RZ9HT/6,=RZ9UF/6,=RZ9UZV/6,=UA0AGE/6,=UA0IT/6, @@ -2480,16 +2499,16 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =RA6EE/FF,=RN7G/FF,=UA0LEC/6,=UA9KAS/6,=UA9KAS/6/P, =R9XV/6,=RA0ZG/6,=RA9CHS/6,=RA9CHS/7,=RK7G/FF,=RM8A/6/M,=RT9K/7,=RU9CK/7,=RU9ZA/7,=RZ7G/FF, =RZ9ON/6,=UA0ZDA/6,=UA0ZS/6,=UA6HBO/N,=UA6HBO/ST30,=UA6IC/6/FF,=UA9CE/6,=UA9UAX/7/M,=UE80HS, - =R7AB/P,=UA6IC/FF, + =UA6IC/FF, =RU2FB/6/P,=UA9UAX/7, - =R6LCA/J,=R7AB/M,=R8WC/6,=R8WC/6/P,=RA20NY,=RU97AE,=RV9CMT/6,=RV9DC/6/P,=RV9LC/6,=RW9XC/6/M, + =R6LCA/J,=R8WC/6,=R8WC/6/P,=RA20NY,=RU97AE,=RV9CMT/6,=RV9DC/6/P,=RV9LC/6,=RW9XC/6/M,=RX9KT/6, =UA0QBR/6,=UA0ZED/6,=UA6LP/P/LH,=UA6LV/ANT,=UA6MM/LH,=UE20DS,=UE28DX,=UE29DX,=UE92L, =RV0ANH/6,=RV0APR/6,=RW0AF/6, =R8FF/6,=R9DA/6,=R9MAV/6,=RA9DF/6/M,=RA9DF/6/P,=RU9CK/6/M,=RU9CK/6/P,=RV9CX/6/P,=UA9CES/6, =UA9FGR/6,=UA9WQK/6, =RU9CK/7/M,=RU9CK/7/P,=RV9CX/7/P,=UA9JFN/6/M, =RT9K/7/P,=RZ7G/6/FF, - =R01DTV/6,=RV1CC/M,=RV9AB/6, + =R01DTV/6,=RV9AB/6, =R9FAZ/6/M,=R9MJ/6,=R9OM/5/P,=R9XT/6,=RA9KD/6,=RA9WU/6,=RN9N/6,=RT9T/6,=RT9T/6/M,=RU2FB/5, =RU9WW/5/M,=RW9AW/5,=UA0LLM/5,=UA8WAA/5,=UA9CDC/6,=UA9UAX/5,=UE2KR,=UE98PW, =R8AEU/6,=R9MJ/6/M,=RN9N/6/M,=UA0ZL/6,=UB8ADI/5,=UB8ADI/6,=UE2SE, @@ -2537,10 +2556,10 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: UF8X(17)[20],UF9X(17)[20],UG1I(17)[20],UG8X(17)[20],UG9X(17)[20],UH1I(17)[20],UH8X(17)[20], UH9X(17)[20],UI1I(17)[20],UI8X(17)[20],UI9X(17)[20],=R100AP(17)[20],=R120RK(17)[20], =R16NOR(17)[20],=R18ISL(17)[20],=R2014I(17)[20],=R20SZO(17)[20],=R240S(17)[20],=R35MWC(17)[20], - =R3RRC/9(17)[20],=R5QA/1(17)[20],=R5QQ/1(17)[20],=R6DGL/9/M(17)[20],=R6DLU/1(17)[20], - =R70SRC(17)[20],=R7BA/1(17)[20],=R7BA/9(17)[20],=R7BA/9/M(17)[20],=R8MB/1(17)[20], - =R8MB/1/P(17)[20],=R9/UR7IMG(17)[20],=R95KOMI(17)[20],=R9KD/9(17)[20],=R9XAK/1/P(17)[20], - =RA/DK5JI(17)[20],=RA/UR5MKH(17)[20],=RA22KO(17)[20],=RA22XA(17)[20],=RA22XF(17)[20], + =R3RRC/9(17)[20],=R5QQ/1(17)[20],=R6DGL/9/M(17)[20],=R6DLU/1(17)[20],=R70SRC(17)[20], + =R7BA/1(17)[20],=R7BA/9(17)[20],=R7BA/9/M(17)[20],=R8MB/1(17)[20],=R8MB/1/P(17)[20], + =R9/UR7IMG(17)[20],=R95KOMI(17)[20],=R9KD/9(17)[20],=R9XAK/1/P(17)[20],=RA/DK5JI(17)[20], + =RA/UR5MKH(17)[20],=RA1WS/1(17)[20],=RA22KO(17)[20],=RA22XA(17)[20],=RA22XF(17)[20], =RA22XU(17)[20],=RA3AMG/9/M(17)[20],=RA3OM/9(17)[20],=RA3X/1(17)[20],=RA4NH/9(17)[20], =RA4NV/9(17)[20],=RA6ACI/9(17)[20],=RD4CBQ/9(17)[20],=RK1OWZ/9(17)[20],=RK1OWZ/9/M(17)[20], =RK30DR(17)[20],=RK6K/9(17)[20],=RK90DR(17)[20],=RN22OG(17)[20],=RN22OV(17)[20],=RN4ACZ/9(17)[20], @@ -2589,16 +2608,16 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =R01DTV/8,=R100RGA,=R105WWS,=R14CWC/8,=R14CWC/9,=R150DMP,=R155AP,=R15CWC/8,=R15CWC/8/QRP,=R160DMP, =R16SVK,=R170GS/8,=R2015BP,=R2015R,=R2016DR,=R20EKB,=R22SKJ,=R27EKB,=R30ZF,=R35CZF,=R375I, =R44YETI/8,=R4WAB/9/P,=R55EPC,=R55EPC/P,=R6UAE/9,=R70NIK,=R7LZ/8,=R8FF/8,=R9GM/8,=R9GM/8/M, - =RA/DL6XK,=RA/US5ETV,=RA0BA/8,=RA0BA/9,=RA27AA,=RA27EK,=RA36GS,=RA36ZF,=RA4YW/9,=RA4YW/9/M, - =RA9FW/9,=RA9WU/9,=RC18EK,=RD0B/8,=RK9AD/9/M,=RK9DR/N,=RL20NY,=RL4R/8,=RM0B/9,=RM19NY,=RN16CW, - =RN3QBG/9,=RP68DT,=RP68RG,=RP68TG,=RP68TK,=RP69GR,=RP70DT,=RP70G,=RP70GB,=RP70GR,=RP70MA,=RP70SA, - =RP70UH,=RP71DT,=RP71GA,=RP71GA/M,=RP71GB,=RP71GR,=RP71LT,=RP71MO,=RP71SA,=RP72DT,=RP72FI,=RP72GB, - =RP72GR,=RP72IM,=RP72KB,=RP72SA,=RP73DT,=RP73GB,=RP73GR,=RP73IM,=RP73SA,=RP74DT,=RP74GB,=RP74GR, - =RP74IM,=RP75DT,=RP75GB,=RP75IM,=RP75MF,=RP75MLI,=RP75RGA,=RP75TT,=RP75UR,=RT4C/8,=RT4W/9,=RT73BR, - =RT73EB,=RT73FL,=RT73HE,=RT73KB,=RT73SK,=RU22CR,=RU5D/8,=RU5D/9,=RV6LGY/9,=RV6LGY/9/M,=RV6LGY/9/P, - =RV6MD/9,=RV9WB/8,=RW4NX/9,=RW9C[20],=RX0SD/9,=RX3Q/8,=RX3Q/9,=RX9UL/9,=RY9C/P,=RZ1CWC/8,=RZ37ZF, - =RZ38ZF,=RZ39ZF,=UA0BA/8,=UA3FQ/8,=UA3IHJ/8,=UA4WHX/9,=UA8WAA/8,=UA9MW/9,=UA9UAX/8,=UA9UAX/8/M, - =UE16SR,=UE25F,=UE40CZF,=UE4NFF/9,=UE56S,=UE64RWA,=UE70SL,=UE75DT, + =R9WCJ/8,=RA/DL6XK,=RA/US5ETV,=RA0BA/8,=RA0BA/9,=RA27AA,=RA27EK,=RA36GS,=RA36ZF,=RA4YW/9, + =RA4YW/9/M,=RA9FW/9,=RA9WU/9,=RC18EK,=RD0B/8,=RK9AD/9/M,=RK9DR/N,=RL20NY,=RL4R/8,=RM0B/9,=RM19NY, + =RN16CW,=RN3QBG/9,=RP68DT,=RP68RG,=RP68TG,=RP68TK,=RP69GR,=RP70DT,=RP70G,=RP70GB,=RP70GR,=RP70MA, + =RP70SA,=RP70UH,=RP71DT,=RP71GA,=RP71GA/M,=RP71GB,=RP71GR,=RP71LT,=RP71MO,=RP71SA,=RP72DT,=RP72FI, + =RP72GB,=RP72GR,=RP72IM,=RP72KB,=RP72SA,=RP73DT,=RP73GB,=RP73GR,=RP73IM,=RP73SA,=RP74DT,=RP74GB, + =RP74GR,=RP74IM,=RP75DT,=RP75GB,=RP75IM,=RP75MF,=RP75MLI,=RP75RGA,=RP75TT,=RP75UR,=RT4C/8,=RT4W/9, + =RT73BR,=RT73EB,=RT73FL,=RT73HE,=RT73KB,=RT73SK,=RU22CR,=RU5D/8,=RU5D/9,=RV6LGY/9,=RV6LGY/9/M, + =RV6LGY/9/P,=RV6MD/9,=RV9WB/8,=RW4NX/9,=RW9C[20],=RX0SD/9,=RX3Q/8,=RX3Q/9,=RX9UL/9,=RY9C/P, + =RZ1CWC/8,=RZ37ZF,=RZ38ZF,=RZ39ZF,=UA0BA/8,=UA3FQ/8,=UA3IHJ/8,=UA4WHX/9,=UA8WAA/8,=UA9MW/9, + =UA9UAX/8,=UA9UAX/8/M,=UE16SR,=UE25F,=UE40CZF,=UE4NFF/9,=UE56S,=UE64RWA,=UE70SL,=UE75DT, R8H(18)[31],R8I(18)[31],R9H(18)[31],R9I(18)[31],RA8H(18)[31],RA8I(18)[31],RA9H(18)[31], RA9I(18)[31],RC8H(18)[31],RC8I(18)[31],RC9H(18)[31],RC9I(18)[31],RD8H(18)[31],RD8I(18)[31], RD9H(18)[31],RD9I(18)[31],RE8H(18)[31],RE8I(18)[31],RE9H(18)[31],RE9I(18)[31],RF8H(18)[31], @@ -2660,9 +2679,9 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =RP75YN,=RR110RAEM,=RU22LR,=RW0QJ/9,=RX4W/8,=RX6DL/8,=RX6DL/8/P,=RX6DL/8/P/QRP,=RX6DL/9/P, =RZ9MXM/9/M,=UB5O/8/P,=UE44Y/8,=UE9FDA/9/M,=UE9MDA/9, =R16CAN,=R1716K,=R1716M,=R1716O,=R1716S,=R9MJ/M,=RA/DK2AI/M,=RA22MX,=RA4CQ/9/M,=RA9MR/0,=RA9MX/P, - =RC20MX,=RK6YYA/9,=RN0SZ/9,=RN9N/9,=RN9N/M,=RP65MOH,=RP67MC,=RP67MD,=RP68MC,=RP68MD,=RP69MC, - =RP69MD,=RP70GK,=RP70MC,=RP70MD,=RP70OB,=RP70OF,=RP70OS,=RP71GK,=RP71MJ,=RP71OB,=RP72GK,=RP72MJ, - =RP72OB,=RP72ZW,=RP73GK,=RP73OB,=RP74PO,=RP75GK,=RP8M,=RT22MC,=RT22MD,=RU20NY,=RV0SR/9,=RW22MW, + =RC20MX,=RK6YYA/9,=RN0SZ/9,=RN9N/9,=RP65MOH,=RP67MC,=RP67MD,=RP68MC,=RP68MD,=RP69MC,=RP69MD, + =RP70GK,=RP70MC,=RP70MD,=RP70OB,=RP70OF,=RP70OS,=RP71GK,=RP71MJ,=RP71OB,=RP72GK,=RP72MJ,=RP72OB, + =RP72ZW,=RP73GK,=RP73OB,=RP74PO,=RP75GK,=RP8M,=RT22MC,=RT22MD,=RU20NY,=RU20RU,=RV0SR/9,=RW22MW, =RY22MC,=UA1ZGD/9,=UA3AKO/9,=UE55OM,=UE70KRM/9,=UE70KRM/9/M,=UE9OFF/9, R8O(18)[31],R8P(18)[31],R9O(18)[31],R9P(18)[31],RA8O(18)[31],RA8P(18)[31],RA9O(18)[31], RA9P(18)[31],RC8O(18)[31],RC8P(18)[31],RC9O(18)[31],RC9P(18)[31],RD8O(18)[31],RD8P(18)[31], @@ -2689,12 +2708,12 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =R9/TA1FL(18)[31],=RA/DF8DX(18)[31],=RA/N3QQ(18)[31],=RA0LMC/9(18)[31],=RA27OA(18)[31], =RA27OM(18)[31],=RA3DH/9(18)[31],=RA3ET/9(18)[31],=RA4FRH/0/P(18)[31],=RA9JJ/9/M(18)[31], =RA9MX/9(18)[31],=RC1M/9(18)[31],=RC1M/9/M(18)[31],=RD0L/9(18)[31],=RG9O(18)[31],=RL3T/9(18)[31], - =RN9N/9/M(18)[31],=RO9O(18)[31],=RP67MP(18)[31],=RP68MP(18)[31],=RP70MP(18)[31],=RP71MP(18)[31], - =RP72MP(18)[31],=RP73MP(18)[31],=RP74MP(18)[31],=RP75MP(18)[31],=RP9OMP(18)[31],=RP9OW(18)[31], - =RQ16CW(18)[31],=RR9O(18)[31],=RS9O(18)[31],=RU0ZM/9(18)[31],=RU27OZ(18)[31],=RU6LA/9(18)[31], - =RV0CJ/9(18)[31],=RW1AC/9(18)[31],=RW9MD/9/M(18)[31],=RZ9MXM/9(18)[31],=UA0KDR/9(18)[31], - =UA0ZAY/9(18)[31],=UA6WFO/9(18)[31],=UA9MA/9(18)[31],=UA9MA/9/M(18)[31],=UA9MRA/9(18)[31], - =UB5O/9(18)[31],=UE80NSO(18)[31], + =RN9N/9/M(18)[31],=RN9N/M(18)[31],=RO9O(18)[31],=RP67MP(18)[31],=RP68MP(18)[31],=RP70MP(18)[31], + =RP71MP(18)[31],=RP72MP(18)[31],=RP73MP(18)[31],=RP74MP(18)[31],=RP75MP(18)[31],=RP9OMP(18)[31], + =RP9OW(18)[31],=RQ16CW(18)[31],=RR9O(18)[31],=RS9O(18)[31],=RU0ZM/9(18)[31],=RU27OZ(18)[31], + =RU6LA/9(18)[31],=RV0CJ/9(18)[31],=RW1AC/9(18)[31],=RW9MD/9/M(18)[31],=RZ9MXM/9(18)[31], + =UA0KDR/9(18)[31],=UA0ZAY/9(18)[31],=UA6WFO/9(18)[31],=UA9MA/9(18)[31],=UA9MA/9/M(18)[31], + =UA9MRA/9(18)[31],=UB5O/9(18)[31],=UE80NSO(18)[31], =R110RP,=R120RDP,=R120RZ,=R120TM,=R150RP,=R155RP,=R160RP,=R18URU,=RA22QF,=RC20QA,=RC20QC,=RC20QF, =RM20CC,=RM20NY,=RM9RZ/A,=RM9RZ/P,=RP65R,=RP67KE,=RP67R,=RP68KE,=RP68R,=RP69KE,=RP69R,=RP70KE, =RP70R,=RP71R,=RP72KE,=RP72R,=RP75KE,=RT73CW,=RT73JH,=RV3MN/9,=RW22QA,=RW22QA/8,=RW22QC,=RW22QC/8, @@ -2717,9 +2736,9 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =RN3GW/8(16),=RN3GW/8/QRP(16),=RN3GW/9(16),=RN3GW/9/QRP(16),=RN3QOP/9(16),=RN9S(16),=RN9SM/P(16), =RN9WWW/9(16),=RO9S(16),=RP65TT(16),=RP68GR(16),=RP69NB(16),=RP71TK(16),=RP75TS(16),=RP9SBO(16), =RP9SBR(16),=RP9SNK(16),=RT22TK(16),=RT73OA(16),=RT8T(16),=RT9S(16),=RT9T(16),=RU22TU(16), - =RU9SO/M(16),=RV1CC/4/M(16),=RV9WGF/4/M(16),=RV9WMZ/9/M(16),=RW4PJZ/9(16),=RW4PJZ/9/M(16), - =RW4PP/9(16),=RW9WA/9(16),=RW9WA/9/M(16),=RY4W/9(16),=RZ4HZW/9/M(16),=UA0AGA/9/P(16), - =UA0KBA/9(16),=UA3WB/9(16),=UA4LCQ/9(16),=UA9SIV/9(16),=UB9JBN/9/M(16),=UE1RFF/9(16),=UE25ST(16), + =RV1CC/4/M(16),=RV9WGF/4/M(16),=RV9WMZ/9/M(16),=RW4PJZ/9(16),=RW4PJZ/9/M(16),=RW4PP/9(16), + =RW9WA/9(16),=RW9WA/9/M(16),=RY4W/9(16),=RZ4HZW/9/M(16),=UA0AGA/9/P(16),=UA0KBA/9(16), + =UA3WB/9(16),=UA4LCQ/9(16),=UA9SIV/9(16),=UB5O/4(16),=UB9JBN/9/M(16),=UE1RFF/9(16),=UE25ST(16), =UE55OB(16),=UE60TDP(16),=UE60TDP/P(16),=UE9WDA/9/M(16), R8U(18)[31],R8V(18)[31],R9U(18)[31],R9V(18)[31],RA8U(18)[31],RA8V(18)[31],RA9U(18)[31], RA9V(18)[31],RC8U(18)[31],RC8V(18)[31],RC9U(18)[31],RC9V(18)[31],RD8U(18)[31],RD8V(18)[31], @@ -2744,7 +2763,7 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =RP70KM(18)[31],=RP70NM(18)[31],=RP70UK(18)[31],=RP70ZF(18)[31],=RP71KM(18)[31],=RP72KM(18)[31], =RP72NM(18)[31],=RP73KM(18)[31],=RP73NZ(18)[31],=RP73ZF(18)[31],=RP74KM(18)[31],=RP75KM(18)[31], =RP75YE(18)[31],=RT22UA(18)[31],=RT77VV(18)[31],=RW0CE/9(18)[31],=RW4CG/9(18)[31],=RZ5D/9(18)[31], - =UA9JFE/9/P(18)[31],=UA9MA/M(18)[31],=UA9UAX/M(18)[31],=UE3ATV/9(18)[31], + =UA9JFE/9/P(18)[31],=UA9MA/M(18)[31],=UE3ATV/9(18)[31], R8W(16),R9W(16),RA8W(16),RA9W(16),RC8W(16),RC9W(16),RD8W(16),RD9W(16),RE8W(16),RE9W(16),RF8W(16), RF9W(16),RG8W(16),RG9W(16),RJ8W(16),RJ9W(16),RK8W(16),RK9W(16),RL8W(16),RL9W(16),RM8W(16), RM9W(16),RN8W(16),RN9W(16),RO8W(16),RO9W(16),RQ8W(16),RQ9W(16),RT8W(16),RT9W(16),RU8W(16), @@ -2782,11 +2801,11 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UC9Y(18)[31],UD8Y(18)[31],UD9Y(18)[31],UE8Y(18)[31],UE9Y(18)[31],UF8Y(18)[31],UF9Y(18)[31], UG8Y(18)[31],UG9Y(18)[31],UH8Y(18)[31],UH9Y(18)[31],UI8Y(18)[31],UI9Y(18)[31],=R100KM(18)[31], =R2015RR(18)[31],=R2015SV(18)[31],=R6XBA/9(18)[31],=R9/UN7JHC(18)[31],=R9/UN7JMO(18)[31], - =RA/IK5MIC(18)[31],=RA/IK5MIC/M(18)[31],=RA0CCJ/9(18)[31],=RA50VT(18)[31],=RK1B/9(18)[31], - =RP68BP(18)[31],=RP68TZ(18)[31],=RP70AF(18)[31],=RP70BP(18)[31],=RP70GA(18)[31],=RP71BP(18)[31], - =RP72BP(18)[31],=RP73BP(18)[31],=RP9Y(18)[31],=RP9YAF(18)[31],=RP9YTZ(18)[31],=RT73GM(18)[31], - =RW22WG(18)[31],=RX6AY/9(18)[31],=UA0LLW/9(18)[31],=UA0ZDY/9(18)[31],=UA9UAX/9/P(18)[31], - =UE0ZOO/9(18)[31],=UE44R/9(18)[31],=UE80AL(18)[31], + =R9PS/9(18)[31],=RA/IK5MIC(18)[31],=RA/IK5MIC/M(18)[31],=RA0CCJ/9(18)[31],=RA50VT(18)[31], + =RK1B/9(18)[31],=RP68BP(18)[31],=RP68TZ(18)[31],=RP70AF(18)[31],=RP70BP(18)[31],=RP70GA(18)[31], + =RP71BP(18)[31],=RP72BP(18)[31],=RP73BP(18)[31],=RP9Y(18)[31],=RP9YAF(18)[31],=RP9YTZ(18)[31], + =RT73GM(18)[31],=RW22WG(18)[31],=RX6AY/9(18)[31],=UA0LLW/9(18)[31],=UA0ZDY/9(18)[31], + =UA9UAX/9/P(18)[31],=UA9UAX/M(18)[31],=UE0ZOO/9(18)[31],=UE44R/9(18)[31],=UE80AL(18)[31], R8Z(18)[31],R9Z(18)[31],RA8Z(18)[31],RA9Z(18)[31],RC8Z(18)[31],RC9Z(18)[31],RD8Z(18)[31], RD9Z(18)[31],RE8Z(18)[31],RE9Z(18)[31],RF8Z(18)[31],RF9Z(18)[31],RG8Z(18)[31],RG9Z(18)[31], RJ8Z(18)[31],RJ9Z(18)[31],RK8Z(18)[31],RK9Z(18)[31],RL8Z(18)[31],RL9Z(18)[31],RM8Z(18)[31], @@ -2891,19 +2910,19 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UB0L(19)[34],UB0M(19)[34],UB0N(19)[34],UC0L(19)[34],UC0M(19)[34],UC0N(19)[34],UD0L(19)[34], UD0M(19)[34],UD0N(19)[34],UE0L(19)[34],UE0M(19)[34],UE0N(19)[34],UF0L(19)[34],UF0M(19)[34], UF0N(19)[34],UG0L(19)[34],UG0M(19)[34],UG0N(19)[34],UH0L(19)[34],UH0M(19)[34],UH0N(19)[34], - UI0L(19)[34],UI0M(19)[34],UI0N(19)[34],=R0HQ(19)[34],=R150L(19)[34],=R17CWH(19)[34], - =R20RRC/0(19)[34],=R3BY/0(19)[34],=R3HD/0(19)[34],=R66IOTA(19)[34],=R70LWA(19)[34], - =R8CW/0(19)[34],=R8XW/0(19)[34],=R9MI/0(19)[34],=R9XT/0(19)[34],=RA/IK7YTT(19)[34], - =RA/OK1DWF(19)[34],=RD3BN/0(19)[34],=RL5G/0/P(19)[34],=RM0M(19)[34],=RM0M/LH(19)[34], - =RM5M/0(19)[34],=RN1NS/0(19)[34],=RP0L(19)[34],=RP0LPK(19)[34],=RP60P(19)[34],=RP66V(19)[34], - =RP67SD(19)[34],=RP67V(19)[34],=RP68SD(19)[34],=RP68V(19)[34],=RP69SD(19)[34],=RP69V(19)[34], - =RP70DG(19)[34],=RP70SD(19)[34],=RP70V(19)[34],=RP71DG(19)[34],=RP71SD(19)[34],=RP71V(19)[34], - =RP72DG(19)[34],=RP72SD(19)[34],=RP72V(19)[34],=RP73DG(19)[34],=RP73SD(19)[34],=RP73V(19)[34], - =RP74DG(19)[34],=RP74SD(19)[34],=RP74V(19)[34],=RP75DG(19)[34],=RP75SD(19)[34],=RP75V(19)[34], - =RU3BY/0(19)[34],=RU5D/0(19)[34],=RV1AW/0(19)[34],=RV3DSA/0(19)[34],=RW22GO(19)[34], - =RW3LG/0(19)[34],=RX15RX(19)[34],=RX20NY(19)[34],=UA0SDX/0(19)[34],=UA0SIK/0(19)[34], - =UA3AHA/0(19)[34],=UA4SBZ/0(19)[34],=UA6MF/0(19)[34],=UA7R/0(19)[34],=UB0LAP/P(19)[34], - =UC0LAF/P(19)[34],=UE1RFF/0(19)[34],=UE70MA(19)[34],=UE75L(19)[34], + UI0L(19)[34],UI0M(19)[34],UI0N(19)[34],=R150L(19)[34],=R17CWH(19)[34],=R20RRC/0(19)[34], + =R3BY/0(19)[34],=R3HD/0(19)[34],=R66IOTA(19)[34],=R70LWA(19)[34],=R8CW/0(19)[34],=R8XW/0(19)[34], + =R9MI/0(19)[34],=R9XT/0(19)[34],=RA/IK7YTT(19)[34],=RA/OK1DWF(19)[34],=RD3BN/0(19)[34], + =RL5G/0/P(19)[34],=RM0M(19)[34],=RM0M/LH(19)[34],=RM5M/0(19)[34],=RN1NS/0(19)[34],=RP0L(19)[34], + =RP0LPK(19)[34],=RP60P(19)[34],=RP66V(19)[34],=RP67SD(19)[34],=RP67V(19)[34],=RP68SD(19)[34], + =RP68V(19)[34],=RP69SD(19)[34],=RP69V(19)[34],=RP70DG(19)[34],=RP70SD(19)[34],=RP70V(19)[34], + =RP71DG(19)[34],=RP71SD(19)[34],=RP71V(19)[34],=RP72DG(19)[34],=RP72SD(19)[34],=RP72V(19)[34], + =RP73DG(19)[34],=RP73SD(19)[34],=RP73V(19)[34],=RP74DG(19)[34],=RP74SD(19)[34],=RP74V(19)[34], + =RP75DG(19)[34],=RP75SD(19)[34],=RP75V(19)[34],=RU3BY/0(19)[34],=RU5D/0(19)[34],=RV1AW/0(19)[34], + =RV3DSA/0(19)[34],=RW22GO(19)[34],=RW3LG/0(19)[34],=RX15RX(19)[34],=RX20NY(19)[34], + =UA0SDX/0(19)[34],=UA0SIK/0(19)[34],=UA3AHA/0(19)[34],=UA4SBZ/0(19)[34],=UA6MF/0(19)[34], + =UA7R/0(19)[34],=UB0LAP/P(19)[34],=UC0LAF/P(19)[34],=UE1RFF/0(19)[34],=UE70MA(19)[34], + =UE75L(19)[34], R0O(18)[32],RA0O(18)[32],RC0O(18)[32],RD0O(18)[32],RE0O(18)[32],RF0O(18)[32],RG0O(18)[32], RJ0O(18)[32],RK0O(18)[32],RL0O(18)[32],RM0O(18)[32],RN0O(18)[32],RO0O(18)[32],RQ0O(18)[32], RT0O(18)[32],RU0O(18)[32],RV0O(18)[32],RW0O(18)[32],RX0O(18)[32],RY0O(18)[32],RZ0O(18)[32], @@ -2937,17 +2956,17 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UD0T(18)[32],UE0R(18)[32],UE0S(18)[32],UE0T(18)[32],UF0R(18)[32],UF0S(18)[32],UF0T(18)[32], UG0R(18)[32],UG0S(18)[32],UG0T(18)[32],UH0R(18)[32],UH0S(18)[32],UH0T(18)[32],UI0R(18)[32], UI0S(18)[32],UI0T(18)[32],=R11QRP/9(18)[32],=R150LA(18)[32],=R150LB(18)[32],=R18SWE(18)[32], - =R1BDD/0(18)[32],=R1BDD/0/P(18)[32],=R25ARCK/9(18)[32],=R3RRC/0/MM(18)[32],=R9PS/9(18)[32], - =RA0SP/RP(18)[32],=RA0SR/RP(18)[32],=RA110RAEM(18)[32],=RA3TO/0(18)[32],=RA4CSX/0/P(18)[32], - =RA9JG/0(18)[32],=RA9JG/0/P(18)[32],=RA9OBG/0(18)[32],=RA9USU/8(18)[32],=RD0L/0(18)[32], - =RK17CW(18)[32],=RK9MZZ/0(18)[32],=RN4HIT/0(18)[32],=RP0S(18)[32],=RP0SXR(18)[32],=RP0SZZ(18)[32], - =RP67ST(18)[32],=RP70AB(18)[32],=RP72AB(18)[32],=RP73AB(18)[32],=RP74AB(18)[32],=RP75AB(18)[32], - =RQ0C/9(18)[32],=RV3ACA/0/M(18)[32],=RV6AJ/0(18)[32],=RV7AD/0(18)[32],=RV9JD/0(18)[32], - =RW4YA/0(18)[32],=RW4YA/9(18)[32],=RX3AT/0(18)[32],=RX3DFH/0(18)[32],=RX9WN/0(18)[32], - =RX9WN/0/M(18)[32],=RX9WN/0/P(18)[32],=RZ0SO/P(18)[32],=UA0KBG/0(18)[32],=UA0KBG/9(18)[32], - =UA3EDQ/0(18)[32],=UA3EDQ/0/MM(18)[32],=UA3EDQ/0/P(18)[32],=UA9MBK/0(18)[32],=UA9UAX/0(18)[32], - =UA9WOB/0(18)[32],=UA9WOB/0/P(18)[32],=UE105SBM(18)[32],=UE55IR(18)[32],=UE60SWA(18)[32], - =UE70SVV(18)[32],=UE80IR(18)[32],=UE80SBR(18)[32], + =R1BDD/0(18)[32],=R1BDD/0/P(18)[32],=R25ARCK/9(18)[32],=R3RRC/0/MM(18)[32],=RA0SP/RP(18)[32], + =RA0SR/RP(18)[32],=RA110RAEM(18)[32],=RA3TO/0(18)[32],=RA4CSX/0/P(18)[32],=RA9JG/0(18)[32], + =RA9JG/0/P(18)[32],=RA9OBG/0(18)[32],=RA9USU/8(18)[32],=RD0L/0(18)[32],=RK17CW(18)[32], + =RK9MZZ/0(18)[32],=RN4HIT/0(18)[32],=RP0S(18)[32],=RP0SXR(18)[32],=RP0SZZ(18)[32],=RP67ST(18)[32], + =RP70AB(18)[32],=RP72AB(18)[32],=RP73AB(18)[32],=RP74AB(18)[32],=RP75AB(18)[32],=RQ0C/9(18)[32], + =RV3ACA/0/M(18)[32],=RV6AJ/0(18)[32],=RV7AD/0(18)[32],=RV9JD/0(18)[32],=RW4YA/0(18)[32], + =RW4YA/9(18)[32],=RX3AT/0(18)[32],=RX3DFH/0(18)[32],=RX9WN/0(18)[32],=RX9WN/0/M(18)[32], + =RX9WN/0/P(18)[32],=RZ0SO/P(18)[32],=UA0KBG/0(18)[32],=UA0KBG/9(18)[32],=UA3EDQ/0(18)[32], + =UA3EDQ/0/MM(18)[32],=UA3EDQ/0/P(18)[32],=UA9MBK/0(18)[32],=UA9UAX/0(18)[32],=UA9WOB/0(18)[32], + =UA9WOB/0/P(18)[32],=UE105SBM(18)[32],=UE55IR(18)[32],=UE60SWA(18)[32],=UE70SVV(18)[32], + =UE80IR(18)[32],=UE80SBR(18)[32], R0W(18)[31],RA0W(18)[31],RC0W(18)[31],RD0W(18)[31],RE0W(18)[31],RF0W(18)[31],RG0W(18)[31], RJ0W(18)[31],RK0W(18)[31],RL0W(18)[31],RM0W(18)[31],RN0W(18)[31],RO0W(18)[31],RQ0W(18)[31], RT0W(18)[31],RU0W(18)[31],RV0W(18)[31],RW0W(18)[31],RX0W(18)[31],RY0W(18)[31],RZ0W(18)[31], @@ -3049,7 +3068,7 @@ Marshall Islands: 31: 65: OC: 9.08: -167.33: -12.0: V7: Brunei Darussalam: 28: 54: OC: 4.50: -114.60: -8.0: V8: V8; Canada: 05: 09: NA: 44.35: 78.75: 5.0: VE: - CF,CG,CJ,CK,VA,VB,VC,VE,VG,VX,VY9,XL,XM,=VE2EM/M,=VER20200520, + CF,CG,CJ,CK,VA,VB,VC,VE,VG,VX,VY9,XL,XM,=VE2EM/M,=VER20200803, =CF7AAW/1,=CK7IG/1,=VA3QSL/1,=VA3WR/1,=VE1REC/LH,=VE1REC/M/LH,=VE3RSA/1,=VE7IG/1, CF2[4],CG2[4],CJ2[4],CK2[4],VA2[4],VB2[4],VC2[4],VE2[4],VG2[4],VX2[4],XL2[4],XM2[4],=4Y1CAO[4], =CY2ZT/2[4],=VA3MPM/2[4],=VA7AQ/P[4],=VE2/G3ZAY/P[4],=VE2/M0BLF/P[4],=VE2FK[9],=VE2HAY/P[4], @@ -3244,8 +3263,8 @@ Vanuatu: 32: 56: OC: -17.67: -168.38: -11.0: YJ: Syria: 20: 39: AS: 35.38: -38.20: -2.0: YK: 6C,YK; Latvia: 15: 29: EU: 57.03: -24.65: -2.0: YL: - YL,=YL/LY1CM/LH,=YL0A/LH,=YL0WFF/LH,=YL1A/LH,=YL2AG/ANT,=YL2SW/MM(21),=YL3AD/LGT,=YL3BF/LH, - =YL3BU/LH,=YL3FT/LH,=YL3FT/P/LH,=YL3GED/LH,=YL3JD/LH; + YL,=YL0A/LH,=YL0WFF/LH,=YL1A/LH,=YL2AG/ANT,=YL2SW/MM(21),=YL3AD/LGT,=YL3BF/LH,=YL3BU/LH,=YL3FT/LH, + =YL3FT/P/LH,=YL3GED/LH,=YL3JD/LH; Nicaragua: 07: 11: NA: 12.88: 85.05: 6.0: YN: H6,H7,HT,YN; Romania: 20: 28: EU: 45.78: -24.70: -2.0: YO: From ec623deb9fa5676d3e016fffe20bfb7b58b2a6a7 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 15:57:29 +0100 Subject: [PATCH 28/36] More consistent Tx Next button behaviour --- widgets/mainwindow.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index cbca7272b..4bfe9351a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3742,19 +3742,20 @@ void MainWindow::guiUpdate() m_tuneup=false; //This is not an ATU tuneup bool btx = m_auto && m_WSPR_tx_next; // To Tx, we need m_auto and // scheduled transmit + m_WSPR_tx_next = false; if(btx) { m_ntr=-1; //This says we will have transmitted ui->pbTxNext->setChecked (false); m_bTxTime=true; //Start a WSPR or FST4W Tx sequence } else { -// This will be a WSPR or FST4W Rx sequence. + // This will be a WSPR or FST4W Rx sequence. m_ntr=1; //This says we will have received m_bTxTime=false; //Start a WSPR or FST4W Rx sequence } } } else { -// For all modes other than WSPR and Fst4W + // For all modes other than WSPR and Fst4W m_bTxTime = (t2p >= tx1) and (t2p < tx2); if(m_mode=="Echo") m_bTxTime = m_bTxTime and m_bEchoTxOK; if(m_mode=="FT8" and ui->tx5->currentText().contains("/B ")) { @@ -5756,8 +5757,6 @@ void MainWindow::on_tx6_editingFinished() //tx6 edited void MainWindow::on_RoundRobin_currentTextChanged(QString text) { ui->sbTxPercent->setEnabled (text == tr ("Random")); - m_WSPR_tx_next = false; // cancel any pending Tx to avoid - // undesirable consecutive Tx periods } @@ -8138,7 +8137,6 @@ void MainWindow::on_pbTxNext_clicked(bool b) { if (b && !ui->autoButton->isChecked ()) { - m_WSPR_tx_next = false; // cancel any pending start from schedule ui->autoButton->click (); // make sure Tx is possible } } From 6adb7d2249e4703e9b31dcde9e08d93ae629cdb9 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 21:33:16 +0100 Subject: [PATCH 29/36] Non-repo files --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index 9c636d134..80e3c4b27 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ ~* TAGS tags +GPATH +GRTAGS +GTAGS *~ junk* jnq* @@ -9,7 +12,9 @@ jnq* *.mod *.pro.user *.txt +*.bak !**/CMakeLists.txt +__pycache__ cmake-build-debug cmake-build-release CMakeFiles From b9843907116940f658149cdea113155c851dd381 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 23:29:53 +0100 Subject: [PATCH 30/36] Fix PSK Reporter spots of FST4W decodes with power <10 dBm --- widgets/mainwindow.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 059086c67..7040936c1 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3505,9 +3505,8 @@ void MainWindow::readFromStdout() //readFromStdout bool okToPost=(nsec > int(4*m_TRperiod)/5); if(m_mode=="FST4W" and okToPost) { line_read=line_read.left(22) + " CQ " + line_read.trimmed().mid(22); - int n=line_read.trimmed().size(); - line_read=line_read.trimmed().left(n-3); - DecodedText FST4W_post {QString::fromUtf8(line_read.constData())}; + auto p = line_read.lastIndexOf (' '); + DecodedText FST4W_post {QString::fromUtf8 (line_read.left (p).constData ())}; pskPost(FST4W_post); } else { if (stdMsg && okToPost) pskPost(decodedtext); From 491a7b9a05baf7456ec4318170f9fdac6a533427 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 23:32:10 +0100 Subject: [PATCH 31/36] Ensure no connect with, or traffic to, PSK Reporter if not enabled --- Network/PSKReporter.cpp | 12 ++++++++++-- widgets/mainwindow.cpp | 10 ++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Network/PSKReporter.cpp b/Network/PSKReporter.cpp index 59408c284..1776d8143 100644 --- a/Network/PSKReporter.cpp +++ b/Network/PSKReporter.cpp @@ -65,7 +65,6 @@ public: // This timer sets the interval to check for spots to send. connect (&report_timer_, &QTimer::timeout, [this] () {send_report ();}); - report_timer_.start (MIN_SEND_INTERVAL * 1000); // This timer repeats the sending of IPFIX templates and receiver // information if we are using UDP, in case server has been @@ -80,7 +79,6 @@ public: send_receiver_data_ = 3; // three times } }); - descriptor_timer_.start (1 * 60 * 60 * 1000); // hourly } void check_connection () @@ -156,6 +154,15 @@ public: // use this for pseudo connection with UDP, allows us to use // QIODevice::write() instead of QUDPSocket::writeDatagram() socket_->connectToHost (HOST, SERVICE_PORT, QAbstractSocket::WriteOnly); + + if (!report_timer_.isActive ()) + { + report_timer_.start (MIN_SEND_INTERVAL * 1000); + } + if (!descriptor_timer_.isActive ()) + { + descriptor_timer_.start (1 * 60 * 60 * 1000); // hourly + } } void send_report (bool send_residue = false); @@ -490,6 +497,7 @@ void PSKReporter::setLocalStation (QString const& call, QString const& gridSquar bool PSKReporter::addRemoteStation (QString const& call, QString const& grid, Radio::Frequency freq , QString const& mode, int snr) { + m_->check_connection (); if (m_->socket_ && m_->socket_->isValid ()) { if (QAbstractSocket::UnconnectedState == m_->socket_->state ()) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 7040936c1..3f0ded867 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1814,7 +1814,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog on_dxGridEntry_textChanged (m_hisGrid); // recalculate distances in case of units change enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook - if(m_config.spot_to_psk_reporter ()) pskSetLocal (); + pskSetLocal (); if(m_config.restart_audio_input ()) { Q_EMIT startAudioInputStream (m_config.audio_input_device () @@ -6864,7 +6864,11 @@ void MainWindow::band_changed (Frequency f) } m_lastBand.clear (); m_bandEdited = false; - m_psk_Reporter.sendReport(); // Upload any queued spots before changing band + if (m_config.spot_to_psk_reporter ()) + { + // Upload any queued spots before changing band + m_psk_Reporter.sendReport(); + } if (!m_transmitting) monitor (true); if ("FreqCal" == m_mode) { @@ -7539,6 +7543,8 @@ bool MainWindow::shortList(QString callsign) void MainWindow::pskSetLocal () { + if (!m_config.spot_to_psk_reporter ()) return; + // find the station row, if any, that matches the band we are on auto stations = m_config.stations (); auto matches = stations->match (stations->index (0, StationList::band_column) From 50da40413f29e5122f921f81b4f84c2fa0906db3 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 16 Aug 2020 00:38:19 +0100 Subject: [PATCH 32/36] PSK Reporter connection opened & closed at the correct times --- Network/PSKReporter.cpp | 22 ++++++++++++++++++++-- Network/PSKReporter.hpp | 2 +- widgets/mainwindow.cpp | 11 ++++++++--- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/Network/PSKReporter.cpp b/Network/PSKReporter.cpp index 1776d8143..59c5f2f0a 100644 --- a/Network/PSKReporter.cpp +++ b/Network/PSKReporter.cpp @@ -165,6 +165,16 @@ public: } } + void stop () + { + if (socket_) + { + socket_->disconnectFromHost (); + } + descriptor_timer_.stop (); + report_timer_.stop (); + } + void send_report (bool send_residue = false); void build_preamble (QDataStream&); @@ -484,6 +494,7 @@ void PSKReporter::reconnect () void PSKReporter::setLocalStation (QString const& call, QString const& gridSquare, QString const& antenna) { + m_->check_connection (); if (call != m_->rx_call_ || gridSquare != m_->rx_grid_ || antenna != m_->rx_ant_) { m_->send_receiver_data_ = m_->socket_ @@ -510,7 +521,14 @@ bool PSKReporter::addRemoteStation (QString const& call, QString const& grid, Ra return false; } -void PSKReporter::sendReport () +void PSKReporter::sendReport (bool last) { - m_->send_report (true); + if (m_->socket_ && QAbstractSocket::ConnectedState == m_->socket_->state ()) + { + m_->send_report (true); + } + if (last) + { + m_->stop (); + } } diff --git a/Network/PSKReporter.hpp b/Network/PSKReporter.hpp index 3582b5850..1757e63af 100644 --- a/Network/PSKReporter.hpp +++ b/Network/PSKReporter.hpp @@ -29,7 +29,7 @@ public: // // Flush any pending spots to PSK Reporter // - void sendReport (); + void sendReport (bool last = false); Q_SIGNAL void errorOccurred (QString const& reason); diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 3f0ded867..829fdf1c6 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1801,6 +1801,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog auto callsign = m_config.my_callsign (); auto my_grid = m_config.my_grid (); SpecOp nContest0=m_config.special_op_id(); + auto psk_on = m_config.spot_to_psk_reporter (); if (QDialog::Accepted == m_config.exec ()) { checkMSK144ContestType(); if (m_config.my_callsign () != callsign) { @@ -1815,6 +1816,12 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook pskSetLocal (); + // this will close the connection to PSKReporter if it has been + // disabled + if (psk_on && !m_config.spot_to_psk_reporter ()) + { + m_psk_Reporter.sendReport (true); + } if(m_config.restart_audio_input ()) { Q_EMIT startAudioInputStream (m_config.audio_input_device () @@ -7238,9 +7245,7 @@ void MainWindow::handle_transceiver_update (Transceiver::TransceiverState const& || !(ui->cbCQTx->isEnabled () && ui->cbCQTx->isVisible () && ui->cbCQTx->isChecked()))) { m_lastDialFreq = m_freqNominal; m_secBandChanged=QDateTime::currentMSecsSinceEpoch()/1000; - if (m_config.spot_to_psk_reporter ()) { - pskSetLocal (); - } + pskSetLocal (); statusChanged(); m_wideGraph->setDialFreq(m_freqNominal / 1.e6); } From 65f994ce90a758906b2a764fb48fb382bb32699d Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 16 Aug 2020 00:55:29 +0100 Subject: [PATCH 33/36] Improved audio stream error handling --- Audio/soundout.cpp | 75 ++++++++++-------- Audio/soundout.h | 2 + Configuration.cpp | 166 +++++++++++++++++++++++++--------------- Modulator/Modulator.cpp | 11 ++- 4 files changed, 162 insertions(+), 92 deletions(-) diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index 16a515370..40eff6012 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -43,45 +43,60 @@ bool SoundOutput::audioError () const void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, int frames_buffered) { - Q_ASSERT (0 < channels && channels < 3); - - m_framesBuffered = frames_buffered; - - QAudioFormat format (device.preferredFormat ()); -// qDebug () << "Preferred audio output format:" << format; - format.setChannelCount (channels); - format.setCodec ("audio/pcm"); - format.setSampleRate (48000); - format.setSampleType (QAudioFormat::SignedInt); - format.setSampleSize (16); - format.setByteOrder (QAudioFormat::Endian (QSysInfo::ByteOrder)); - if (!format.isValid ()) + if (!device.isNull ()) { - Q_EMIT error (tr ("Requested output audio format is not valid.")); + Q_ASSERT (0 < channels && channels < 3); + + m_framesBuffered = frames_buffered; + + QAudioFormat format (device.preferredFormat ()); + // qDebug () << "Preferred audio output format:" << format; + format.setChannelCount (channels); + format.setCodec ("audio/pcm"); + format.setSampleRate (48000); + format.setSampleType (QAudioFormat::SignedInt); + format.setSampleSize (16); + format.setByteOrder (QAudioFormat::Endian (QSysInfo::ByteOrder)); + if (!format.isValid ()) + { + Q_EMIT error (tr ("Requested output audio format is not valid.")); + } + else if (!device.isFormatSupported (format)) + { + Q_EMIT error (tr ("Requested output audio format is not supported on device.")); + } + else + { + // qDebug () << "Selected audio output format:" << format; + + m_stream.reset (new QAudioOutput (device, format)); + audioError (); + m_stream->setVolume (m_volume); + m_stream->setNotifyInterval(100); + error_ = false; + + connect (m_stream.data(), &QAudioOutput::stateChanged, this, &SoundOutput::handleStateChanged); + + // qDebug() << "A" << m_volume << m_stream->notifyInterval(); + } } - else if (!device.isFormatSupported (format)) - { - Q_EMIT error (tr ("Requested output audio format is not supported on device.")); - } - qDebug () << "Selected audio output format:" << format; - - m_stream.reset (new QAudioOutput (device, format)); - audioError (); - m_stream->setVolume (m_volume); - m_stream->setNotifyInterval(100); - - connect (m_stream.data(), &QAudioOutput::stateChanged, this, &SoundOutput::handleStateChanged); - - // qDebug() << "A" << m_volume << m_stream->notifyInterval(); } void SoundOutput::restart (QIODevice * source) { if (!m_stream) { - Q_EMIT error (tr ("No audio output device configured.")); + if (!error_) + { + error_ = true; // only signal error once + Q_EMIT error (tr ("No audio output device configured.")); + } return; } + else + { + error_ = false; + } // we have to set this before every start on the stream because the // Windows implementation seems to forget the buffer size after a @@ -95,7 +110,7 @@ void SoundOutput::restart (QIODevice * source) } m_stream->setCategory ("production"); m_stream->start (source); - //qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); + // qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); } void SoundOutput::suspend () diff --git a/Audio/soundout.h b/Audio/soundout.h index 2699176f3..c46e1563f 100644 --- a/Audio/soundout.h +++ b/Audio/soundout.h @@ -20,6 +20,7 @@ public: SoundOutput () : m_framesBuffered {0} , m_volume {1.0} + , error_ {false} { } @@ -49,6 +50,7 @@ private: QScopedPointer m_stream; int m_framesBuffered; qreal m_volume; + bool error_; }; #endif diff --git a/Configuration.cpp b/Configuration.cpp index 59be7f867..f72ab5ae9 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -433,9 +433,13 @@ private: void write_settings (); Q_SLOT void lazy_models_load (int); + void find_audio_devices (); + QAudioDeviceInfo find_audio_device (QAudio::Mode, QComboBox *, QString const& device_name); void load_audio_devices (QAudio::Mode, QComboBox *, QAudioDeviceInfo *); void update_audio_channels (QComboBox const *, int, QComboBox *, bool); + void find_tab (QWidget *); + void initialize_models (); bool split_mode () const { @@ -1193,7 +1197,7 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network ui_->highlighting_list_view->setModel (&next_decode_highlighing_model_); enumerate_rigs (); - initialize_models (); + // initialize_models (); transceiver_thread_ = new QThread {this}; transceiver_thread_->start (); @@ -1231,6 +1235,10 @@ void Configuration::impl::lazy_models_load (int current_tab_index) void Configuration::impl::initialize_models () { + { + SettingsGroup g {settings_, "Configuration"}; + find_audio_devices (); + } auto pal = ui_->callsign_line_edit->palette (); if (my_callsign_.isEmpty ()) { @@ -1405,39 +1413,7 @@ void Configuration::impl::read_settings () save_directory_.setPath (settings_->value ("SaveDir", default_save_directory_.absolutePath ()).toString ()); azel_directory_.setPath (settings_->value ("AzElDir", default_azel_directory_.absolutePath ()).toString ()); - { - // - // retrieve audio input device - // - auto saved_name = settings_->value ("SoundInName").toString (); - Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (QAudio::AudioInput)) // available audio input devices - { - if (p.deviceName () == saved_name) - { - audio_input_device_ = p; - break; - } - } - } - - { - // - // retrieve audio output device - // - auto saved_name = settings_->value("SoundOutName").toString(); - Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (QAudio::AudioOutput)) // available audio output devices - { - if (p.deviceName () == saved_name) - { - audio_output_device_ = p; - break; - } - } - } - - // retrieve audio channel info - audio_input_channel_ = AudioDevice::fromString (settings_->value ("AudioInputChannel", "Mono").toString ()); - audio_output_channel_ = AudioDevice::fromString (settings_->value ("AudioOutputChannel", "Mono").toString ()); + find_audio_devices (); type_2_msg_gen_ = settings_->value ("Type2MsgGen", QVariant::fromValue (Configuration::type_2_msg_3_full)).value (); @@ -1540,6 +1516,27 @@ void Configuration::impl::read_settings () pwrBandTuneMemory_ = settings_->value("pwrBandTuneMemory",false).toBool (); } +void Configuration::impl::find_audio_devices () +{ + // + // retrieve audio input device + // + auto saved_name = settings_->value ("SoundInName").toString (); + audio_input_device_ = find_audio_device (QAudio::AudioInput, ui_->sound_input_combo_box, saved_name); + audio_input_channel_ = AudioDevice::fromString (settings_->value ("AudioInputChannel", "Mono").toString ()); + update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); + ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); + + // + // retrieve audio output device + // + saved_name = settings_->value("SoundOutName").toString(); + audio_output_channel_ = AudioDevice::fromString (settings_->value ("AudioOutputChannel", "Mono").toString ()); + audio_output_device_ = find_audio_device (QAudio::AudioOutput, ui_->sound_output_combo_box, saved_name); + update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); + ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); +} + void Configuration::impl::write_settings () { SettingsGroup g {settings_, "Configuration"}; @@ -1634,6 +1631,7 @@ void Configuration::impl::write_settings () settings_->setValue ("pwrBandTuneMemory", pwrBandTuneMemory_); settings_->setValue ("Region", QVariant::fromValue (region_)); settings_->setValue ("AutoGrid", use_dynamic_grid_); + settings_->sync (); } void Configuration::impl::set_rig_invariants () @@ -1765,15 +1763,27 @@ void Configuration::impl::set_rig_invariants () bool Configuration::impl::validate () { - if (ui_->sound_input_combo_box->currentIndex () < 0) + if (ui_->sound_input_combo_box->currentIndex () < 0 + && audio_input_device_.isNull ()) { + find_tab (ui_->sound_input_combo_box); MessageBox::critical_message (this, tr ("Invalid audio input device")); return false; } - if (ui_->sound_output_combo_box->currentIndex () < 0) + if (ui_->sound_input_channel_combo_box->currentIndex () < 0 + && audio_input_device_.isNull ()) { - MessageBox::warning_message (this, tr ("Invalid audio output device")); + find_tab (ui_->sound_input_combo_box); + MessageBox::critical_message (this, tr ("Invalid audio input device")); + return false; + } + + if (ui_->sound_output_combo_box->currentIndex () < 0 + && audio_output_device_.isNull ()) + { + find_tab (ui_->sound_output_combo_box); + MessageBox::information_message (this, tr ("Invalid audio output device")); // don't reject as we can work without an audio output } @@ -1796,16 +1806,7 @@ bool Configuration::impl::validate () if (ui_->rbField_Day->isEnabled () && ui_->rbField_Day->isChecked () && !ui_->Field_Day_Exchange->hasAcceptableInput ()) { - for (auto * parent = ui_->Field_Day_Exchange->parentWidget (); parent; parent = parent->parentWidget ()) - { - auto index = ui_->configuration_tabs->indexOf (parent); - if (index != -1) - { - ui_->configuration_tabs->setCurrentIndex (index); - break; - } - } - ui_->Field_Day_Exchange->setFocus (); + find_tab (ui_->Field_Day_Exchange); MessageBox::critical_message (this, tr ("Invalid Contest Exchange") , tr ("You must input a valid ARRL Field Day exchange")); return false; @@ -1814,16 +1815,7 @@ bool Configuration::impl::validate () if (ui_->rbRTTY_Roundup->isEnabled () && ui_->rbRTTY_Roundup->isChecked () && !ui_->RTTY_Exchange->hasAcceptableInput ()) { - for (auto * parent = ui_->RTTY_Exchange->parentWidget (); parent; parent = parent->parentWidget ()) - { - auto index = ui_->configuration_tabs->indexOf (parent); - if (index != -1) - { - ui_->configuration_tabs->setCurrentIndex (index); - break; - } - } - ui_->RTTY_Exchange->setFocus (); + find_tab (ui_->RTTY_Exchange); MessageBox::critical_message (this, tr ("Invalid Contest Exchange") , tr ("You must input a valid ARRL RTTY Roundup exchange")); return false; @@ -2618,6 +2610,7 @@ void Configuration::impl::transceiver_frequency (Frequency f) current_offset_ = stations_.offset (f); cached_rig_state_.frequency (apply_calibration (f + current_offset_)); + qDebug () << "Configuration::impl::transceiver_frequency: n:" << transceiver_command_number_ + 1 << "f:" << f; Q_EMIT set_transceiver (cached_rig_state_, ++transceiver_command_number_); } @@ -2643,6 +2636,7 @@ void Configuration::impl::transceiver_tx_frequency (Frequency f) cached_rig_state_.tx_frequency (apply_calibration (f + current_tx_offset_)); } + qDebug () << "Configuration::impl::transceiver_tx_frequency: n:" << transceiver_command_number_ + 1 << "f:" << f; Q_EMIT set_transceiver (cached_rig_state_, ++transceiver_command_number_); } } @@ -2651,6 +2645,7 @@ void Configuration::impl::transceiver_mode (MODE m) { cached_rig_state_.online (true); // we want the rig online cached_rig_state_.mode (m); + qDebug () << "Configuration::impl::transceiver_mode: n:" << transceiver_command_number_ + 1 << "m:" << m; Q_EMIT set_transceiver (cached_rig_state_, ++transceiver_command_number_); } @@ -2659,6 +2654,7 @@ void Configuration::impl::transceiver_ptt (bool on) cached_rig_state_.online (true); // we want the rig online set_cached_mode (); cached_rig_state_.ptt (on); + qDebug () << "Configuration::impl::transceiver_ptt: n:" << transceiver_command_number_ + 1 << "on:" << on; Q_EMIT set_transceiver (cached_rig_state_, ++transceiver_command_number_); } @@ -2757,8 +2753,11 @@ void Configuration::impl::close_rig () } } -// load the available audio devices into the selection combo box -void Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * combo_box, QAudioDeviceInfo * device) +// find the audio device that matches the specified name, also +// populate into the selection combo box with any devices we find in +// the search +QAudioDeviceInfo Configuration::impl::find_audio_device (QAudio::Mode mode, QComboBox * combo_box + , QString const& device_name) { using std::copy; using std::back_inserter; @@ -2766,7 +2765,40 @@ void Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * com combo_box->clear (); int current_index = -1; - Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (mode)) + auto const& devices = QAudioDeviceInfo::availableDevices (mode); + Q_FOREACH (auto const& p, devices) + { + // qDebug () << "Audio device: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); + + // convert supported channel counts into something we can store in the item model + QList channel_counts; + auto scc = p.supportedChannelCounts (); + copy (scc.cbegin (), scc.cend (), back_inserter (channel_counts)); + + combo_box->addItem (p.deviceName (), QVariant::fromValue (audio_info_type {p, channel_counts})); + if (p.deviceName () == device_name) + { + current_index = combo_box->count () - 1; + combo_box->setCurrentIndex (current_index); + return p; + } + } + combo_box->setCurrentIndex (current_index); + return {}; +} + +// load the available audio devices into the selection combo box +void Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * combo_box + , QAudioDeviceInfo * device) +{ + using std::copy; + using std::back_inserter; + + combo_box->clear (); + + int current_index = -1; + auto const& devices = QAudioDeviceInfo::availableDevices (mode); + Q_FOREACH (auto const& p, devices) { // qDebug () << "Audio device: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); @@ -2814,6 +2846,20 @@ void Configuration::impl::update_audio_channels (QComboBox const * source_combo_ } } +void Configuration::impl::find_tab (QWidget * target) +{ + for (auto * parent = target->parentWidget (); parent; parent = parent->parentWidget ()) + { + auto index = ui_->configuration_tabs->indexOf (parent); + if (index != -1) + { + ui_->configuration_tabs->setCurrentIndex (index); + break; + } + } + target->setFocus (); +} + // load all the supported rig names into the selection combo box void Configuration::impl::enumerate_rigs () { diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index e99b21a46..df365c507 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -105,7 +105,14 @@ void Modulator::start (QString mode, unsigned symbolsLength, double framesPerSym // qDebug() << "delay_ms:" << delay_ms << "mstr:" << mstr << "m_silentFrames:" << m_silentFrames << "m_ic:" << m_ic << "m_state:" << m_state; m_stream = stream; - if (m_stream) m_stream->restart (this); + if (m_stream) + { + m_stream->restart (this); + } + else + { + qDebug () << "Modulator::start: no audio output stream assigned"; + } } void Modulator::tune (bool newState) @@ -142,7 +149,7 @@ void Modulator::close () qint64 Modulator::readData (char * data, qint64 maxSize) { - //qDebug () << "readData: maxSize:" << maxSize; + // qDebug () << "readData: maxSize:" << maxSize; double toneFrequency=1500.0; if(m_nsps==6) { From 536e6568a62d30f761704924c7166ed7d28d128e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 16 Aug 2020 02:34:18 +0100 Subject: [PATCH 34/36] FST4* messages do not need padding out to 37 characters --- widgets/mainwindow.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 829fdf1c6..c50010c66 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3294,7 +3294,8 @@ void MainWindow::readFromStdout() //readFromStdout line_read = line_read.left (64); } } - if(m_mode!="FT8" and m_mode!="FT4") { + if (m_mode!="FT8" and m_mode!="FT4" + && !m_mode.startsWith ("FST4")) { //Pad 22-char msg to at least 37 chars line_read = line_read.left(44) + " " + line_read.mid(44); } From 7bf086dc5369d1d2fe64af8314cefd39ae63c2e4 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 16 Aug 2020 02:56:48 +0100 Subject: [PATCH 35/36] Updated ADIF band bounds --- models/Bands.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/Bands.cpp b/models/Bands.cpp index 832c36185..f8d7872f2 100644 --- a/models/Bands.cpp +++ b/models/Bands.cpp @@ -15,14 +15,14 @@ namespace Radio::Frequency lower_bound_; Radio::Frequency upper_bound_; } constexpr ADIF_bands[] = { - {"2190m", 136000u, 137000u}, + {"2190m", 135700u, 137800u}, {"630m", 472000u, 479000u}, {"560m", 501000u, 504000u}, {"160m", 1800000u, 2000000u}, {"80m", 3500000u, 4000000u}, {"60m", 5060000u, 5450000u}, {"40m", 7000000u, 7300000u}, - {"30m", 10000000u, 10150000u}, + {"30m", 10100000u, 10150000u}, {"20m", 14000000u, 14350000u}, {"17m", 18068000u, 18168000u}, {"15m", 21000000u, 21450000u}, From 1b36183057c0c73084da5f90e886bbc4c5d67fa3 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 16 Aug 2020 03:01:16 +0100 Subject: [PATCH 36/36] Reduce debug message length --- main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.cpp b/main.cpp index c167a0396..a3cb166a4 100644 --- a/main.cpp +++ b/main.cpp @@ -97,7 +97,7 @@ namespace int main(int argc, char *argv[]) { // ### Add timestamps to all debug messages - qSetMessagePattern ("[%{time yyyyMMdd HH:mm:ss.zzz t} %{if-debug}D%{endif}%{if-info}I%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{message}"); + // qSetMessagePattern ("[%{time yyyyMMdd HH:mm:ss.zzz t} %{if-debug}D%{endif}%{if-info}I%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{message}"); init_random_seed ();