diff --git a/Bands.cpp b/Bands.cpp index ba0ed31f7..a70358fa3 100644 --- a/Bands.cpp +++ b/Bands.cpp @@ -8,7 +8,7 @@ namespace { // Table of ADIF band definitions as defined in the ADIF - // specification. + // specification as at ADIF v3.0.6 struct ADIFBand { char const * const name_; @@ -20,7 +20,7 @@ namespace {"560m", 501000u, 504000u}, {"160m", 1800000u, 2000000u}, {"80m", 3500000u, 4000000u}, - {"60m", 5102000u, 5406500u}, + {"60m", 5060000u, 5450000u}, {"40m", 7000000u, 7300000u}, {"30m", 10000000u, 10150000u}, {"20m", 14000000u, 14350000u}, diff --git a/CMakeLists.txt b/CMakeLists.txt index ed9aaff05..d5e64f89d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -374,6 +374,7 @@ set (wsjt_FSRCS lib/fsk4hf/bpdecode174.f90 lib/fsk4hf/bpdecode300.f90 lib/baddata.f90 + lib/calibrate.f90 lib/ccf2.f90 lib/ccf65.f90 lib/fsk4hf/chkcrc10.f90 @@ -424,6 +425,7 @@ set (wsjt_FSRCS lib/fil4.f90 lib/fil6521.f90 lib/filbig.f90 + lib/fitcal.f90 lib/fix_contest_msg.f90 lib/flat1.f90 lib/flat1a.f90 diff --git a/Configuration.cpp b/Configuration.cpp index e0441ba9e..c93660a71 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -237,7 +237,7 @@ public: { return {frequency_line_edit_.frequency () , Modes::value (mode_combo_box_.currentText ()) - , IARURegions::value (region_combo_box_.currentIndex ())}; + , IARURegions::value (region_combo_box_.currentText ())}; } private: @@ -517,8 +517,8 @@ private: bool rig_changed_; TransceiverState cached_rig_state_; int rig_resolution_; // see Transceiver::resolution signal - double frequency_calibration_intercept_; - double frequency_calibration_slope_ppm_; + CalibrationParams calibration_; + bool frequency_calibration_disabled_; // not persistent unsigned transceiver_command_number_; // configuration fields that we publish @@ -561,7 +561,6 @@ private: bool single_decode_; bool twoPass_; bool x2ToneSpacing_; - bool contestMode_; bool realTimeDecode_; QString udp_server_name_; port_type udp_server_port_; @@ -652,7 +651,6 @@ bool Configuration::decode_at_52s () const {return m_->decode_at_52s_;} bool Configuration::single_decode () const {return m_->single_decode_;} bool Configuration::twoPass() const {return m_->twoPass_;} bool Configuration::x2ToneSpacing() const {return m_->x2ToneSpacing_;} -bool Configuration::contestMode() const {return m_->contestMode_;} bool Configuration::realTimeDecode() const {return m_->realTimeDecode_;} bool Configuration::split_mode () const {return m_->split_mode ();} QString Configuration::udp_server_name () const {return m_->udp_server_name_;} @@ -675,6 +673,18 @@ QString Configuration::rig_name () const {return m_->rig_params_.rig_name;} bool Configuration::pwrBandTxMemory () const {return m_->pwrBandTxMemory_;} bool Configuration::pwrBandTuneMemory () const {return m_->pwrBandTuneMemory_;} +void Configuration::set_calibration (CalibrationParams params) +{ + m_->calibration_ = params; +} + +void Configuration::enable_calibration (bool on) +{ + auto target_frequency = m_->remove_calibration (m_->cached_rig_state_.frequency ()) - m_->current_offset_; + m_->frequency_calibration_disabled_ = !on; + transceiver_frequency (target_frequency); +} + bool Configuration::is_transceiver_online () const { return m_->rig_active_; @@ -794,12 +804,15 @@ Configuration::impl::impl (Configuration * self, QDir const& temp_directory, QSettings * settings, QWidget * parent) : QDialog {parent} , self_ {self} + , transceiver_thread_ {nullptr} , ui_ {new Ui::configuration_dialog} , settings_ {settings} , doc_dir_ {doc_path ()} , data_dir_ {data_path ()} , temp_dir_ {temp_directory} , writeable_data_dir_ {QStandardPaths::writableLocation (QStandardPaths::DataLocation)} + , restart_sound_input_device_ {false} + , restart_sound_output_device_ {false} , frequencies_ {&bands_} , next_frequencies_ {&bands_} , stations_ {&bands_} @@ -814,6 +827,7 @@ Configuration::impl::impl (Configuration * self, QDir const& temp_directory, , have_rig_ {false} , rig_changed_ {false} , rig_resolution_ {0} + , frequency_calibration_disabled_ {false} , transceiver_command_number_ {0} , degrade_ {0.} // initialize to zero each run, not // saved in settings @@ -1025,9 +1039,6 @@ Configuration::impl::impl (Configuration * self, QDir const& temp_directory, ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); - restart_sound_input_device_ = false; - restart_sound_output_device_ = false; - enumerate_rigs (); initialize_models (); @@ -1092,7 +1103,6 @@ void Configuration::impl::initialize_models () ui_->single_decode_check_box->setChecked(single_decode_); ui_->cbTwoPass->setChecked(twoPass_); ui_->cbx2ToneSpacing->setChecked(x2ToneSpacing_); - ui_->cbContestMode->setChecked(contestMode_); ui_->cbRealTime->setChecked(realTimeDecode_); ui_->cbRealTime->setVisible(false); //Tempoary -- probably will remove this control ui_->type_2_msg_gen_combo_box->setCurrentIndex (type_2_msg_gen_); @@ -1128,8 +1138,8 @@ void Configuration::impl::initialize_models () ui_->accept_udp_requests_check_box->setChecked (accept_udp_requests_); ui_->udpWindowToFront->setChecked(udpWindowToFront_); ui_->udpWindowRestore->setChecked(udpWindowRestore_); - ui_->calibration_intercept_spin_box->setValue (frequency_calibration_intercept_); - ui_->calibration_slope_ppm_spin_box->setValue (frequency_calibration_slope_ppm_); + ui_->calibration_intercept_spin_box->setValue (calibration_.intercept); + ui_->calibration_slope_ppm_spin_box->setValue (calibration_.slope_ppm); if (rig_params_.ptt_port.isEmpty ()) { @@ -1323,7 +1333,6 @@ void Configuration::impl::read_settings () single_decode_ = settings_->value("SingleDecode",false).toBool (); twoPass_ = settings_->value("TwoPass",true).toBool (); x2ToneSpacing_ = settings_->value("x2ToneSpacing",false).toBool (); - contestMode_ = settings_->value("ContestMode",false).toBool (); realTimeDecode_ = settings_->value("RealTimeDecode",false).toBool (); rig_params_.poll_interval = settings_->value ("Polling", 0).toInt (); rig_params_.split_mode = settings_->value ("SplitMode", QVariant::fromValue (TransceiverFactory::split_mode_none)).value (); @@ -1332,8 +1341,8 @@ void Configuration::impl::read_settings () accept_udp_requests_ = settings_->value ("AcceptUDPRequests", false).toBool (); udpWindowToFront_ = settings_->value ("udpWindowToFront",false).toBool (); udpWindowRestore_ = settings_->value ("udpWindowRestore",false).toBool (); - frequency_calibration_intercept_ = settings_->value ("CalibrationIntercept", 0.).toDouble (); - frequency_calibration_slope_ppm_ = settings_->value ("CalibrationSlopePPM", 0.).toDouble (); + calibration_.intercept = settings_->value ("CalibrationIntercept", 0.).toDouble (); + calibration_.slope_ppm = settings_->value ("CalibrationSlopePPM", 0.).toDouble (); pwrBandTxMemory_ = settings_->value("pwrBandTxMemory",false).toBool (); pwrBandTuneMemory_ = settings_->value("pwrBandTuneMemory",false).toBool (); } @@ -1422,15 +1431,14 @@ void Configuration::impl::write_settings () settings_->setValue ("SingleDecode", single_decode_); settings_->setValue ("TwoPass", twoPass_); settings_->setValue ("x2ToneSpacing", x2ToneSpacing_); - settings_->setValue ("ContestMode", contestMode_); settings_->setValue ("RealTimeDecode", realTimeDecode_); settings_->setValue ("UDPServer", udp_server_name_); settings_->setValue ("UDPServerPort", udp_server_port_); settings_->setValue ("AcceptUDPRequests", accept_udp_requests_); settings_->setValue ("udpWindowToFront", udpWindowToFront_); settings_->setValue ("udpWindowRestore", udpWindowRestore_); - settings_->setValue ("CalibrationIntercept", frequency_calibration_intercept_); - settings_->setValue ("CalibrationSlopePPM", frequency_calibration_slope_ppm_); + settings_->setValue ("CalibrationIntercept", calibration_.intercept); + settings_->setValue ("CalibrationSlopePPM", calibration_.slope_ppm); settings_->setValue ("pwrBandTxMemory", pwrBandTxMemory_); settings_->setValue ("pwrBandTuneMemory", pwrBandTuneMemory_); settings_->setValue ("Region", QVariant::fromValue (region_)); @@ -1818,10 +1826,9 @@ void Configuration::impl::accept () single_decode_ = ui_->single_decode_check_box->isChecked (); twoPass_ = ui_->cbTwoPass->isChecked (); x2ToneSpacing_ = ui_->cbx2ToneSpacing->isChecked (); - contestMode_ = ui_->cbContestMode->isChecked (); realTimeDecode_ = ui_->cbRealTime->isChecked (); - frequency_calibration_intercept_ = ui_->calibration_intercept_spin_box->value (); - frequency_calibration_slope_ppm_ = ui_->calibration_slope_ppm_spin_box->value (); + calibration_.intercept = ui_->calibration_intercept_spin_box->value (); + calibration_.slope_ppm = ui_->calibration_slope_ppm_spin_box->value (); pwrBandTxMemory_ = ui_->checkBoxPwrBandTxMemory->isChecked (); pwrBandTuneMemory_ = ui_->checkBoxPwrBandTuneMemory->isChecked (); auto new_server = ui_->udp_server_line_edit->text (); @@ -1847,7 +1854,7 @@ void Configuration::impl::accept () macros_.setStringList (next_macros_.stringList ()); } - region_ = IARURegions::value (ui_->region_combo_box->currentIndex ()); + region_ = IARURegions::value (ui_->region_combo_box->currentText ()); if (frequencies_.frequency_list () != next_frequencies_.frequency_list ()) { @@ -2673,14 +2680,16 @@ void Configuration::impl::fill_port_combo_box (QComboBox * cb) auto Configuration::impl::apply_calibration (Frequency f) const -> Frequency { - return std::llround (frequency_calibration_intercept_ - + (1. + frequency_calibration_slope_ppm_ / 1.e6) * f); + if (frequency_calibration_disabled_) return f; + return std::llround (calibration_.intercept + + (1. + calibration_.slope_ppm / 1.e6) * f); } auto Configuration::impl::remove_calibration (Frequency f) const -> Frequency { - return std::llround ((f - frequency_calibration_intercept_) - / (1. + frequency_calibration_slope_ppm_ / 1.e6)); + if (frequency_calibration_disabled_) return f; + return std::llround ((f - calibration_.intercept) + / (1. + calibration_.slope_ppm / 1.e6)); } #if !defined (QT_NO_DEBUG_STREAM) diff --git a/Configuration.hpp b/Configuration.hpp index b0c219167..c6e8875fb 100644 --- a/Configuration.hpp +++ b/Configuration.hpp @@ -159,6 +159,31 @@ public: QColor color_NewCall () const; bool pwrBandTxMemory () const; bool pwrBandTuneMemory () const; + + struct CalibrationParams + { + CalibrationParams () + : intercept {0.} + , slope_ppm {0.} + { + } + + CalibrationParams (double the_intercept, double the_slope_ppm) + : intercept {the_intercept} + , slope_ppm {the_slope_ppm} + { + } + + double intercept; // Hertz + double slope_ppm; // Hertz + }; + + // Temporarily enable or disable calibration adjustments. + void enable_calibration (bool = true); + + // Set the calibration parameters and enable calibration corrections. + void set_calibration (CalibrationParams); + // This method queries if a CAT and PTT connection is operational. bool is_transceiver_online () const; diff --git a/Configuration.ui b/Configuration.ui index 85aa7d207..5f1a4c985 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -6,7 +6,7 @@ 0 0 - 536 + 521 507 @@ -120,7 +120,7 @@ true - <html><head/><body><p>Type 2 compound callsigns are those with prefixes or suffixes not included in the allowed shortlist (See Help-&gt;Add-on prefixes and suffixes).</p><p>This option determines which generated messages should contain your full type 2 compound call sign rather than your base callsign. It only applies if you have a type 2 compound callsign.</p><p>This option controls the way the messages that are used to answer CQ calls are generated. Generated messages 6 (CQ) and 5 (73) will always contain your full callsign. The JT65 and JT9 protocols allow for some standard messages with your full call at the expense of another piece of information such as the DX call or your locator.</p><p>Choosing message 1 omits the DX callsign which may be an issue when replying to CQ calls. Choosing message 3 also omits the DX callsign and many versions of this and other software will not extract the report. Choosing neither means that your full callsign only goes in your message 5 (73) so your QSO partner my log the wrong callsign.</p><p>None of these options are perfect, message 3 is best but be aware your QSO partner may not log the report you send them.</p></body></html> + <html><head/><body><p>Type 2 compound callsigns are those with prefixes or suffixes not included in the allowed shortlist (See Help-&gt;Add-on prefixes and suffixes).</p><p>This option determines which generated messages should contain your full type 2 compound call sign rather than your base callsign. It only applies if you have a type 2 compound callsign.</p><p>This option controls the way the messages that are used to answer CQ calls are generated. Generated messages 6 (CQ) and 5 (73) will always contain your full callsign. The JT65 and JT9 protocols allow for some standard messages with your full call at the expense of another piece of information such as the DX call or your locator.</p><p>Choosing message 1 omits the DX callsign which may be an issue when replying to CQ calls. Choosing message 3 also omits the DX callsign and many versions of this and other software will not extract the report. Choosing neither means that your full callsign only goes in your message 5 (73) so your QSO partner may log the wrong callsign.</p><p>None of these options are perfect, message 3 is usually best but be aware your QSO partner may not log the report you send them.</p></body></html> 1 @@ -269,12 +269,51 @@ Behavior - - - - Enable VHF/UHF/Microwave features - - + + + + + + Qt::Horizontal + + + + 0 + 0 + + + + + + + + Tx watchdog: + + + tx_watchdog_spin_box + + + + + + + <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> + + + Disabled + + + minutes + + + + + + 6 + + + + @@ -289,6 +328,13 @@ + + + + Enable VHF/UHF/Microwave features + + + @@ -296,6 +342,23 @@ + + + + Single decode + + + + + + + <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> + + + Allow Tx frequency changes while transmitting + + + @@ -355,69 +418,6 @@ quiet period when decoding is done. - - - - Single decode - - - - - - - <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> - - - Allow Tx frequency changes while transmitting - - - - - - - - - Tx watchdog: - - - tx_watchdog_spin_box - - - - - - - <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> - - - Disabled - - - minutes - - - - - - 6 - - - - - - - Qt::Horizontal - - - - 0 - 0 - - - - - - @@ -1820,7 +1820,7 @@ for assessing propagation and system performance. - See WSPR documentation Appendix C for details of how to determine these factors for your radio. + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> Frequency Calibration @@ -2337,16 +2337,6 @@ Right click for insert and delete options. - - - <html><head/><body><p>Exchange 4-character grid locators instead of reports. See User Guide for details.</p></body></html> - - - FT8 and MSK144: NA VHF Contest Mode - - - - <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> @@ -2356,7 +2346,7 @@ Right click for insert and delete options. - + false @@ -2489,7 +2479,6 @@ soundcard changes monitor_off_check_box monitor_last_used_check_box quick_call_check_box - disable_TX_on_73_check_box tx_watchdog_spin_box CW_id_after_73_check_box enable_VHF_features_check_box @@ -2562,7 +2551,6 @@ soundcard changes sbDegrade sbBandwidth sbTxDelay - cbContestMode cbx2ToneSpacing cbRealTime @@ -2634,12 +2622,12 @@ soundcard changes - - + + + + - - diff --git a/FrequencyList.cpp b/FrequencyList.cpp index 3133877ab..6129cb753 100644 --- a/FrequencyList.cpp +++ b/FrequencyList.cpp @@ -610,29 +610,27 @@ bool FrequencyList_v2::impl::setData (QModelIndex const& model_index, QVariant c switch (model_index.column ()) { case region_column: - if (value.canConvert ()) - { - auto region = static_cast (value.toUInt ()); - if (region != item.region_) - { - item.region_ = region; - Q_EMIT dataChanged (model_index, model_index, roles); - changed = true; - } + { + auto region = IARURegions::value (value.toString ()); + if (region != item.region_) + { + item.region_ = region; + Q_EMIT dataChanged (model_index, model_index, roles); + changed = true; + } } break; case mode_column: - if (value.canConvert ()) - { - auto mode = Modes::value (value.toString ()); - if (mode != item.mode_) - { - item.mode_ = mode; - Q_EMIT dataChanged (model_index, model_index, roles); - changed = true; - } - } + { + auto mode = Modes::value (value.toString ()); + if (mode != item.mode_) + { + item.mode_ = mode; + Q_EMIT dataChanged (model_index, model_index, roles); + changed = true; + } + } break; case frequency_column: diff --git a/GUIcontrols.txt b/GUIcontrols.txt index 5cfe52bda..a331371d7 100644 --- a/GUIcontrols.txt +++ b/GUIcontrols.txt @@ -1,32 +1,32 @@ - JT4 JT9 9+65 JT65 QRA SCAT M144 WSPR Echo ---------------------------------------------------------------------- -0. txFirstCheckBox 11 111 1 11 11 11 1 - 1. TxFreqSpinBox 11 111 1 11 11 - 2. RxFreqSpinBox 11 111 1 11 11 1 - 3. sbFtol 1 11 1 11 11 1 - 4. rptSpinBox 11 111 1 11 11 11 1 - 5. sbTR 11 1 - 6. sbCQRxFreq 1 - 7. cbShMsgs 1 1 - 8. cbFast9 11 - 9. cbAutoSeq 1 -10. cbTx6 1 -11. pbTxMode 1 -12. pbR2T 11 11 1 11 11 -13. pbT2R 11 11 1 11 11 -14. cbTxLock 1 11 1 11 11 -15. sbSubMode 1 1 1 11 11 -16. syncSpinBox 1 1 1 11 11 -17. WSPR_Controls_Widget 1 -18. ClrAvgButton 11 1 ---------------------------------------------------------------------- -19. FastNormalDeep 11 11 1 11 1 1 -20. IncludeAveraging 1 1 -21. IncludeCorrelation 1 1 -22. EchoGraph 1 ---------------------------------------------------------------------- - -For each mode: -Column 1 applies when VHF features is OFF (or col 2 absent) -Column 2 (if present) applies when VHF features is ON -Column 3 (JT9 only) applies for submodes E-H with Fast checked + JT4 JT9 9+65 JT65 QRA SCAT M144 WSPR Echo +--------------------------------------------------------------------- +0. txFirstCheckBox 11 111 1 11 11 11 1 + 1. TxFreqSpinBox 11 111 1 11 11 + 2. RxFreqSpinBox 11 111 1 11 11 1 + 3. sbFtol 1 11 1 11 11 1 + 4. rptSpinBox 11 111 1 11 11 11 1 + 5. sbTR 11 1 + 6. sbCQRxFreq 1 + 7. cbShMsgs 1 1 + 8. cbFast9 11 + 9. cbAutoSeq 1 +10. cbTx6 1 +11. pbTxMode 1 +12. pbR2T 11 11 1 11 11 +13. pbT2R 11 11 1 11 11 +14. cbTxLock 1 11 1 11 11 +15. sbSubMode 1 1 1 11 11 +16. syncSpinBox 1 1 1 11 11 +17. WSPR_Controls_Widget 1 +18. ClrAvgButton 11 1 +--------------------------------------------------------------------- +19. FastNormalDeep 11 11 1 11 1 1 +20. IncludeAveraging 1 1 +21. IncludeCorrelation 1 1 +22. EchoGraph 1 +--------------------------------------------------------------------- + +For each mode: +Column 1 applies when VHF features is OFF (or col 2 absent) +Column 2 (if present) applies when VHF features is ON +Column 3 (JT9 only) applies for submodes E-H with Fast checked diff --git a/IARURegions.cpp b/IARURegions.cpp index 051935247..604ef51d2 100644 --- a/IARURegions.cpp +++ b/IARURegions.cpp @@ -34,10 +34,14 @@ char const * IARURegions::name (Region r) return region_names[static_cast (r)]; } -auto IARURegions::value (int r) -> Region +auto IARURegions::value (QString const& s) -> Region { - if (r < 0 || r + 1 >= SENTINAL) return ALL; - return static_cast (r); + auto end = region_names + region_names_size; + auto p = std::find_if (region_names, end + , [&s] (char const * const name) { + return name == s; + }); + return p != end ? static_cast (p - region_names) : ALL; } QVariant IARURegions::data (QModelIndex const& index, int role) const diff --git a/IARURegions.hpp b/IARURegions.hpp index 93291e081..6a60343d7 100644 --- a/IARURegions.hpp +++ b/IARURegions.hpp @@ -51,7 +51,7 @@ public: // translate between enumeration and human readable strings static char const * name (Region); - static Region value (int); + static Region value (QString const&); // Implement the QAbstractListModel interface int rowCount (QModelIndex const& parent = QModelIndex {}) const override diff --git a/MessageClient.cpp b/MessageClient.cpp index ac820f096..4c031a7d7 100644 --- a/MessageClient.cpp +++ b/MessageClient.cpp @@ -152,12 +152,14 @@ void MessageClient::impl::parse_message (QByteArray const& msg) QByteArray mode; QByteArray message; bool low_confidence {false}; - in >> time >> snr >> delta_time >> delta_frequency >> mode >> message >> low_confidence; + quint8 modifiers {0}; + in >> time >> snr >> delta_time >> delta_frequency >> mode >> message + >> low_confidence >> modifiers; if (check_status (in) != Fail) { Q_EMIT self_->reply (time, snr, delta_time, delta_frequency , QString::fromUtf8 (mode), QString::fromUtf8 (message) - , low_confidence); + , low_confidence, modifiers); } } break; @@ -368,27 +370,29 @@ void MessageClient::status_update (Frequency f, QString const& mode, QString con } void MessageClient::decode (bool is_new, QTime time, qint32 snr, float delta_time, quint32 delta_frequency - , QString const& mode, QString const& message_text, bool low_confidence) + , QString const& mode, QString const& message_text, bool low_confidence + , bool off_air) { if (m_->server_port_ && !m_->server_string_.isEmpty ()) { QByteArray message; NetworkMessage::Builder out {&message, NetworkMessage::Decode, m_->id_, m_->schema_}; out << is_new << time << snr << delta_time << delta_frequency << mode.toUtf8 () - << message_text.toUtf8 () << low_confidence; + << message_text.toUtf8 () << low_confidence << off_air; m_->send_message (out, message); } } void MessageClient::WSPR_decode (bool is_new, QTime time, qint32 snr, float delta_time, Frequency frequency - , qint32 drift, QString const& callsign, QString const& grid, qint32 power) + , qint32 drift, QString const& callsign, QString const& grid, qint32 power + , bool off_air) { if (m_->server_port_ && !m_->server_string_.isEmpty ()) { QByteArray message; NetworkMessage::Builder out {&message, NetworkMessage::WSPRDecode, m_->id_, m_->schema_}; out << is_new << time << snr << delta_time << frequency << drift << callsign.toUtf8 () - << grid.toUtf8 () << power; + << grid.toUtf8 () << power << off_air; m_->send_message (out, message); } } @@ -403,17 +407,18 @@ void MessageClient::clear_decodes () } } -void MessageClient::qso_logged (QDateTime timeOff, QString const& dx_call, QString const& dx_grid +void MessageClient::qso_logged (QDateTime time_off, QString const& dx_call, QString const& dx_grid , Frequency dial_frequency, QString const& mode, QString const& report_sent , QString const& report_received, QString const& tx_power - , QString const& comments, QString const& name, QDateTime timeOn) + , QString const& comments, QString const& name, QDateTime time_on) { if (m_->server_port_ && !m_->server_string_.isEmpty ()) { QByteArray message; NetworkMessage::Builder out {&message, NetworkMessage::QSOLogged, m_->id_, m_->schema_}; - out << timeOff << dx_call.toUtf8 () << dx_grid.toUtf8 () << dial_frequency << mode.toUtf8 () - << report_sent.toUtf8 () << report_received.toUtf8 () << tx_power.toUtf8 () << comments.toUtf8 () << name.toUtf8 () << timeOn; + out << time_off << dx_call.toUtf8 () << dx_grid.toUtf8 () << dial_frequency << mode.toUtf8 () + << report_sent.toUtf8 () << report_received.toUtf8 () << tx_power.toUtf8 () << comments.toUtf8 () + << name.toUtf8 () << time_on; m_->send_message (out, message); } } diff --git a/MessageClient.hpp b/MessageClient.hpp index 0d3dd47ff..d641a66d7 100644 --- a/MessageClient.hpp +++ b/MessageClient.hpp @@ -53,14 +53,16 @@ public: , QString const& dx_grid, bool watchdog_timeout, QString const& sub_mode , bool fast_mode); Q_SLOT void decode (bool is_new, QTime time, qint32 snr, float delta_time, quint32 delta_frequency - , QString const& mode, QString const& message, bool low_confidence); + , QString const& mode, QString const& message, bool low_confidence + , bool off_air); Q_SLOT void WSPR_decode (bool is_new, QTime time, qint32 snr, float delta_time, Frequency - , qint32 drift, QString const& callsign, QString const& grid, qint32 power); + , qint32 drift, QString const& callsign, QString const& grid, qint32 power + , bool off_air); Q_SLOT void clear_decodes (); - Q_SLOT void qso_logged (QDateTime timeOff, QString const& dx_call, QString const& dx_grid + Q_SLOT void qso_logged (QDateTime time_off, QString const& dx_call, QString const& dx_grid , Frequency dial_frequency, QString const& mode, QString const& report_sent , QString const& report_received, QString const& tx_power, QString const& comments - , QString const& name, QDateTime timeOn); + , QString const& name, QDateTime time_on); // this slot may be used to send arbitrary UDP datagrams to and // destination allowing the underlying socket to be used for general @@ -70,7 +72,7 @@ public: // this signal is emitted if the server sends us a reply, the only // reply supported is reply to a prior CQ or QRZ message Q_SIGNAL void reply (QTime, qint32 snr, float delta_time, quint32 delta_frequency, QString const& mode - , QString const& message_text, bool low_confidence); + , QString const& message_text, bool low_confidence, quint8 modifiers); // this signal is emitted if the server has requested a replay of // all decodes diff --git a/MessageServer.cpp b/MessageServer.cpp index caad76a9f..39b4b1d5b 100644 --- a/MessageServer.cpp +++ b/MessageServer.cpp @@ -241,14 +241,15 @@ void MessageServer::impl::parse_message (QHostAddress const& sender, port_type s quint32 delta_frequency; QByteArray mode; QByteArray message; - bool low_confidence; + bool low_confidence {false}; + bool off_air {false}; in >> is_new >> time >> snr >> delta_time >> delta_frequency >> mode - >> message >> low_confidence; + >> message >> low_confidence >> off_air; if (check_status (in) != Fail) { Q_EMIT self_->decode (is_new, id, time, snr, delta_time, delta_frequency , QString::fromUtf8 (mode), QString::fromUtf8 (message) - , low_confidence); + , low_confidence, off_air); } } break; @@ -265,18 +266,21 @@ void MessageServer::impl::parse_message (QHostAddress const& sender, port_type s QByteArray callsign; QByteArray grid; qint32 power; - in >> is_new >> time >> snr >> delta_time >> frequency >> drift >> callsign >> grid >> power; + bool off_air {false}; + in >> is_new >> time >> snr >> delta_time >> frequency >> drift >> callsign >> grid >> power + >> off_air; if (check_status (in) != Fail) { Q_EMIT self_->WSPR_decode (is_new, id, time, snr, delta_time, frequency, drift - , QString::fromUtf8 (callsign), QString::fromUtf8 (grid), power); + , QString::fromUtf8 (callsign), QString::fromUtf8 (grid) + , power, off_air); } } break; case NetworkMessage::QSOLogged: { - QDateTime timeOff; + QDateTime time_off; QByteArray dx_call; QByteArray dx_grid; Frequency dial_frequency; @@ -286,15 +290,15 @@ void MessageServer::impl::parse_message (QHostAddress const& sender, port_type s QByteArray tx_power; QByteArray comments; QByteArray name; - QDateTime timeOn; // Note: LOTW uses TIME_ON for their +/- 30-minute time window - in >> timeOff >> dx_call >> dx_grid >> dial_frequency >> mode >> report_sent >> report_received - >> tx_power >> comments >> name >> timeOn; + QDateTime time_on; // Note: LOTW uses TIME_ON for their +/- 30-minute time window + in >> time_off >> dx_call >> dx_grid >> dial_frequency >> mode >> report_sent >> report_received + >> tx_power >> comments >> name >> time_on; if (check_status (in) != Fail) { - Q_EMIT self_->qso_logged (id, timeOff, QString::fromUtf8 (dx_call), QString::fromUtf8 (dx_grid) + Q_EMIT self_->qso_logged (id, time_off, QString::fromUtf8 (dx_call), QString::fromUtf8 (dx_grid) , dial_frequency, QString::fromUtf8 (mode), QString::fromUtf8 (report_sent) , QString::fromUtf8 (report_received), QString::fromUtf8 (tx_power) - , QString::fromUtf8 (comments), QString::fromUtf8 (name), timeOn); + , QString::fromUtf8 (comments), QString::fromUtf8 (name), time_on); } } break; @@ -399,7 +403,9 @@ void MessageServer::start (port_type port, QHostAddress const& multicast_group_a } } -void MessageServer::reply (QString const& id, QTime time, qint32 snr, float delta_time, quint32 delta_frequency, QString const& mode, QString const& message_text, bool low_confidence) +void MessageServer::reply (QString const& id, QTime time, qint32 snr, float delta_time + , quint32 delta_frequency, QString const& mode + , QString const& message_text, bool low_confidence, quint8 modifiers) { auto iter = m_->clients_.find (id); if (iter != std::end (m_->clients_)) @@ -407,7 +413,7 @@ void MessageServer::reply (QString const& id, QTime time, qint32 snr, float delt QByteArray message; NetworkMessage::Builder out {&message, NetworkMessage::Reply, id, (*iter).negotiated_schema_number_}; out << time << snr << delta_time << delta_frequency << mode.toUtf8 () - << message_text.toUtf8 () << low_confidence; + << message_text.toUtf8 () << low_confidence << modifiers; m_->send_message (out, message, iter.value ().sender_address_, (*iter).sender_port_); } } diff --git a/MessageServer.hpp b/MessageServer.hpp index 9a80aa0e7..f78d07d16 100644 --- a/MessageServer.hpp +++ b/MessageServer.hpp @@ -46,7 +46,7 @@ public: // note that the client is not obliged to take any action and only // takes any action if the decode is present and is a CQ or QRZ message Q_SLOT void reply (QString const& id, QTime time, qint32 snr, float delta_time, quint32 delta_frequency - , QString const& mode, QString const& message, bool low_confidence); + , QString const& mode, QString const& message, bool low_confidence, quint8 modifiers); // ask the client with identification 'id' to replay all decodes Q_SLOT void replay (QString const& id); @@ -70,13 +70,14 @@ public: Q_SIGNAL void client_closed (QString const& id); Q_SIGNAL void decode (bool is_new, QString const& id, QTime time, qint32 snr, float delta_time , quint32 delta_frequency, QString const& mode, QString const& message - , bool low_confidence); + , bool low_confidence, bool off_air); Q_SIGNAL void WSPR_decode (bool is_new, QString const& id, QTime time, qint32 snr, float delta_time, Frequency - , qint32 drift, QString const& callsign, QString const& grid, qint32 power); - Q_SIGNAL void qso_logged (QString const& id, QDateTime timeOff, QString const& dx_call, QString const& dx_grid + , qint32 drift, QString const& callsign, QString const& grid, qint32 power + , bool off_air); + Q_SIGNAL void qso_logged (QString const& id, QDateTime time_off, QString const& dx_call, QString const& dx_grid , Frequency dial_frequency, QString const& mode, QString const& report_sent , QString const& report_received, QString const& tx_power, QString const& comments - , QString const& name, QDateTime timeOn); + , QString const& name, QDateTime time_on); Q_SIGNAL void clear_decodes (QString const& id); // this signal is emitted when a network error occurs diff --git a/NetworkMessage.hpp b/NetworkMessage.hpp index b248e40de..e59a9a4ba 100644 --- a/NetworkMessage.hpp +++ b/NetworkMessage.hpp @@ -157,6 +157,7 @@ * Mode utf8 * Message utf8 * Low confidence bool + * Off air bool * * The decode message is sent when a new decode is completed, in * this case the 'New' field is true. It is also used in response @@ -168,7 +169,8 @@ * has knows that a decode has a higher than normal probability * of being false, they should not be reported on publicly * accessible services without some attached warning or further - * validation. + * validation. Off air decodes are those that result from playing + * back a .WAV file. * * * Clear Out 3 quint32 @@ -191,6 +193,7 @@ * Mode utf8 * Message utf8 * Low confidence bool + * Modifiers quint8 * * In order for a server to provide a useful cooperative service * to WSJT-X it is possible for it to initiate a QSO by sending @@ -207,6 +210,19 @@ * initiation the rest of the QSO is carried out manually using * the normal WSJT-X user interface. * + * The Modifiers field allows the equivalent of keyboard + * modifiers to be sent "as if" those modifier keys where pressed + * while double-clicking the specified decoded message. The + * modifier values (hexadecimal) are as follows: + * + * no modifier 0x00 + * SHIFT 0x02 + * CTRL 0x04 CMD on Mac + * ALT 0x08 + * META 0x10 Windows key on MS Windows + * KEYPAD 0x20 Keypad or arrows + * Group switch 0x40 X11 only + * * * QSO Logged Out 5 quint32 * Id (unique key) utf8 @@ -299,13 +315,16 @@ * Callsign utf8 * Grid utf8 * Power (dBm) qint32 + * Off air bool * * The decode message is sent when a new decode is completed, in * this case the 'New' field is true. It is also used in response * to a "Replay" message where each old decode in the "Band * activity" window, that has not been erased, is sent in order * as a one of these messages with the 'New' field set to - * false. See the "Replay" message below for details of usage. + * false. See the "Replay" message below for details of + * usage. The off air field indicates that the decode was decoded + * from a played back recording. * * */ diff --git a/UDPExamples/BeaconsModel.cpp b/UDPExamples/BeaconsModel.cpp index ca72306eb..1302dc05e 100644 --- a/UDPExamples/BeaconsModel.cpp +++ b/UDPExamples/BeaconsModel.cpp @@ -12,16 +12,22 @@ namespace QT_TRANSLATE_NOOP ("BeaconsModel", "DT"), QT_TRANSLATE_NOOP ("BeaconsModel", "Frequency"), QT_TRANSLATE_NOOP ("BeaconsModel", "Drift"), - QT_TRANSLATE_NOOP ("BeaconsModel", "Callsign"), QT_TRANSLATE_NOOP ("BeaconsModel", "Grid"), QT_TRANSLATE_NOOP ("BeaconsModel", "Power"), + QT_TRANSLATE_NOOP ("BeaconsModel", "Live"), + QT_TRANSLATE_NOOP ("BeaconsModel", "Callsign"), }; + QString live_string (bool off_air) + { + return off_air ? QT_TRANSLATE_NOOP ("BeaconsModel", "no") : QT_TRANSLATE_NOOP ("BeaconsModel", "yes"); + } + QFont text_font {"Courier", 10}; QList make_row (QString const& client_id, QTime time, qint32 snr, float delta_time , Frequency frequency, qint32 drift, QString const& callsign - , QString const& grid, qint32 power) + , QString const& grid, qint32 power, bool off_air) { auto time_item = new QStandardItem {time.toString ("hh:mm")}; time_item->setData (time); @@ -50,8 +56,11 @@ namespace pwr->setData (power); pwr->setTextAlignment (Qt::AlignRight); + auto live = new QStandardItem {live_string (off_air)}; + live->setTextAlignment (Qt::AlignHCenter); + QList row { - new QStandardItem {client_id}, time_item, snr_item, dt, freq, dri, new QStandardItem {callsign}, gd, pwr}; + new QStandardItem {client_id}, time_item, snr_item, dt, freq, dri, gd, pwr, live, new QStandardItem {callsign}}; Q_FOREACH (auto& item, row) { item->setEditable (false); @@ -63,7 +72,7 @@ namespace } BeaconsModel::BeaconsModel (QObject * parent) - : QStandardItemModel {0, 9, parent} + : QStandardItemModel {0, sizeof (headings) / sizeof (headings[0]), parent} { int column {0}; for (auto const& heading : headings) @@ -74,7 +83,7 @@ BeaconsModel::BeaconsModel (QObject * parent) void BeaconsModel::add_beacon_spot (bool is_new, QString const& client_id, QTime time, qint32 snr, float delta_time , Frequency frequency, qint32 drift, QString const& callsign - , QString const& grid, qint32 power) + , QString const& grid, qint32 power, bool off_air) { if (!is_new) { @@ -89,9 +98,10 @@ void BeaconsModel::add_beacon_spot (bool is_new, QString const& client_id, QTime && item (row, 3)->data ().toFloat () == delta_time && item (row, 4)->data ().value () == frequency && data (index (row, 5)).toInt () == drift - && data (index (row, 6)).toString () == callsign && data (index (row, 7)).toString () == grid - && data (index (row, 8)).toInt () == power) + && data (index (row, 8)).toInt () == power + && data (index (row, 6)).toString () == live_string (off_air) + && data (index (row, 9)).toString () == callsign) { return; } @@ -103,12 +113,12 @@ void BeaconsModel::add_beacon_spot (bool is_new, QString const& client_id, QTime } if (target_row >= 0) { - insertRow (target_row + 1, make_row (client_id, time, snr, delta_time, frequency, drift, callsign, grid, power)); + insertRow (target_row + 1, make_row (client_id, time, snr, delta_time, frequency, drift, callsign, grid, power, off_air)); return; } } - appendRow (make_row (client_id, time, snr, delta_time, frequency, drift, callsign, grid, power)); + appendRow (make_row (client_id, time, snr, delta_time, frequency, drift, callsign, grid, power, off_air)); } void BeaconsModel::clear_decodes (QString const& client_id) diff --git a/UDPExamples/BeaconsModel.hpp b/UDPExamples/BeaconsModel.hpp index df707d01b..977a93ccc 100644 --- a/UDPExamples/BeaconsModel.hpp +++ b/UDPExamples/BeaconsModel.hpp @@ -31,7 +31,7 @@ public: Q_SLOT void add_beacon_spot (bool is_new, QString const& client_id, QTime time, qint32 snr, float delta_time , Frequency frequency, qint32 drift, QString const& callsign, QString const& grid - , qint32 power); + , qint32 power, bool off_air); Q_SLOT void clear_decodes (QString const& client_id); }; diff --git a/UDPExamples/ClientWidget.cpp b/UDPExamples/ClientWidget.cpp index d24c6d697..de77286b8 100644 --- a/UDPExamples/ClientWidget.cpp +++ b/UDPExamples/ClientWidget.cpp @@ -30,7 +30,7 @@ QVariant ClientWidget::IdFilterModel::data (QModelIndex const& proxy_index, int { switch (proxy_index.column ()) { - case 6: // message + case 8: // message { auto message = QSortFilterProxyModel::data (proxy_index).toString (); if (base_call_re_.pattern ().size () @@ -130,6 +130,7 @@ ClientWidget::ClientWidget (QAbstractItemModel * decodes_model, QAbstractItemMod , rx_df_label_ {new QLabel} , tx_df_label_ {new QLabel} , report_label_ {new QLabel} + , columns_resized_ {false} { // set up widgets decodes_proxy_model_.setSourceModel (decodes_model); @@ -208,7 +209,7 @@ ClientWidget::ClientWidget (QAbstractItemModel * decodes_model, QAbstractItemMod // connect up table view signals connect (decodes_table_view_, &QTableView::doubleClicked, this, [this] (QModelIndex const& index) { - Q_EMIT do_reply (decodes_proxy_model_.mapToSource (index)); + Q_EMIT do_reply (decodes_proxy_model_.mapToSource (index), QApplication::keyboardModifiers () >> 24); }); } @@ -244,25 +245,36 @@ void ClientWidget::update_status (QString const& id, Frequency f, QString const& void ClientWidget::decode_added (bool /*is_new*/, QString const& client_id, QTime /*time*/, qint32 /*snr*/ , float /*delta_time*/, quint32 /*delta_frequency*/, QString const& /*mode*/ - , QString const& /*message*/, bool /*low_confidence*/) + , QString const& /*message*/, bool /*low_confidence*/, bool /*off_air*/) { - if (client_id == id_) + if (client_id == id_ && !columns_resized_) { decodes_stack_->setCurrentIndex (0); decodes_table_view_->resizeColumnsToContents (); - decodes_table_view_->scrollToBottom (); + columns_resized_ = true; } + decodes_table_view_->scrollToBottom (); } void ClientWidget::beacon_spot_added (bool /*is_new*/, QString const& client_id, QTime /*time*/, qint32 /*snr*/ , float /*delta_time*/, Frequency /*delta_frequency*/, qint32 /*drift*/ - , QString const& /*callsign*/, QString const& /*grid*/, qint32 /*power*/) + , QString const& /*callsign*/, QString const& /*grid*/, qint32 /*power*/ + , bool /*off_air*/) { - if (client_id == id_) + if (client_id == id_ && !columns_resized_) { decodes_stack_->setCurrentIndex (1); beacons_table_view_->resizeColumnsToContents (); - beacons_table_view_->scrollToBottom (); + columns_resized_ = true; + } + beacons_table_view_->scrollToBottom (); +} + +void ClientWidget::clear_decodes (QString const& client_id) +{ + if (client_id == id_) + { + columns_resized_ = false; } } diff --git a/UDPExamples/ClientWidget.hpp b/UDPExamples/ClientWidget.hpp index 8643df705..1f5ae6012 100644 --- a/UDPExamples/ClientWidget.hpp +++ b/UDPExamples/ClientWidget.hpp @@ -33,12 +33,14 @@ public: , bool watchdog_timeout, QString const& sub_mode, bool fast_mode); Q_SLOT void decode_added (bool is_new, QString const& client_id, QTime, qint32 snr , float delta_time, quint32 delta_frequency, QString const& mode - , QString const& message, bool low_confidence); + , QString const& message, bool low_confidence, bool off_air); Q_SLOT void beacon_spot_added (bool is_new, QString const& client_id, QTime, qint32 snr , float delta_time, Frequency delta_frequency, qint32 drift - , QString const& callsign, QString const& grid, qint32 power); + , QString const& callsign, QString const& grid, qint32 power + , bool off_air); + Q_SLOT void clear_decodes (QString const& client_id); - Q_SIGNAL void do_reply (QModelIndex const&); + Q_SIGNAL void do_reply (QModelIndex const&, quint8 modifier); Q_SIGNAL void do_halt_tx (QString const& id, bool auto_only); Q_SIGNAL void do_free_text (QString const& id, QString const& text, bool); @@ -77,6 +79,7 @@ private: QLabel * rx_df_label_; QLabel * tx_df_label_; QLabel * report_label_; + bool columns_resized_; }; #endif diff --git a/UDPExamples/DecodesModel.cpp b/UDPExamples/DecodesModel.cpp index 3ca94dde1..5847e49ff 100644 --- a/UDPExamples/DecodesModel.cpp +++ b/UDPExamples/DecodesModel.cpp @@ -16,8 +16,9 @@ namespace QT_TRANSLATE_NOOP ("DecodesModel", "DT"), QT_TRANSLATE_NOOP ("DecodesModel", "DF"), QT_TRANSLATE_NOOP ("DecodesModel", "Md"), - QT_TRANSLATE_NOOP ("DecodesModel", "Message"), QT_TRANSLATE_NOOP ("DecodesModel", "Confidence"), + QT_TRANSLATE_NOOP ("DecodesModel", "Live"), + QT_TRANSLATE_NOOP ("DecodesModel", "Message"), }; QString confidence_string (bool low_confidence) @@ -25,11 +26,16 @@ namespace return low_confidence ? QT_TRANSLATE_NOOP ("DecodesModel", "low") : QT_TRANSLATE_NOOP ("DecodesModel", "high"); } + QString live_string (bool off_air) + { + return off_air ? QT_TRANSLATE_NOOP ("DecodesModel", "no") : QT_TRANSLATE_NOOP ("DecodesModel", "yes"); + } + QFont text_font {"Courier", 10}; QList make_row (QString const& client_id, QTime time, qint32 snr, float delta_time , quint32 delta_frequency, QString const& mode, QString const& message - , bool low_confidence, bool is_fast) + , bool low_confidence, bool off_air, bool is_fast) { auto time_item = new QStandardItem {time.toString (is_fast || "~" == mode ? "hh:mm:ss" : "hh:mm")}; time_item->setData (time); @@ -53,8 +59,11 @@ namespace auto confidence = new QStandardItem {confidence_string (low_confidence)}; confidence->setTextAlignment (Qt::AlignHCenter); + auto live = new QStandardItem {live_string (off_air)}; + live->setTextAlignment (Qt::AlignHCenter); + QList row { - new QStandardItem {client_id}, time_item, snr_item, dt, df, md, new QStandardItem {message}, confidence}; + new QStandardItem {client_id}, time_item, snr_item, dt, df, md, confidence, live, new QStandardItem {message}}; Q_FOREACH (auto& item, row) { item->setEditable (false); @@ -77,7 +86,7 @@ DecodesModel::DecodesModel (QObject * parent) void DecodesModel::add_decode (bool is_new, QString const& client_id, QTime time, qint32 snr, float delta_time , quint32 delta_frequency, QString const& mode, QString const& message - , bool low_confidence, bool is_fast) + , bool low_confidence, bool off_air, bool is_fast) { if (!is_new) { @@ -92,8 +101,9 @@ void DecodesModel::add_decode (bool is_new, QString const& client_id, QTime time && item (row, 3)->data ().toFloat () == delta_time && item (row, 4)->data ().toUInt () == delta_frequency && data (index (row, 5)).toString () == mode - && data (index (row, 6)).toString () == message - && data (index (row, 7)).toString () == confidence_string (low_confidence)) + && data (index (row, 7)).toString () == confidence_string (low_confidence) + && data (index (row, 6)).toString () == live_string (off_air) + && data (index (row, 8)).toString () == message) { return; } @@ -106,12 +116,13 @@ void DecodesModel::add_decode (bool is_new, QString const& client_id, QTime time if (target_row >= 0) { insertRow (target_row + 1, make_row (client_id, time, snr, delta_time, delta_frequency, mode - , message, low_confidence, is_fast)); + , message, low_confidence, off_air, is_fast)); return; } } - appendRow (make_row (client_id, time, snr, delta_time, delta_frequency, mode, message, low_confidence, is_fast)); + appendRow (make_row (client_id, time, snr, delta_time, delta_frequency, mode, message, low_confidence + , off_air, is_fast)); } void DecodesModel::clear_decodes (QString const& client_id) @@ -125,7 +136,7 @@ void DecodesModel::clear_decodes (QString const& client_id) } } -void DecodesModel::do_reply (QModelIndex const& source) +void DecodesModel::do_reply (QModelIndex const& source, quint8 modifiers) { auto row = source.row (); Q_EMIT reply (data (index (row, 0)).toString () @@ -134,8 +145,9 @@ void DecodesModel::do_reply (QModelIndex const& source) , item (row, 3)->data ().toFloat () , item (row, 4)->data ().toInt () , data (index (row, 5)).toString () - , data (index (row, 6)).toString () - , confidence_string (true) == data (index (row, 7)).toString ()); + , data (index (row, 8)).toString () + , confidence_string (true) == data (index (row, 7)).toString () + , modifiers); } #include "moc_DecodesModel.cpp" diff --git a/UDPExamples/DecodesModel.hpp b/UDPExamples/DecodesModel.hpp index 43bfd679d..fa51732bf 100644 --- a/UDPExamples/DecodesModel.hpp +++ b/UDPExamples/DecodesModel.hpp @@ -33,12 +33,12 @@ public: Q_SLOT void add_decode (bool is_new, QString const& client_id, QTime time, qint32 snr, float delta_time , quint32 delta_frequency, QString const& mode, QString const& message - , bool low_confidence, bool is_fast); + , bool low_confidence, bool off_air, bool is_fast); Q_SLOT void clear_decodes (QString const& client_id); - Q_SLOT void do_reply (QModelIndex const& source); + Q_SLOT void do_reply (QModelIndex const& source, quint8 modifiers); Q_SIGNAL void reply (QString const& id, QTime time, qint32 snr, float delta_time, quint32 delta_frequency - , QString const& mode, QString const& message, bool low_confidence); + , QString const& mode, QString const& message, bool low_confidence, quint8 modifiers); }; #endif diff --git a/UDPExamples/MessageAggregatorMainWindow.cpp b/UDPExamples/MessageAggregatorMainWindow.cpp index ecb364141..196282d61 100644 --- a/UDPExamples/MessageAggregatorMainWindow.cpp +++ b/UDPExamples/MessageAggregatorMainWindow.cpp @@ -91,9 +91,10 @@ MessageAggregatorMainWindow::MessageAggregatorMainWindow () connect (server_, &MessageServer::decode, [this] (bool is_new, QString const& id, QTime time , qint32 snr, float delta_time , quint32 delta_frequency, QString const& mode - , QString const& message, bool low_confidence) { + , QString const& message, bool low_confidence + , bool off_air) { decodes_model_->add_decode (is_new, id, time, snr, delta_time, delta_frequency, mode, message - , low_confidence, dock_widgets_[id]->fast_mode ());}); + , low_confidence, off_air, dock_widgets_[id]->fast_mode ());}); connect (server_, &MessageServer::WSPR_decode, beacons_model_, &BeaconsModel::add_beacon_spot); connect (server_, &MessageServer::clear_decodes, decodes_model_, &DecodesModel::clear_decodes); connect (server_, &MessageServer::clear_decodes, beacons_model_, &BeaconsModel::clear_decodes); @@ -110,14 +111,14 @@ MessageAggregatorMainWindow::MessageAggregatorMainWindow () show (); } -void MessageAggregatorMainWindow::log_qso (QString const& /*id*/, QDateTime timeOff, QString const& dx_call, QString const& dx_grid +void MessageAggregatorMainWindow::log_qso (QString const& /*id*/, QDateTime time_off, QString const& dx_call, QString const& dx_grid , Frequency dial_frequency, QString const& mode, QString const& report_sent , QString const& report_received, QString const& tx_power, QString const& comments - , QString const& name, QDateTime timeOn) + , QString const& name, QDateTime time_on) { QList row; - row << new QStandardItem {timeOn.toString ("dd-MMM-yyyy hh:mm:ss")} - << new QStandardItem {timeOff.toString ("dd-MMM-yyyy hh:mm:ss")} + row << new QStandardItem {time_on.toString ("dd-MMM-yyyy hh:mm:ss")} + << new QStandardItem {time_off.toString ("dd-MMM-yyyy hh:mm:ss")} << new QStandardItem {dx_call} << new QStandardItem {dx_grid} << new QStandardItem {name} @@ -144,6 +145,7 @@ void MessageAggregatorMainWindow::add_client (QString const& id, QString const& connect (server_, &MessageServer::status_update, dock, &ClientWidget::update_status); connect (server_, &MessageServer::decode, dock, &ClientWidget::decode_added); connect (server_, &MessageServer::WSPR_decode, dock, &ClientWidget::beacon_spot_added); + connect (server_, &MessageServer::clear_decodes, dock, &ClientWidget::clear_decodes); connect (dock, &ClientWidget::do_reply, decodes_model_, &DecodesModel::do_reply); connect (dock, &ClientWidget::do_halt_tx, server_, &MessageServer::halt_tx); connect (dock, &ClientWidget::do_free_text, server_, &MessageServer::free_text); diff --git a/UDPExamples/MessageAggregatorMainWindow.hpp b/UDPExamples/MessageAggregatorMainWindow.hpp index 7bf34426b..4039c60ab 100644 --- a/UDPExamples/MessageAggregatorMainWindow.hpp +++ b/UDPExamples/MessageAggregatorMainWindow.hpp @@ -26,10 +26,10 @@ class MessageAggregatorMainWindow public: MessageAggregatorMainWindow (); - Q_SLOT void log_qso (QString const& /*id*/, QDateTime timeOff, QString const& dx_call, QString const& dx_grid + Q_SLOT void log_qso (QString const& /*id*/, QDateTime time_off, QString const& dx_call, QString const& dx_grid , Frequency dial_frequency, QString const& mode, QString const& report_sent , QString const& report_received, QString const& tx_power, QString const& comments - , QString const& name, QDateTime timeOn); + , QString const& name, QDateTime time_on); private: void add_client (QString const& id, QString const& version, QString const& revision); diff --git a/UDPExamples/UDPDaemon.cpp b/UDPExamples/UDPDaemon.cpp index 7afc3d2f9..2d3b1b2d9 100644 --- a/UDPExamples/UDPDaemon.cpp +++ b/UDPExamples/UDPDaemon.cpp @@ -68,28 +68,30 @@ public: } Q_SLOT void decode_added (bool is_new, QString const& client_id, QTime time, qint32 snr - , float delta_time, quint32 delta_frequency, QString const& mode - , QString const& message, bool low_confidence) + , float delta_time, quint32 delta_frequency, QString const& mode + , QString const& message, bool low_confidence, bool off_air) { if (client_id == id_) { qDebug () << "new:" << is_new << "t:" << time << "snr:" << snr << "Dt:" << delta_time << "Df:" << delta_frequency - << "mode:" << mode << "Confidence:" << (low_confidence ? "low" : "high"); + << "mode:" << mode << "Confidence:" << (low_confidence ? "low" : "high") + << "On air:" << !off_air; std::cout << tr ("%1: Decoded %2").arg (id_).arg (message).toStdString () << std::endl; } } Q_SLOT void beacon_spot_added (bool is_new, QString const& client_id, QTime time, qint32 snr , float delta_time, Frequency delta_frequency, qint32 drift, QString const& callsign - , QString const& grid, qint32 power) + , QString const& grid, qint32 power, bool off_air) { if (client_id == id_) { qDebug () << "new:" << is_new << "t:" << time << "snr:" << snr << "Dt:" << delta_time << "Df:" << delta_frequency << "drift:" << drift; - std::cout << tr ("%1: WSPR decode %2 grid %3 power: %4").arg (id_).arg (callsign).arg (grid).arg (power).toStdString () << std::endl; + std::cout << tr ("%1: WSPR decode %2 grid %3 power: %4").arg (id_).arg (callsign).arg (grid).arg (power).toStdString () + << "On air:" << !off_air << std::endl; } } diff --git a/astro.cpp b/astro.cpp index 7b995c900..bd378f78c 100644 --- a/astro.cpp +++ b/astro.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include "commons.h" @@ -56,7 +57,7 @@ Astro::~Astro () void Astro::closeEvent (QCloseEvent * e) { write_settings (); - QWidget::closeEvent (e); + e->ignore (); // do not allow closure by the window system } void Astro::read_settings () diff --git a/cty.dat b/cty.dat index c86ca81dc..0ee1e6cbc 100644 --- a/cty.dat +++ b/cty.dat @@ -591,11 +591,10 @@ Azores: 14: 36: EU: 38.70: 27.23: 1.0: CU: =CU5/CU3EJ/LH, =CT8/DK6EA/LH; Uruguay: 13: 14: SA: -33.00: 56.00: 3.0: CX: - CV,CW,CX, + CV,CW,CX,=CW5X/LH, =CV1AA/LH, =CX1CAK/D,=CX1SI/D, =CX7OV/H, - =CW5X/LH, =CV9T/LH,=CX1TA/LH,=CX1TCR/LH, =CX5TR/U, =CX6DRA/V; @@ -613,24 +612,24 @@ Fed. Rep. of Germany: 14: 28: EU: 51.00: -10.00: -1.0: DL: DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DO,DP,DQ,DR,=DA0BHV/LGT,=DA0BHV/LH,=DA0BLH/LGT, =DA0DAG/LH,=DA0FO/LH,=DA0LCC/LH,=DA0LGV/LH,=DA0LHT/LH,=DA0OIE/LGT,=DA0QS/LGT,=DA0QS/LH,=DA0WLH/LH, =DB2BJT/LH,=DC1HPS/LH,=DD3D/LH,=DF0AWG/LH,=DF0BU/LH,=DF0CHE/LH,=DF0ELM/LH,=DF0HC/LH,=DF0IF/LGT, - =DF0IF/LH,=DF0LR/LH,=DF0MF/LGT,=DF0MF/LH,=DF0MF/LS,=DF0WAT/LH,=DF0WFB/LH,=DF0WH/LGT,=DF0WLG/LH, - =DF1AG/LH,=DF1HF/LH,=DF2BR/LH,=DF3LY/L,=DF5A/LH,=DF8AN/LGT,=DF8AN/LH,=DF8AN/P/LH,=DF9HG/LH, - =DG3XA/LH,=DH0IPA/LH,=DH1DH/LH,=DH1DH/M/LH,=DH1TS/LH,=DH4KAV/LH,=DH6RS/LH,=DH7RK/LH,=DH9JK/LH, - =DH9UW/YL,=DJ0PJ/LH,=DJ3XG/LH,=DJ5AA/LH,=DJ7AO/LH,=DJ7MH/LH,=DJ8RH/LH,=DJ9QE/LH,=DK0DAN/LH, - =DK0FC/LGT,=DK0FC/LH,=DK0IZ/LH,=DK0KTL/LH,=DK0LWL/L,=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,=DL0BPS/LH,=DL0BUX/LGT,=DL0BUX/LH,=DL0CA/LH,=DL0CUX/LGT, - =DL0CUX/LV,=DL0EJ/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,=DL0PAS/LH,=DL0PBS/LH,=DL0PJ/LH,=DL0RSH/LH,=DL0RUG/LGT,=DL0RUG/LH,=DL0RWE/LH, - =DL0SH/LH,=DL0SY/LH,=DL0TO/LH,=DL0UEM/LH,=DL0YLM/LH,=DL1BSN/LH,=DL1DUT/LH,=DL1ELU/LH,=DL1HZM/YL, - =DL1SKK/LH,=DL2FCA/YL,=DL2RPS/LH,=DL3ANK/LH,=DL3KWR/YL,=DL3OCG/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/LV,=DL8UAA/FF,=DL9CU/LH,=DL9NEI/ND2N,=DL9OE/LH, - =DL9SEP/P/LH,=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,=DO7DC/LH,=DO7RKL/LH,=DQ0KBM/LH, - =DQ4M/LH,=DQ4M/LT,=DR100MF/LS,=DR3M/LH,=DR4W/FF,=DR4X/LH,=DR9Z/LH; + =DF0IF/LH,=DF0LR/LH,=DF0MF/LGT,=DF0MF/LH,=DF0MF/LS,=DF0SX/LH,=DF0WAT/LH,=DF0WFB/LH,=DF0WH/LGT, + =DF0WLG/LH,=DF1AG/LH,=DF1HF/LH,=DF2BR/LH,=DF3LY/L,=DF5A/LH,=DF8AN/LGT,=DF8AN/LH,=DF8AN/P/LH, + =DF9HG/LH,=DG3XA/LH,=DH0IPA/LH,=DH1DH/LH,=DH1DH/M/LH,=DH1TS/LH,=DH4KAV/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/L,=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,=DL0BPS/LH,=DL0BUX/LGT,=DL0BUX/LH, + =DL0CA/LH,=DL0CUX/LGT,=DL0CUX/LV,=DL0EJ/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,=DL0PAS/LH,=DL0PBS/LH,=DL0PJ/LH,=DL0RSH/LH,=DL0RUG/LGT, + =DL0RUG/LH,=DL0RWE/LH,=DL0SH/LH,=DL0SY/LH,=DL0TO/LH,=DL0UEM/LH,=DL0YLM/LH,=DL1BSN/LH,=DL1DUT/LH, + =DL1ELU/LH,=DL1HZM/YL,=DL1SKK/LH,=DL2FCA/YL,=DL2RPS/LH,=DL3ANK/LH,=DL3KWR/YL,=DL3OCG/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/LV,=DL8UAA/FF,=DL9CU/LH, + =DL9NEI/ND2N,=DL9OE/LH,=DL9SEP/P/LH,=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,=DQ0KBM/LH,=DQ4M/LH,=DQ4M/LT,=DR100MF/LS,=DR3M/LH,=DR4W/FF,=DR4X/LH,=DR9Z/LH; Philippines: 27: 50: OC: 13.00: -122.00: -8.0: DU: 4D,4E,4F,4G,4H,4I,DU,DV,DW,DX,DY,DZ; Eritrea: 37: 48: AF: 15.00: -39.00: -3.0: E3: @@ -654,8 +653,9 @@ Spain: 14: 37: EU: 40.37: 4.88: -1.0: EA: AM,AN,AO,EA,EB,EC,ED,EE,EF,EG,EH,=EF6,=EG90IARU, =AM1TDH/LH,=EA1APV/LH,=EA1BEY/Y,=EA1EEY/L,=EA1EEY/LGT,=EA1EEY/LH,=EA1EK/ZAP,=EA1HLW/YL, =EA1RCG/CPV,=EA1RCG/SEU,=EA1RCG/YOA,=EA1RCI/CA,=EA1RCI/IA,=EA1RCI/ICA,=EA1RCI/PAZ,=EA1URL/CVL, - =EA1URO/D,=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,=EG1LWC/LH,=EG1LWI/LH,=EG1LWN/LH,=EG1TDH/LH,=EG90IARU/1, + =EA1URO/D,=EA5AER/P,=EA6QB/1,=EA8BFH/1,=EA8CZT/1,=EA8FC/1,=EA8RV/P,=EA9CD/1,=EA9CD/M,=EA9CI/1, + =EA9CP/1,=EA9PD/1,=EB1DH/LH,=ED1IRM/LH,=EG1ILW/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, @@ -665,20 +665,20 @@ Spain: 14: 37: EU: 40.37: 4.88: -1.0: EA: =EA4AAQ/O,=EA4RCH/CIE,=EA6AFU/4,=EA6RC/4,=EA8BFH/4,=EA8BFH/P,=EA8BY/4,=EA9CI/4,=EA9CP/4,=EG8AOP/4, =EG90IARU/4, =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,=EA5URM/C,=EA5URM/F,=EA5URM/G,=EA5URM/H,=EA5URM/I, - =EA5URM/L,=EA5URR/PAZ,=EA5URV/CAC,=EA6AKN/5,=EA8BFH/5,=EA8CWF/5,=EA9BLJ/5,=EA9CI/5,=EA9CP/5, - =EA9PD/5,=ED5MFP/C,=ED5MFP/G,=ED5MFP/H,=ED5MFP/I,=ED5MFP/K,=ED5MFP/Q,=ED5MFP/R,=ED5MFP/S, - =ED5URD/LH,=EG90IARU/5,=EH5FL/LH, - =AO7WRD/MA,=EA5URE/P,=EA6SK/7,=EA7CFU/U,=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, - =EA9CP/7,=EA9FN/7,=EA9HU/7,=EA9JS/7,=EA9LZ/7,=EA9PD/7,=EA9PD/M,=EA9QD/7,=EA9UL/7,=EA9UV/7, - =EB9PH/7,=EC7DZZ/LH,=EG90IARU/7; + =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,=EA6AKN/5,=EA8BFH/5,=EA8CWF/5,=EA9BLJ/5,=EA9CI/5, + =EA9CP/5,=EA9PD/5,=EA9PD/P,=ED5MFP/C,=ED5MFP/G,=ED5MFP/H,=ED5MFP/I,=ED5MFP/K,=ED5MFP/Q,=ED5MFP/R, + =ED5MFP/S,=ED5URD/LH,=EG90IARU/5,=EH5FL/LH, + =AO7WRD/MA,=EA6SK/7,=EA7CFU/U,=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,=EA9CP/7, + =EA9FN/7,=EA9HU/7,=EA9JS/7,=EA9LZ/7,=EA9PD/7,=EA9PD/M,=EA9QD/7,=EA9UL/7,=EA9UV/7,=EB9PH/7, + =EC7DZZ/LH,=EG90IARU/7; Balearic Islands: 14: 37: EU: 39.60: -2.95: -1.0: EA6: AM6,AN6,AO6,EA6,EB6,EC6,ED6,EE6,EF6,EG6,EH6,=EA1QE/6,=EA1YO/6,=EA2SG/6,=EA2TW/6,=EA3BT/6, - =EA3CBH/6,=EA3HSD/6,=EA3HUX/6,=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/DJ7AO/LH,=EA6/G0SGB/LH,=EA6HP/J,=EA6URI/PAZ, - =EA6URL/IF,=EA7DUT/6,=EA9CI/6,=EA9CP/6,=EB1BRH/6,=EB2GKK/6,=EB3CW/6,=EC5BME/6,=EC5EA/P,=EC5EC/6, - =EC6TV/N,=EC7AT/6,=ED4SHF/6,=ED5ON/6,=EH90IARU/6; + =EA3CBH/6,=EA3HSD/6,=EA3HUX/6,=EA4LO/6,=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/DJ7AO/LH,=EA6/G0SGB/LH,=EA6HP/J, + =EA6URI/PAZ,=EA6URL/IF,=EA7DUT/6,=EA9CI/6,=EA9CP/6,=EB1BRH/6,=EB2GKK/6,=EB3CW/6,=EC5BME/6, + =EC5EA/P,=EC5EC/6,=EC6TV/N,=EC7AT/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,=AN400L,=AN400U,=AO150ITU/8,=AO150U,=AO4AAA/8, =EA1AP/8,=EA1EHW/8,=EA1YO/8,=EA3RKB/8,=EA4BQ/8,=EA4ESI/8,=EA4SV/8,=EA4WT/8,=EA4ZK/8,=EA5BK/8, @@ -695,7 +695,7 @@ Ceuta & Melilla: 33: 37: AF: 35.90: 5.27: -1.0: EA9: AM9,AN9,AO9,EA9,EB9,EC9,ED9,EE9,EF9,EG9,EH9,=EA7URM/9,=EA9CE/C,=EA9CE/D,=EA9CE/E,=EA9CE/F, =EA9CE/G,=EA9CE/H,=EA9CE/I,=EA9URC/PAZ,=EC7DZZ/9,=ED3AFR/9,=ED9CE/D,=ED9CE/E,=ED9CE/F, =EA3EGB/9,=EA5RKB/9,=EA7UV/P,=EA9CD/P,=EB9PH/P,=EC5ALJ/9, - =EA7JTF/9,=EA9PD/P,=EC7DRS/9; + =EA7JTF/9,=EC7DRS/9; Ireland: 14: 27: EU: 53.13: 8.02: 0.0: EI: EI,EJ,=EI0CPL/LH,=EI0LHL/LH,=EI0M/LH,=EI1K/LH,=EI1KARG/LH,=EI1NC/LH,=EI4LRC/LH,=EI5ML/LH; Armenia: 21: 29: AS: 40.40: -44.90: -4.0: EK: @@ -708,7 +708,7 @@ Moldova: 16: 29: EU: 47.00: -29.00: -2.0: ER: ER,=ER3AC/FF,=ER3CR/FF,=ER4LX/FF; Estonia: 15: 29: EU: 59.00: -25.00: -2.0: ES: ES,=ES/SA5FYR/LH, - =ES0TI/LH; + =ES/RX3AMI/LH,=ES0TI/LH; Ethiopia: 37: 48: AF: 9.00: -39.00: -3.0: ET: 9E,9F,ET,=ET3AA/YOTA; Belarus: 16: 29: EU: 54.00: -28.00: -2.0: EU: @@ -792,10 +792,10 @@ England: 14: 27: EU: 52.77: 1.47: 0.0: G: =M3MJT/YL,=M3ZKT/YL,=M3ZYZ/LH,=M6AIG/YL,=M6SUS/YL,=MQ6BWA/P; Isle of Man: 14: 27: EU: 54.20: 4.53: 0.0: GD: 2D,GD,GT,MD,MT,=2O0YLX,=2Q0YLX,=2R0IOM,=2V0IOM,=2V0YLX,=GB0AOA,=GB0BEA,=GB0IOM,=GB0MST,=GB100TT, - =GB1MSG,=GB1RT,=GB1SOI,=GB2IOM,=GB2MAD,=GB2RT,=GB2WB,=GB4COM,=GB4IOM,=GB4JDF,=GB4MGR,=GB4MNH, - =GB4SPT,=GB4WXM,=GB4WXM/P,=GB5LB,=GB5MOB,=GB5TD,=GD3JIU/2K,=GO0OUD,=GQ0OUD,=GR0AMD,=GR0HWA, - =GR0OUD,=GR6AFB,=GT3FLH/LGT,=GT3FLH/LT,=GT4IOM/LH,=GT8IOM/LH,=GV0OUD,=GV3YEO,=GV6AFB,=GV7HTG, - =MB100TT,=MO1CLV,=MQ1CLV,=MR0CCE,=MR3LJB,=MR3MLD,=MV3YLX; + =GB1RT,=GB1SOI,=GB2IOM,=GB2MAD,=GB2RT,=GB2WB,=GB4COM,=GB4IOM,=GB4JDF,=GB4MGR,=GB4MNH,=GB4SPT, + =GB4WXM,=GB4WXM/P,=GB5LB,=GB5MOB,=GB5TD,=GD3JIU/2K,=GO0OUD,=GQ0OUD,=GR0AMD,=GR0HWA,=GR0OUD, + =GR6AFB,=GT3FLH/LGT,=GT3FLH/LT,=GT4IOM/LH,=GT8IOM/LH,=GV0OUD,=GV3YEO,=GV6AFB,=GV7HTG,=MB100TT, + =MO1CLV,=MQ1CLV,=MR0CCE,=MR3LJB,=MR3MLD,=MV3YLX; Northern Ireland: 14: 27: EU: 54.73: 6.68: 0.0: GI: 2I,GI,GN,MI,MN,=2O0BAD,=2O0HBO,=2O0HRV,=2O0MFB,=2O0TWA,=2O0VEP,=2O0VGW,=2O0VIM,=2O0WAI,=2O0ZXM, =2Q0BSA,=2Q0ETB,=2Q0HRV,=2Q0MFB,=2Q0NIE,=2Q0SXG,=2Q0TWA,=2Q0VEP,=2Q0VIM,=2Q0ZXM,=2R0IRZ,=2R0IRZ/P, @@ -848,68 +848,69 @@ Scotland: 14: 27: EU: 56.82: 4.18: 0.0: GM: =2R0HJS,=2R0IMP,=2R0IOB,=2R0ISM,=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,=GB0BOL,=GB0BSS,=GB0BWT,=GB0CCF,=GB0CHL,=GB0CLH,=GB0CML, - =GB0CNL,=GB0CWF,=GB0CWS,=GB0DHL,=GB0DPK,=GB0EPC,=GB0FFS,=GB0FSG,=GB0GDS,=GB0GDS/J,=GB0GGR,=GB0GRN, - =GB0HHW,=GB0HLD,=GB0JOG,=GB0KGS,=GB0KKS,=GB0KLT,=GB0LCS,=GB0LCW,=GB0LTM,=GB0MLH,=GB0MLM,=GB0MOG, - =GB0MOL,=GB0MSL,=GB0MUL,=GB0NGG,=GB0NHL,=GB0NRL,=GB0OYT,=GB0PLS,=GB0POS,=GB0PPE,=GB0PSW,=GB0RBS, - =GB0RGC,=GB0SBC,=GB0SCD,=GB0SFM,=GB0SHP,=GB0SI,=GB0SK,=GB0SKG,=GB0SKY,=GB0SRC,=GB0SSB,=GB0TH, - =GB0THL,=GB0TNL,=GB0TTS,=GB0WRH,=GB100MAS,=GB100MUC,=GB100ZET,=GB10SP,=GB150NRL,=GB1AJ,=GB1ASC, - =GB1ASH,=GB1BD,=GB1BOL,=GB1CFL,=GB1CL,=GB1CS,=GB1DHL,=GB1FRS,=GB1FS,=GB1FVS,=GB1FVT,=GB1GEO, - =GB1KGG,=GB1KLD,=GB1LAY,=GB1LGG,=GB1MAY,=GB1NHL,=GB1OL,=GB1OL/LH,=GB1PC,=GB1RB,=GB1RHU,=GB1TAY, - =GB250RB,=GB2AES,=GB2AGG,=GB2AL,=GB2AST,=GB2ATC,=GB2AYR,=GB2BHM,=GB2BHS,=GB2BMJ,=GB2BOL,=GB2CAS, - =GB2CHC,=GB2CM,=GB2CMA,=GB2DAS,=GB2DHS,=GB2DL,=GB2DRC,=GB2DT,=GB2DTM,=GB2ELH,=GB2ELH/LH,=GB2EPC, - =GB2FBM,=GB2FSM,=GB2FSW,=GB2GEO,=GB2GKR,=GB2GNL,=GB2GNL/LH,=GB2GTM,=GB2HLB,=GB2HMC,=GB2HRH, - =GB2IGB,=GB2IGS,=GB2IMG,=GB2IMM,=GB2INV,=GB2IOT,=GB2KDR,=GB2KGB,=GB2KW,=GB2LBN,=GB2LBN/LH,=GB2LCL, - =GB2LCP,=GB2LCT,=GB2LDG,=GB2LGB,=GB2LHI,=GB2LK,=GB2LK/LH,=GB2LMG,=GB2LP,=GB2LS,=GB2LS/LH,=GB2LSS, - =GB2LT,=GB2LT/LH,=GB2LXX,=GB2M,=GB2MAS,=GB2MBB,=GB2MDG,=GB2MN,=GB2MOF,=GB2MSL,=GB2MUL,=GB2NBC, - =GB2NEF,=GB2NL,=GB2OL,=GB2OWM,=GB2PBF,=GB2PG,=GB2QM,=GB2RB,=GB2RDR,=GB2RRL,=GB2RWW,=GB2SAM,=GB2SB, - =GB2SBG,=GB2SKG,=GB2SLH,=GB2SMM,=GB2SOH,=GB2SQN,=GB2SR,=GB2SSB,=GB2SUM,=GB2SWF,=GB2TDS,=GB2TNL, - =GB2VCB,=GB2VEF,=GB2WBF,=GB2WG,=GB2YLS,=GB2ZE,=GB3ANG,=GB3GKR,=GB3LER,=GB3LER/B,=GB3ORK,=GB3ORK/B, - =GB3SWF,=GB3WOI,=GB4AAS,=GB4AST,=GB4BBR,=GB4BG,=GB4CGS,=GB4CMA,=GB4DAS,=GB4DHX,=GB4DTD,=GB4DUK, - =GB4EPC,=GB4GD,=GB4GDS,=GB4GS,=GB4IE,=GB4JCM,=GB4JPJ,=GB4JYS,=GB4LER,=GB4MSE,=GB4NFE,=GB4OL, - =GB4PAS,=GB4SK,=GB4SKO,=GB4SLH,=GB4SMM,=GB4SRO,=GB4SWF,=GB50FVS,=GB50GDS,=GB50JS,=GB5AG,=GB5AST, - =GB5BBS,=GB5C,=GB5CCC,=GB5CS,=GB5DHL,=GB5DX,=GB5EMF,=GB5FHC,=GB5FLM,=GB5JS,=GB5LTH,=GB5RO, - =GB5RO/LH,=GB5RR,=GB5SI,=GB5TAM,=GB5TI,=GB60CRB,=GB6BEN,=GB6TAA,=GB6WW,=GB75CC,=GB75GD,=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,=GM0KCY/LH,=GM0KTO/2K,=GM0MUN/2K,=GM0SGB/P,=GM0WUX/2K, - =GM3JIJ/2K,=GM3OFT/P,=GM3TKV/LH,=GM3TTC/P,=GM3TXF/P,=GM3USR/P,=GM3VLB/P,=GM4AFF/P,=GM4CHX/2K, - =GM4CHX/P,=GM4WSB/M,=GM4WSB/P,=GM4ZVD/P,=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,=GR0VRP,=GR0WED,=GR0WNR,=GR1BAN,=GR1MWK,=GR1TBW,=GR1ZIV, - =GR3JFG,=GR3MZX,=GR3NIG,=GR3OFT,=GR3PPE,=GR3PYU,=GR3VTB,=GR3WFJ,=GR3YXJ,=GR3ZDH,=GR4BDJ,=GR4BLO, - =GR4CAU,=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,=GR7VSB,=GR8CBQ,=GR8KJO,=GR8KPH,=GR8MHU,=GR8MIA,=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, - =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,=MM0LON/M,=MM0SHF/P,=MM0YHB/P,=MM0ZOL/LH,=MM5PSL/P,=MM5YLO/P,=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,=MR0GOR,=MR0HAI, - =MR0OIL,=MR0POD,=MR0PSL,=MR0RDM,=MR0SGQ,=MR0SJT,=MR0TAI,=MR0TSG,=MR0TSS,=MR0VTV,=MR0WEI,=MR0XAF, - =MR0XXP,=MR0XXW,=MR1AWV,=MR1HMV,=MR1JWF,=MR1VTB,=MR3BRR,=MR3PTS,=MR3UIX,=MR3UVL,=MR3WJZ,=MR3XGP, - =MR3YHA,=MR3YPH,=MR3ZCS,=MR5PSL,=MR6AHB,=MR6ARN,=MR6ATU,=MR6CHM,=MR6CTH,=MR6CTL,=MR6MCV,=MR6RLL, - =MR6TMS,=MV0DXH,=MV0FME,=MV0FMF,=MV0GHM,=MV0HAR,=MV0LGS,=MV0NFC,=MV0NJS,=MV0SGQ,=MV0SJT,=MV0XXW, - =MV1VTB,=MV3BRR,=MV3CVB,=MV3YHA,=MV3YMU,=MV5PSL,=MV6BJJ,=MV6KSJ,=MV6NRQ; + =GB0CNL,=GB0CWF,=GB0CWS,=GB0DBS,=GB0DHL,=GB0DPK,=GB0EPC,=GB0FFS,=GB0FSG,=GB0GDS,=GB0GDS/J,=GB0GGR, + =GB0GRN,=GB0HHW,=GB0HLD,=GB0JOG,=GB0KGS,=GB0KKS,=GB0KLT,=GB0LCS,=GB0LCW,=GB0LTM,=GB0MLH,=GB0MLM, + =GB0MOG,=GB0MOL,=GB0MSL,=GB0MUL,=GB0NGG,=GB0NHL,=GB0NRL,=GB0OYT,=GB0PLS,=GB0POS,=GB0PPE,=GB0PSW, + =GB0RBS,=GB0RGC,=GB0SAA,=GB0SBC,=GB0SCD,=GB0SFM,=GB0SHP,=GB0SI,=GB0SK,=GB0SKG,=GB0SKY,=GB0SRC, + =GB0SSB,=GB0TH,=GB0THL,=GB0TNL,=GB0TTS,=GB0WRH,=GB100MAS,=GB100MUC,=GB100ZET,=GB10SP,=GB150NRL, + =GB1AJ,=GB1ASC,=GB1ASH,=GB1BD,=GB1BOL,=GB1CFL,=GB1CL,=GB1CS,=GB1DHL,=GB1FRS,=GB1FS,=GB1FVS, + =GB1FVT,=GB1GEO,=GB1KGG,=GB1KLD,=GB1LAY,=GB1LGG,=GB1MAY,=GB1MSG,=GB1NHL,=GB1OL,=GB1OL/LH,=GB1PC, + =GB1RB,=GB1RHU,=GB1TAY,=GB250RB,=GB2AES,=GB2AGG,=GB2AL,=GB2AST,=GB2ATC,=GB2AYR,=GB2BHM,=GB2BHS, + =GB2BMJ,=GB2BOL,=GB2CAS,=GB2CHC,=GB2CM,=GB2CMA,=GB2DAS,=GB2DHS,=GB2DL,=GB2DRC,=GB2DT,=GB2DTM, + =GB2ELH,=GB2ELH/LH,=GB2EPC,=GB2FBM,=GB2FSM,=GB2FSW,=GB2GEO,=GB2GKR,=GB2GNL,=GB2GNL/LH,=GB2GTM, + =GB2HLB,=GB2HMC,=GB2HRH,=GB2IGB,=GB2IGS,=GB2IMG,=GB2IMM,=GB2INV,=GB2IOT,=GB2KDR,=GB2KGB,=GB2KW, + =GB2LBN,=GB2LBN/LH,=GB2LCL,=GB2LCP,=GB2LCT,=GB2LDG,=GB2LGB,=GB2LHI,=GB2LK,=GB2LK/LH,=GB2LMG, + =GB2LP,=GB2LS,=GB2LS/LH,=GB2LSS,=GB2LT,=GB2LT/LH,=GB2LXX,=GB2M,=GB2MAS,=GB2MBB,=GB2MDG,=GB2MN, + =GB2MOF,=GB2MSL,=GB2MUL,=GB2NBC,=GB2NEF,=GB2NL,=GB2OL,=GB2OWM,=GB2PBF,=GB2PG,=GB2QM,=GB2RB, + =GB2RDR,=GB2RRL,=GB2RWW,=GB2SAA,=GB2SAM,=GB2SB,=GB2SBG,=GB2SKG,=GB2SLH,=GB2SMM,=GB2SOH,=GB2SQN, + =GB2SR,=GB2SSB,=GB2SUM,=GB2SWF,=GB2TDS,=GB2TNL,=GB2VCB,=GB2VEF,=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,=GB4GD,=GB4GDS,=GB4GS, + =GB4IE,=GB4JCM,=GB4JPJ,=GB4JYS,=GB4LER,=GB4MSE,=GB4NFE,=GB4OL,=GB4PAS,=GB4SK,=GB4SKO,=GB4SLH, + =GB4SMM,=GB4SRO,=GB4SWF,=GB50FVS,=GB50GDS,=GB50JS,=GB5AG,=GB5AST,=GB5BBS,=GB5C,=GB5CCC,=GB5CS, + =GB5DHL,=GB5DX,=GB5EMF,=GB5FHC,=GB5FLM,=GB5JS,=GB5LTH,=GB5RO,=GB5RO/LH,=GB5RR,=GB5SI,=GB5TAM, + =GB5TI,=GB60CRB,=GB6BEN,=GB6TAA,=GB6WW,=GB75CC,=GB75GD,=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,=GM0KCY/LH,=GM0KTO/2K,=GM0MUN/2K,=GM0SGB/P,=GM0WUX/2K,=GM3JIJ/2K,=GM3OFT/P,=GM3TKV/LH, + =GM3TTC/P,=GM3TXF/P,=GM3USR/P,=GM3VLB/P,=GM4AFF/P,=GM4CHX/2K,=GM4CHX/P,=GM4WSB/M,=GM4WSB/P, + =GM4ZVD/P,=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,=GR0VRP,=GR0WED,=GR0WNR,=GR1BAN,=GR1MWK,=GR1TBW,=GR1ZIV,=GR3JFG,=GR3MZX,=GR3NIG,=GR3OFT, + =GR3PPE,=GR3PYU,=GR3VTB,=GR3WFJ,=GR3YXJ,=GR3ZDH,=GR4BDJ,=GR4BLO,=GR4CAU,=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,=GR7VSB,=GR8CBQ,=GR8KJO,=GR8KPH,=GR8MHU,=GR8MIA,=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,=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,=MM0LON/M,=MM0SHF/P,=MM0YHB/P, + =MM0ZOL/LH,=MM5PSL/P,=MM5YLO/P,=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,=MR0GOR,=MR0HAI,=MR0OIL,=MR0POD,=MR0PSL,=MR0RDM,=MR0SGQ, + =MR0SJT,=MR0TAI,=MR0TSG,=MR0TSS,=MR0VTV,=MR0WEI,=MR0XAF,=MR0XXP,=MR0XXW,=MR1AWV,=MR1HMV,=MR1JWF, + =MR1VTB,=MR3BRR,=MR3PTS,=MR3UIX,=MR3UVL,=MR3WJZ,=MR3XGP,=MR3YHA,=MR3YPH,=MR3ZCS,=MR5PSL,=MR6AHB, + =MR6ARN,=MR6ATU,=MR6CHM,=MR6CTH,=MR6CTL,=MR6MCV,=MR6RLL,=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,=GB0U,=GB2AFG,=GB2FG,=GB2JTA,=GB4SGG,=GB50GSY, =GO8FBO,=GQ8FBO,=GU0DXX/2K,=GU4GG/2K,=MO0FAL,=MO0KWD,=MQ0FAL,=MR0FAL,=MU/OT9Z/LH; @@ -921,61 +922,62 @@ Wales: 14: 27: EU: 52.28: 3.73: 0.0: GW: =2R0TRR,=2R0TYG,=2R0XTP,=2R0YKK,=2R3SFC,=2V0CDY,=2V0CGM,=2V0CLJ,=2V0CVL,=2V0DAA,=2V0DUN,=2V0GME, =2V0GNG,=2V0KED,=2V0WDS,=2V1EPO,=GB0AAW,=GB0AD,=GB0AVR,=GB0AWE,=GB0AWS,=GB0BHR,=GB0BP,=GB0BRE, =GB0BTB,=GB0BVL,=GB0CCE,=GB0CEW,=GB0CFD,=GB0CGG,=GB0CLC,=GB0CSA,=GB0CSR,=GB0CVA,=GB0DFD,=GB0DMT, - =GB0DS,=GB0DVP,=GB0FHI,=GB0GDD,=GB0GIW,=GB0GLV,=GB0GMD,=GB0GRM,=GB0HEL,=GB0HGC,=GB0HLT,=GB0HMM, - =GB0HMT,=GB0KF,=GB0L,=GB0LBG,=GB0LM,=GB0LVF,=GB0MIW,=GB0ML,=GB0MPA,=GB0MUU,=GB0MWL,=GB0NAW, - =GB0NEW,=GB0NG,=GB0PBR,=GB0PEM,=GB0PLB,=GB0PSG,=GB0RME,=GB0ROC,=GB0RPO,=GB0RS,=GB0RSC,=GB0RSF, - =GB0RWM,=GB0SDD,=GB0SGC,=GB0SH,=GB0SH/LH,=GB0SOA,=GB0SPE,=GB0SPS,=GB0TD,=GB0TPR,=GB0TS,=GB0TTT, - =GB0VCA,=GB0VK,=GB0WHR,=GB0WIW,=GB0WUL,=GB0YG,=GB100AB,=GB100BP,=GB100CSW,=GB100GGC,=GB100GGM, - =GB100HD,=GB100LB,=GB100LSG,=GB100TMD,=GB10SOTA,=GB1AD,=GB1ATC,=GB1BAF,=GB1BGS,=GB1BPL,=GB1BW, - =GB1CCC,=GB1CDS,=GB1CPG,=GB1DS,=GB1FHS,=GB1HAS,=GB1HTW,=GB1JC,=GB1LSG,=GB1LW,=GB1OOC,=GB1PCA, - =GB1PCS,=GB1PD,=GB1PGW,=GB1PJ,=GB1PLL,=GB1SEA,=GB1SL,=GB1SSL,=GB1TDS,=GB1WIW,=GB1WSM,=GB2000SET, - =GB2003SET,=GB200HNT,=GB250TMB,=GB250TT,=GB2ADU,=GB2ANG,=GB2BEF,=GB2BGG,=GB2BOM,=GB2BOW,=GB2BPM, - =GB2BYF,=GB2CC,=GB2CI,=GB2COB,=GB2CR,=GB2DWR,=GB2EI,=GB2FC,=GB2FLB,=GB2GGM,=GB2GLS,=GB2GOL, - =GB2GSG,=GB2GVA,=GB2HDG,=GB2IMD,=GB2LBR,=GB2LM,=GB2LNP,=GB2LSA,=GB2LSA/LH,=GB2LSH,=GB2MD,=GB2MGY, - =GB2MIL,=GB2MMC,=GB2MOP,=GB2NF,=GB2NPL,=GB2OOA,=GB2PRC,=GB2RFS,=GB2RTB,=GB2SAC,=GB2SCD,=GB2SCP, - =GB2SFM,=GB2SIP,=GB2SLA,=GB2TD,=GB2TD/LH,=GB2TTA,=GB2VK,=GB2WAA,=GB2WHO,=GB2WNA,=GB2WSF,=GB2WT, - =GB3HLS,=GB3LMW,=GB4ADU,=GB4AFS,=GB4AOS,=GB4BB,=GB4BOJ,=GB4BPL,=GB4BPL/LH,=GB4BPL/P,=GB4BPR, - =GB4BRS/P,=GB4BSG,=GB4CI,=GB4CTC,=GB4EUL,=GB4FAA,=GB4GM,=GB4GSS,=GB4HFH,=GB4HI,=GB4HLB,=GB4HMD, - =GB4HMM,=GB4MBC,=GB4MD,=GB4MDH,=GB4MDI,=GB4MJS,=GB4MPI,=GB4MUU,=GB4NDG,=GB4NPL,=GB4NTB,=GB4ON, - =GB4OST,=GB4PAT,=GB4PCS,=GB4PD,=GB4POW,=GB4RC,=GB4RME,=GB4RSL,=GB4SDD,=GB4SLC,=GB4SSP,=GB4SUB, - =GB4TMS,=GB4VJD,=GB4WT,=GB4WWI,=GB4XT,=GB50ABS,=GB50EVS,=GB50RSC,=GB50SGP,=GB5AC,=GB5FI,=GB5GEO, - =GB5IMD,=GB5MD,=GB5ONG,=GB5PSJ,=GB5SIP,=GB5WT,=GB60BTF,=GB60DITP,=GB60ER,=GB60PW,=GB60VLY, - =GB65BTF,=GB6AC,=GB6BLB,=GB6GGM,=GB6GW,=GB6OQA,=GB6ORA,=GB6PLB,=GB6RNLI,=GB6SPD,=GB6TS,=GB6TSG, - =GB6WT,=GB6WWT,=GB70BTF,=GB750CC,=GB75ATC,=GB75BB,=GB8CCC,=GB8HI,=GB8MD,=GB8MG,=GB8OAE,=GB8OQE, - =GB8WT,=GB90RSGB/62,=GB90RSGB/72,=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,=GR1LFX,=GR1LHV,=GR1MCD, - =GR1SGG,=GR1WVY,=GR3SB,=GR3SFC,=GR3TKH,=GR3UOF,=GR3XJQ,=GR4BKG,=GR4BLE,=GR4CQZ,=GR4GNY,=GR4GTI, - =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,=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; + =GB0DS,=GB0DVP,=GB0FHD,=GB0FHI,=GB0GDD,=GB0GIW,=GB0GLV,=GB0GMD,=GB0GRM,=GB0HEL,=GB0HGC,=GB0HLT, + =GB0HMM,=GB0HMT,=GB0KF,=GB0L,=GB0LBG,=GB0LM,=GB0LVF,=GB0MIW,=GB0ML,=GB0MPA,=GB0MUU,=GB0MWL, + =GB0NAW,=GB0NEW,=GB0NG,=GB0PBR,=GB0PEM,=GB0PLB,=GB0PSG,=GB0RME,=GB0ROC,=GB0RPO,=GB0RS,=GB0RSC, + =GB0RSF,=GB0RWM,=GB0SDD,=GB0SGC,=GB0SH,=GB0SH/LH,=GB0SOA,=GB0SPE,=GB0SPS,=GB0TD,=GB0TPR,=GB0TS, + =GB0TTT,=GB0VCA,=GB0VK,=GB0WHH,=GB0WHR,=GB0WIW,=GB0WUL,=GB0YG,=GB100AB,=GB100BP,=GB100CSW, + =GB100GGC,=GB100GGM,=GB100HD,=GB100LB,=GB100LSG,=GB100TMD,=GB10SOTA,=GB1AD,=GB1ATC,=GB1BAF, + =GB1BGS,=GB1BPL,=GB1BSW,=GB1BW,=GB1CCC,=GB1CDS,=GB1CPG,=GB1DS,=GB1FHS,=GB1HAS,=GB1HTW,=GB1JC, + =GB1LSG,=GB1LW,=GB1OOC,=GB1PCA,=GB1PCS,=GB1PD,=GB1PGW,=GB1PJ,=GB1PLL,=GB1SEA,=GB1SL,=GB1SPN, + =GB1SSL,=GB1TDS,=GB1WAA,=GB1WIW,=GB1WSM,=GB2000SET,=GB2003SET,=GB200HNT,=GB250TMB,=GB250TT, + =GB2ADU,=GB2ANG,=GB2BEF,=GB2BGG,=GB2BOM,=GB2BOW,=GB2BPM,=GB2BYF,=GB2CC,=GB2CI,=GB2COB,=GB2CR, + =GB2DWR,=GB2EI,=GB2FC,=GB2FLB,=GB2GGM,=GB2GLS,=GB2GOL,=GB2GSG,=GB2GVA,=GB2HDG,=GB2IMD,=GB2LBR, + =GB2LM,=GB2LNP,=GB2LSA,=GB2LSA/LH,=GB2LSH,=GB2MD,=GB2MGY,=GB2MIL,=GB2MMC,=GB2MOP,=GB2NF,=GB2NPL, + =GB2OOA,=GB2PRC,=GB2RFS,=GB2RTB,=GB2SAC,=GB2SCD,=GB2SCP,=GB2SFM,=GB2SIP,=GB2SLA,=GB2TD,=GB2TD/LH, + =GB2TTA,=GB2VK,=GB2WAA,=GB2WHO,=GB2WNA,=GB2WSF,=GB2WT,=GB3HLS,=GB3LMW,=GB4ADU,=GB4AFS,=GB4AOS, + =GB4BB,=GB4BOJ,=GB4BPL,=GB4BPL/LH,=GB4BPL/P,=GB4BPR,=GB4BRS/P,=GB4BSG,=GB4CI,=GB4CTC,=GB4EUL, + =GB4FAA,=GB4GM,=GB4GSS,=GB4HFH,=GB4HI,=GB4HLB,=GB4HMD,=GB4HMM,=GB4MBC,=GB4MD,=GB4MDH,=GB4MDI, + =GB4MJS,=GB4MPI,=GB4MUU,=GB4NDG,=GB4NPL,=GB4NTB,=GB4ON,=GB4OST,=GB4PAT,=GB4PCS,=GB4PD,=GB4POW, + =GB4RC,=GB4RME,=GB4RSL,=GB4SDD,=GB4SLC,=GB4SSP,=GB4SUB,=GB4TMS,=GB4VJD,=GB4WT,=GB4WWI,=GB4XT, + =GB50ABS,=GB50EVS,=GB50RSC,=GB50SGP,=GB5AC,=GB5FI,=GB5GEO,=GB5IMD,=GB5MD,=GB5ONG,=GB5PSJ,=GB5SIP, + =GB5WT,=GB60BTF,=GB60DITP,=GB60ER,=GB60PW,=GB60VLY,=GB65BTF,=GB6AC,=GB6BLB,=GB6CRA,=GB6CRI, + =GB6GGM,=GB6GW,=GB6OQA,=GB6ORA,=GB6PLB,=GB6RNLI,=GB6SPD,=GB6TS,=GB6TSG,=GB6WT,=GB6WWT,=GB70BTF, + =GB750CC,=GB75ATC,=GB75BB,=GB8CCC,=GB8HI,=GB8MD,=GB8MG,=GB8OAE,=GB8OQE,=GB8WT,=GB90RSGB/62, + =GB90RSGB/72,=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,=GR1LFX,=GR1LHV,=GR1MCD,=GR1SGG,=GR1WVY,=GR3SB, + =GR3SFC,=GR3TKH,=GR3UOF,=GR3XJQ,=GR4BKG,=GR4BLE,=GR4CQZ,=GR4GNY,=GR4GTI,=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,=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: @@ -1021,16 +1023,16 @@ Saudi Arabia: 21: 39: AS: 24.20: -43.83: -3.0: HZ: =HZ1DG/ND,=HZ1EA/ND,=HZ1HN/ND,=HZ1MD/ND,=HZ1SBS/J,=HZ1SBS/JOTA,=HZ1SBS/ND,=HZ1SK/ND,=HZ1TT/ND, =HZ1XB/ND,=HZ1ZH/ND; Italy: 15: 28: EU: 42.82: -12.58: -1.0: I: - I,=II1RT/N, + I,=II1RT/N,=IQ3TS/LH, =4U0WFP,=4U4F,=4U5F,=4U6F,=4U7F,=4U7FOC,=IK0ATK/N,=IK0CNA/LH,=IK0JFS/N,=IK0XFD/N,=IQ0AP/J, =IQ0CV/LH,=IQ0FM/LH,=IQ0FR/LH,=IQ0GV/AAW,=IR0BP/J,=IU0FSC/LH,=IW0HP/N,=IZ0BXZ/N,=IZ0DBA/N, =IZ0EGC/N,=IZ0FVD/N,=IZ0HTW/PS,=IZ0HTW/SP,=IZ0IAT/LH,=IZ0IJC/FF,=IZ0IJC/N, - =I1MQ/N,=I1ULJ/N,=I1XSG/N,=I1YRL/GRA,=II1PV/LH,=IK1RED/N,=IK1VDN/N,=IQ1L/LH,=IQ1NM/REX,=IQ1SP/N, - =IY1SP/ASB,=IY1SP/MTN,=IZ0IJC/BSM,=IZ1CLA/N,=IZ1FCF/N,=IZ1POA/N,=IZ1RGI/ECO,=IZ5GST/1/LH, + =I1MQ/N,=I1ULJ/N,=I1XSG/N,=I1YRL/GRA,=II1PV/LH,=IK1RED/N,=IK1VDN/N,=IP1T/LH,=IQ1L/LH,=IQ1NM/REX, + =IQ1SP/N,=IY1SP/ASB,=IY1SP/MTN,=IZ0IJC/BSM,=IZ1CLA/N,=IZ1FCF/N,=IZ1POA/N,=IZ1RGI/ECO,=IZ5GST/1/LH, =I2AZ/N,=I2CZQ/N,=IK2CZQ/N,=IK2FIQ/N,=IK2MKM/EXPO,=IK2SOE/N,=IQ2LB/EXPO,=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, + =I3GJJ/J,=I3TXQ/N,=IK3TZB/N,=IQ3DD/MCC,=IQ3FL/J,=IW3BSQ/LH,=IZ3DBA/N,=IZ3GHP/N,=IZ3QCH/N, + =IZ3SZQ/N, =I4CQO/N,=II4GOR/LH,=IQ4FA/J,=IQ4FJ/J,=IQ4RN/LGT,=IQ4RN/LH,=IW4EGX/LH, =I5OYY/N,=IK5IWU/N,=IK5TSZ/N,=IP5P/LH,=IQ5AA/J,=IQ5AE/J,=IQ5LI/J,=IQ5LV/J,=IW5DAX/J,=IZ5AHB/N, =I6DHY/CASA,=I6FDJ/LH,=I6FDJ/N,=I6HWD/LH,=I6KIU/6/LH,=IK6XOU/LH,=IK6YXM/N,=IQ6FU/LH,=IQ6PS/LH, @@ -1038,8 +1040,8 @@ Italy: 15: 28: EU: 42.82: -12.58: -1.0: I: =4U1GSC,=4U20B,=I7PXV/LH,=I7PXV/P/LH,=I7XUW/MI/224,=II7IAOI/N,=II7PT/C,=II7PT/D,=II7PT/E,=II7PT/F, =II7PT/G,=II7PT/H,=II7PT/L,=IK7JWX/LH,=IQ7ML/LH,=IU7SCT/J,=IZ2DPX/7/LH,=IZ7DKA/YL,=IZ7KDX/LH, =IZ7LDC/LH, - =IK8TEO/N,=IQ8OM/N,=IQ8PC/BWL,=IQ8XS/CEU,=IW8FFG/J,=IZ8AJQ/LGT,=IZ8AJQ/LH,=IZ8DBJ/LGT,=IZ8DBJ/LH, - =IZ8FMU/KR,=IZ8IZK/YL,=IZ8JPV/N,=IZ8QNX/N, + =IK2RLS/8/LH,=IK8TEO/N,=IQ8OM/N,=IQ8PC/BWL,=IQ8XS/CEU,=IW8FFG/J,=IZ8AJQ/LGT,=IZ8AJQ/LH, + =IZ8DBJ/LGT,=IZ8DBJ/LH,=IZ8FMU/KR,=IZ8IZK/YL,=IZ8JPV/N,=IZ8QNX/N, =IA5/IW3ILP/L, =IC8/DJ5AA/LH, =IN3IKF/J,=IN3TJK/YL, @@ -1086,7 +1088,7 @@ Mongolia: 23: 32: AS: 46.77: -102.17: -7.0: JT: JT2[33],JU2[33],JV2[33], JT3[33],JU3[33],JV3[33]; Svalbard: 40: 18: EU: 78.00: -16.00: -1.0: JW: - JW; + JW,=VERSION; Bear Island: 40: 18: EU: 74.43: -19.08: -1.0: *JW/b: =JW0BEA,=JW1I,=JW2VOA,=JW3FL,=JW4GHA,=JW4LN,=JW5RIA,=JW7VW,=JW9JKA; Jan Mayen: 40: 18: EU: 71.05: 8.28: 1.0: JX: @@ -1106,26 +1108,26 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: 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],=AH6ES/0(4)[7],=AH6FY(4)[7],=AH6MD(4)[7],=AH6N(4)[7],=AH6N/0(4)[7], =AH6O(4)[7],=AH6OS(4)[7],=AH6RS(4)[7],=AL0G(4)[7],=AL1VE/R(4)[7],=AL3E(4)[7],=AL7BX(4)[7], - =AL7GQ(4)[7],=AL7KK(4)[7],=AL7LL(4)[7],=AL7NY(4)[7],=AL7O/0(4)[7],=AL7OC(4)[7],=AL7QQ(4)[7], - =AL7QQ/P(4)[7],=AL9DB(4)[7],=KH0EX(4)[7],=KH2CZ(4)[7],=KH2JK(4)[7],=KH2OP(4)[7],=KH2OP/0(4)[7], - =KH2SL(4)[7],=KH6GN(4)[7],=KH6HTV/0(4)[7],=KH6JEM(4)[7],=KH6JFH(4)[7],=KH6NM(4)[7],=KH6NR(4)[7], - =KH6SB(4)[7],=KH6TL(4)[7],=KH6UC(4)[7],=KH6VHF(4)[7],=KH7AL(4)[7],=KH7AL/M(4)[7],=KH7AL/P(4)[7], - =KH7BU(4)[7],=KH7CZ(4)[7],=KH7GF(4)[7],=KH7HA(4)[7],=KH7QT(4)[7],=KH8CW(4)[7],=KL0DW(4)[7], - =KL0EQ(4)[7],=KL0FOX(4)[7],=KL0GP(4)[7],=KL0GQ(4)[7],=KL0UP(4)[7],=KL0WIZ(4)[7],=KL1HT(4)[7], - =KL1IF(4)[7],=KL1IF/M(4)[7],=KL1J(4)[7],=KL1LD(4)[7],=KL1PV(4)[7],=KL1V/M(4)[7],=KL1VN(4)[7], + =AL7GQ(4)[7],=AL7LL(4)[7],=AL7NY(4)[7],=AL7O/0(4)[7],=AL7OC(4)[7],=AL7QQ(4)[7],=AL7QQ/P(4)[7], + =AL9DB(4)[7],=KH0EX(4)[7],=KH2CZ(4)[7],=KH2JK(4)[7],=KH2OP(4)[7],=KH2OP/0(4)[7],=KH2SL(4)[7], + =KH6GN(4)[7],=KH6HTV/0(4)[7],=KH6JEM(4)[7],=KH6JFH(4)[7],=KH6NM(4)[7],=KH6NR(4)[7],=KH6SB(4)[7], + =KH6TL(4)[7],=KH6UC(4)[7],=KH6VHF(4)[7],=KH7AL(4)[7],=KH7AL/M(4)[7],=KH7AL/P(4)[7],=KH7BU(4)[7], + =KH7CZ(4)[7],=KH7GF(4)[7],=KH7HA(4)[7],=KH7QT(4)[7],=KH8CW(4)[7],=KL0DW(4)[7],=KL0EQ(4)[7], + =KL0FOX(4)[7],=KL0GP(4)[7],=KL0GQ(4)[7],=KL0UP(4)[7],=KL0WIZ(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],=KL2QO(4)[7],=KL2SX(4)[7],=KL3LY(4)[7],=KL3MA(4)[7], =KL3MB(4)[7],=KL3MC(4)[7],=KL3QS(4)[7],=KL3SM(4)[7],=KL3VN(4)[7],=KL5X(4)[7],=KL7DE(4)[7], =KL7DTJ(4)[7],=KL7ED(4)[7],=KL7EP(4)[7],=KL7GKY/0(4)[7],=KL7GLK(4)[7],=KL7GLK/0(4)[7], =KL7GLK/B(4)[7],=KL7IEI(4)[7],=KL7IXI(4)[7],=KL7JBB(4)[7],=KL7JGJ(4)[7],=KL7JR/0(4)[7], =KL7MH(4)[7],=KL7MV(4)[7],=KL7NW(4)[7],=KL7PE(4)[7],=KL7PE/M(4)[7],=KL7QW(4)[7],=KL7QW/0(4)[7], - =KL7RZ(4)[7],=KL7SB/0(4)[7],=KL7SFD(4)[7],=KL7XH(4)[7],=KL7YL(4)[7],=KL7YY/0(4)[7],=KL7ZT(4)[7], - =KP4ATV(4)[7],=KP4MLF(4)[7],=KP4XZ(4)[7],=NH6WF(4)[7],=NH7FI(4)[7],=NH7L(4)[7],=NH7XM(4)[7], - =NH7ZH(4)[7],=NL7AS(4)[7],=NL7BU(4)[7],=NL7CQ(4)[7],=NL7FF(4)[7],=NL7FU(4)[7],=NL7XT(4)[7], - =NL7XU(4)[7],=NP4AI(4)[7],=NP4AI/0(4)[7],=VE4AGT/M(4)[7],=VE4XC/M(4)[7],=WH2S(4)[7],=WH6ANH(4)[7], - =WH6BUL(4)[7],=WH6BXD(4)[7],=WH6CTU(4)[7],=WH6CUE(4)[7],=WH6CYM(4)[7],=WH6CZI(4)[7],=WH6CZU(4)[7], - =WH6EAE(4)[7],=WH6ENX(4)[7],=WH6LR(4)[7],=WH6MS(4)[7],=WH6QS(4)[7],=WH7DA(4)[7],=WH7IR(4)[7], - =WH7PV(4)[7],=WH7TC(4)[7],=WH9AAH(4)[7],=WL0JF(4)[7],=WL1ON(4)[7],=WL7AEC(4)[7],=WL7ANY(4)[7], - =WL7ATK(4)[7],=WL7BT(4)[7],=WL7CEG(4)[7],=WL7CLI(4)[7],=WL7CPL(4)[7],=WL7CPW(4)[7],=WL7CQF(4)[7], + =KL7RZ(4)[7],=KL7SB/0(4)[7],=KL7SFD(4)[7],=KL7XH(4)[7],=KL7YL(4)[7],=KL7YY/0(4)[7],=KL7ZD(4)[7], + =KL7ZT(4)[7],=KP4ATV(4)[7],=KP4MLF(4)[7],=KP4XZ(4)[7],=NH6WF(4)[7],=NH7FI(4)[7],=NH7L(4)[7], + =NH7XM(4)[7],=NH7ZH(4)[7],=NL7AS(4)[7],=NL7BU(4)[7],=NL7CQ(4)[7],=NL7FF(4)[7],=NL7FU(4)[7], + =NL7XT(4)[7],=NL7XU(4)[7],=NP4AI(4)[7],=NP4AI/0(4)[7],=VE4AGT/M(4)[7],=VE4XC/M(4)[7],=WH2S(4)[7], + =WH6ANH(4)[7],=WH6BUL(4)[7],=WH6BXD(4)[7],=WH6CTU(4)[7],=WH6CUE(4)[7],=WH6CYM(4)[7],=WH6CZI(4)[7], + =WH6CZU(4)[7],=WH6EAE(4)[7],=WH6ENX(4)[7],=WH6LR(4)[7],=WH6MS(4)[7],=WH6QS(4)[7],=WH7DA(4)[7], + =WH7IR(4)[7],=WH7PV(4)[7],=WH7TC(4)[7],=WH9AAH(4)[7],=WL0JF(4)[7],=WL1ON(4)[7],=WL7AEC(4)[7], + =WL7ANY(4)[7],=WL7ATK(4)[7],=WL7BT(4)[7],=WL7CEG(4)[7],=WL7CLI(4)[7],=WL7CPW(4)[7],=WL7CQF(4)[7], =WL7CRT(4)[7],=WL7CY(4)[7],=WL7JB(4)[7],=WL7LZ(4)[7],=WL7RV(4)[7],=WL7YM(4)[7],=WL7YQ(4)[7], =WP2B/0(4)[7],=WP3QH(4)[7],=WP3Y(4)[7],=WP4BTQ(4)[7],=WP4GQR(4)[7],=WP4HRK(4)[7],=WP4LC(4)[7], =WP4NPV(4)[7], @@ -1134,31 +1136,31 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =KH6RF/1(5)[8],=KH6RF/M(5)[8],=KH7CD(5)[8],=KH7CD/1(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],=KL2KL(5)[8],=KL7CE(5)[8], =KL7CE/1(5)[8],=KL7IXX(5)[8],=KL7JHM(5)[8],=KL7JR/1(5)[8],=KL7JT(5)[8],=KL7LK(5)[8], - =KL7USI/1(5)[8],=KL8DX(5)[8],=KP4BLS(5)[8],=KP4BPR(5)[8],=KP4EC/1(5)[8],=KP4MR(5)[8],=KP4NW(5)[8], - =KP4R(5)[8],=KP4RCD(5)[8],=NH0H(5)[8],=NH6IH(5)[8],=NH6XW(5)[8],=NH6ZB(5)[8],=NL7FJ(5)[8], - =NL7MO(5)[8],=NL7NJ(5)[8],=NL7OI(5)[8],=NL7RL(5)[8],=NP2FZ(5)[8],=NP2FZ/1(5)[8],=NP2GG(5)[8], - =NP2PN(5)[8],=NP3IV(5)[8],=NP4AO(5)[8],=NP4AZ(5)[8],=VE1BES/M(5)[8],=VE3CMB/M(5)[8], + =KL7USI/1(5)[8],=KL8DX(5)[8],=KP4BLS(5)[8],=KP4BPR(5)[8],=KP4EC/1(5)[8],=KP4G(5)[8],=KP4MR(5)[8], + =KP4NW(5)[8],=KP4R(5)[8],=KP4RCD(5)[8],=NH0H(5)[8],=NH6IH(5)[8],=NH6XW(5)[8],=NH6ZB(5)[8], + =NL7FJ(5)[8],=NL7MO(5)[8],=NL7NJ(5)[8],=NL7OI(5)[8],=NL7RL(5)[8],=NP2FZ(5)[8],=NP2FZ/1(5)[8], + =NP2GG(5)[8],=NP2PN(5)[8],=NP3IV(5)[8],=NP4AO(5)[8],=NP4AZ(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], =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],=WP3NN(5)[8],=WP3WV(5)[8],=WP4AKE(5)[8],=WP4AZJ(5)[8],=WP4BC(5)[8], =WP4BF(5)[8],=WP4CJH(5)[8],=WP4JF(5)[8],=WP4KQ(5)[8],=WP4MMV(5)[8],=WP4MOC(5)[8],=WP4NKW(5)[8], =WP4NUV(5)[8],=WP4NYY(5)[8],=WP4OJK(5)[8], =AH0BR(5)[8],=AH2AL(5)[8],=AH2O(5)[8],=AH6K(5)[8],=AL2O(5)[8],=AL7RG(5)[8],=KH2CW(5)[8], - =KH2P(5)[8],=KH2R(5)[8],=KH4AG(5)[8],=KH6HO(5)[8],=KH7GA(5)[8],=KH8ZK(5)[8],=KL0WV(5)[8], - =KL1A/2(5)[8],=KL2A/2(5)[8],=KL2NP(5)[8],=KL3DY(5)[8],=KL3ET(5)[8],=KL3ZC(5)[8],=KL4T(5)[8], - =KL7DL(5)[8],=KL7GB(5)[8],=KL7JCQ(5)[8],=KL7NL/2(5)[8],=KL7TJZ(5)[8],=KL7USI/2(5)[8],=KL7WA(5)[8], - =KP2NP(5)[8],=KP3AK(5)[8],=KP3S(5)[8],=KP3Y(5)[8],=KP4AK(5)[8],=KP4CML(5)[8],=KP4HR(5)[8], - =KP4I(5)[8],=KP4JDR(5)[8],=NH2DC(5)[8],=NL7CC(5)[8],=NP2GI(5)[8],=NP3D(5)[8],=NP3EU(5)[8], - =NP3KH(5)[8],=NP3KP(5)[8],=NP4IR(5)[8],=NP4IT(5)[8],=WH0W(5)[8],=WH2C(5)[8],=WH6DLD(5)[8], - =WH6DNT(5)[8],=WH6UO(5)[8],=WL2NAS(5)[8],=WL7OG(5)[8],=WP2AAO(5)[8],=WP3MD(5)[8],=WP3VU(5)[8], - =WP3WZ(5)[8],=WP4BMU(5)[8],=WP4BNI(5)[8],=WP4BZ(5)[8],=WP4CB(5)[8],=WP4EHY(5)[8],=WP4EYW(5)[8], - =WP4HLY(5)[8],=WP4LYI(5)[8],=WP4MRB(5)[8],=WP4MYM(5)[8],=WP4MZO(5)[8],=WP4NBS(5)[8],=WP4OPY(5)[8], - =WP4R(5)[8],=XL3TUV/M(5)[8],=XM3CMB/M(5)[8], + =KH2P(5)[8],=KH2R(5)[8],=KH4AG(5)[8],=KH6HO(5)[8],=KH7GA(5)[8],=KH7JO(5)[8],=KH8ZK(5)[8], + =KL0WV(5)[8],=KL1A/2(5)[8],=KL2A/2(5)[8],=KL2NP(5)[8],=KL3DY(5)[8],=KL3ET(5)[8],=KL3ZC(5)[8], + =KL4T(5)[8],=KL7DL(5)[8],=KL7GB(5)[8],=KL7JCQ(5)[8],=KL7NL/2(5)[8],=KL7TJZ(5)[8],=KL7USI/2(5)[8], + =KL7WA(5)[8],=KP2NP(5)[8],=KP3AK(5)[8],=KP3S(5)[8],=KP3Y(5)[8],=KP4AK(5)[8],=KP4CML(5)[8], + =KP4HR(5)[8],=KP4I(5)[8],=KP4JDR(5)[8],=NH2DC(5)[8],=NL7CC(5)[8],=NP2GI(5)[8],=NP3D(5)[8], + =NP3EU(5)[8],=NP3KH(5)[8],=NP3KP(5)[8],=NP4IR(5)[8],=NP4IT(5)[8],=WH0W(5)[8],=WH2C(5)[8], + =WH6DLD(5)[8],=WH6DNT(5)[8],=WH6UO(5)[8],=WL2NAS(5)[8],=WL7OG(5)[8],=WP2AAO(5)[8],=WP3MD(5)[8], + =WP3VU(5)[8],=WP3WZ(5)[8],=WP4BMU(5)[8],=WP4BNI(5)[8],=WP4BZ(5)[8],=WP4CB(5)[8],=WP4EHY(5)[8], + =WP4EYW(5)[8],=WP4HLY(5)[8],=WP4LYI(5)[8],=WP4MQN(5)[8],=WP4MRB(5)[8],=WP4MYM(5)[8],=WP4MZO(5)[8], + =WP4NBS(5)[8],=WP4OPY(5)[8],=WP4R(5)[8],=XL3TUV/M(5)[8],=XM3CMB/M(5)[8], =4U1WB(5)[8],=AH6AX(5)[8],=AH6FF(5)[8],=AH6FF/3(5)[8],=AH6LS(5)[8],=AH6Z(5)[8],=AH7J(5)[8], =AH8P(5)[8],=AL1B(5)[8],=AL1B/M(5)[8],=AL7AB(5)[8],=KH2JX(5)[8],=KH6CUJ(5)[8],=KH6ILR/3(5)[8], - =KH6JGA(5)[8],=KH8CN(5)[8],=KL1KM(5)[8],=KL1Y(5)[8],=KL2A(5)[8],=KL2A/3(5)[8],=KL2BV(5)[8], - =KL2XF(5)[8],=KL3JC(5)[8],=KL7GLK/3(5)[8],=KL7HR/3(5)[8],=KL7JO(5)[8],=KL7OF/3(5)[8],=KL7OQ(5)[8], - =KL9A/3(5)[8],=KP3M(5)[8],=KP4CAM(5)[8],=KP4GB/3(5)[8],=KP4IP(5)[8],=KP4JB(5)[8],=KP4MAS(5)[8], + =KH6JGA(5)[8],=KH6LDO(5)[8],=KH8CN(5)[8],=KL1KM(5)[8],=KL1Y(5)[8],=KL2A(5)[8],=KL2A/3(5)[8], + =KL2BV(5)[8],=KL2XF(5)[8],=KL3JC(5)[8],=KL7GLK/3(5)[8],=KL7HR/3(5)[8],=KL7JO(5)[8],=KL7OF/3(5)[8], + =KL7OQ(5)[8],=KL9A/3(5)[8],=KP3M(5)[8],=KP4CAM(5)[8],=KP4GB/3(5)[8],=KP4IP(5)[8],=KP4JB(5)[8], =KP4N(5)[8],=KP4N/3(5)[8],=KP4PRI(5)[8],=KP4UV(5)[8],=NH2CW(5)[8],=NH6BD(5)[8],=NH6BK(5)[8], =NH7C(5)[8],=NH7CC(5)[8],=NH7YK(5)[8],=NL7CK(5)[8],=NL7PJ(5)[8],=NL7V/3(5)[8],=NL7XM(5)[8], =NL7XM/B(5)[8],=NP2EP(5)[8],=NP2G(5)[8],=NP2NC(5)[8],=NP3IP(5)[8],=NP4RH(5)[8],=NP4YZ(5)[8], @@ -1166,7 +1168,7 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =WH6EEN(5)[8],=WH6FGM(5)[8],=WH6IO(5)[8],=WH6OB(5)[8],=WH7USA(5)[8],=WL7AF(5)[8],=WP2XX(5)[8], =WP3BX(5)[8],=WP3EC(5)[8],=WP3FK(5)[8],=WP4DA(5)[8],=WP4DCK(5)[8],=WP4EDM(5)[8],=WP4GJL(5)[8], =WP4HJF(5)[8],=WP4HSZ(5)[8],=WP4KKX(5)[8],=WP4LEM(5)[8],=WP4LNP(5)[8],=WP4MNV(5)[8],=WP4MSX(5)[8], - =WP4MYN(5)[8],=WP4PQN(5)[8], + =WP4MYN(5)[8],=WP4OSQ(5)[8],=WP4PQN(5)[8], =AH0BV(5)[8],=AH0BZ(5)[8],=AH2AJ(5)[8],=AH2AM(5)[8],=AH2AP(5)[8],=AH2C(5)[8],=AH2EB(5)[8], =AH2X(5)[8],=AH3B(5)[8],=AH6AL(5)[8],=AH6AT(5)[8],=AH6AU(5)[8],=AH6BJ(5)[8],=AH6EZ/4(5)[8], =AH6FX(5)[8],=AH6FX/4(5)[8],=AH6IC(5)[8],=AH6IJ(5)[8],=AH6IW(5)[8],=AH6JN/4(5)[8],=AH6JN/M(5)[8], @@ -1186,60 +1188,61 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =KL0MP(5)[8],=KL0S(5)[8],=KL0SS(5)[8],=KL0TY(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],=KL2UQ(5)[8],=KL2XI(5)[8],=KL3DM(5)[8],=KL3EV(5)[8], - =KL3HG(5)[8],=KL3IA(5)[8],=KL3KB(5)[8],=KL3KG(5)[8],=KL3NR(5)[8],=KL3WM(5)[8],=KL3XB(5)[8], - =KL4CO(5)[8],=KL4H(5)[8],=KL4J(5)[8],=KL7A(5)[8],=KL7DA(5)[8],=KL7FO(5)[8],=KL7GLL(5)[8], - =KL7H(5)[8],=KL7HIM(5)[8],=KL7HNY(5)[8],=KL7HOT(5)[8],=KL7HX(5)[8],=KL7IEK(5)[8],=KL7IKZ(5)[8], - =KL7IUQ(5)[8],=KL7IV(5)[8],=KL7IVY(5)[8],=KL7IWF(5)[8],=KL7JR(5)[8],=KL7LS(5)[8],=KL7MJ(5)[8], - =KL7NCO(5)[8],=KL7NL(5)[8],=KL7NL/4(5)[8],=KL7NT(5)[8],=KL7P/4(5)[8],=KL7QH(5)[8],=KL7SR(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], - =KP2L(5)[8],=KP2L/4(5)[8],=KP2N(5)[8],=KP2US(5)[8],=KP2V(5)[8],=KP3AMG(5)[8],=KP3BL(5)[8], - =KP3BP(5)[8],=KP3SK(5)[8],=KP3U(5)[8],=KP4AOD(5)[8],=KP4AOD/4(5)[8],=KP4BEC(5)[8],=KP4BM(5)[8], - =KP4BOB(5)[8],=KP4CBP(5)[8],=KP4CH(5)[8],=KP4CPP(5)[8],=KP4CSZ(5)[8],=KP4CW(5)[8],=KP4CZ(5)[8], - =KP4DAC(5)[8],=KP4DDS(5)[8],=KP4DQS(5)[8],=KP4EIA(5)[8],=KP4EMY(5)[8],=KP4ENM(5)[8],=KP4EOR(5)[8], - =KP4EOR/4(5)[8],=KP4ERT(5)[8],=KP4ESC(5)[8],=KP4FBS(5)[8],=KP4FIR(5)[8],=KP4FJE(5)[8], - =KP4FLP(5)[8],=KP4FOF(5)[8],=KP4HE(5)[8],=KP4HF(5)[8],=KP4HN(5)[8],=KP4II(5)[8],=KP4IT(5)[8], - =KP4JC(5)[8],=KP4KA(5)[8],=KP4KD(5)[8],=KP4KD/4(5)[8],=KP4LEU(5)[8],=KP4LF(5)[8],=KP4MPR(5)[8], - =KP4MSP(5)[8],=KP4OO(5)[8],=KP4PC(5)[8],=KP4Q(5)[8],=KP4QT(5)[8],=KP4QT/4(5)[8],=KP4RGT(5)[8], - =KP4RRC(5)[8],=KP4RT(5)[8],=KP4RZ(5)[8],=KP4SU(5)[8],=KP4TL(5)[8],=KP4TR(5)[8],=KP4UFO(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],=NH6AU(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/4(5)[8],=NH6TL(5)[8],=NH7AQ(5)[8],=NH7AR(5)[8],=NH7FG(5)[8],=NH7T/4(5)[8], - =NH7UN(5)[8],=NH7XN(5)[8],=NL7AJ(5)[8],=NL7AU(5)[8],=NL7AU/4(5)[8],=NL7BV(5)[8],=NL7KX(5)[8], - =NL7LR(5)[8],=NL7MD(5)[8],=NL7OS(5)[8],=NL7P(5)[8],=NL7PV(5)[8],=NL7U(5)[8],=NL7VV(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],=KL7A(5)[8],=KL7DA(5)[8], + =KL7FO(5)[8],=KL7GLL(5)[8],=KL7H(5)[8],=KL7HIM(5)[8],=KL7HNY(5)[8],=KL7HOT(5)[8],=KL7HQW(5)[8], + =KL7HX(5)[8],=KL7IEK(5)[8],=KL7IKZ(5)[8],=KL7IV(5)[8],=KL7IVY(5)[8],=KL7IWF(5)[8],=KL7JR(5)[8], + =KL7LS(5)[8],=KL7MJ(5)[8],=KL7NCO(5)[8],=KL7NL(5)[8],=KL7NL/4(5)[8],=KL7NT(5)[8],=KL7P/4(5)[8], + =KL7QH(5)[8],=KL7SR(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], + =KP2US(5)[8],=KP2V(5)[8],=KP3AMG(5)[8],=KP3BL(5)[8],=KP3BP(5)[8],=KP3J(5)[8],=KP3SK(5)[8], + =KP3U(5)[8],=KP4AOD(5)[8],=KP4AOD/4(5)[8],=KP4BEC(5)[8],=KP4BM(5)[8],=KP4BOB(5)[8],=KP4CBP(5)[8], + =KP4CH(5)[8],=KP4CPP(5)[8],=KP4CSZ(5)[8],=KP4CW(5)[8],=KP4CZ(5)[8],=KP4DAC(5)[8],=KP4DDS(5)[8], + =KP4DQS(5)[8],=KP4EIA(5)[8],=KP4EMY(5)[8],=KP4ENM(5)[8],=KP4EOR(5)[8],=KP4EOR/4(5)[8], + =KP4ERT(5)[8],=KP4ESC(5)[8],=KP4FBS(5)[8],=KP4FIR(5)[8],=KP4FJE(5)[8],=KP4FLP(5)[8],=KP4FOF(5)[8], + =KP4HE(5)[8],=KP4HF(5)[8],=KP4HN(5)[8],=KP4II(5)[8],=KP4IT(5)[8],=KP4JC(5)[8],=KP4KA(5)[8], + =KP4KD(5)[8],=KP4KD/4(5)[8],=KP4LEU(5)[8],=KP4LF(5)[8],=KP4MPR(5)[8],=KP4MSP(5)[8],=KP4OO(5)[8], + =KP4PC(5)[8],=KP4Q(5)[8],=KP4QT(5)[8],=KP4QT/4(5)[8],=KP4RGT(5)[8],=KP4RRC(5)[8],=KP4RT(5)[8], + =KP4RZ(5)[8],=KP4SU(5)[8],=KP4TL(5)[8],=KP4TR(5)[8],=KP4UFO(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],=NH6AU(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], + =NH6T/4(5)[8],=NH6TL(5)[8],=NH7AQ(5)[8],=NH7AR(5)[8],=NH7FG(5)[8],=NH7T/4(5)[8],=NH7UN(5)[8], + =NH7XN(5)[8],=NL7AJ(5)[8],=NL7AU(5)[8],=NL7AU/4(5)[8],=NL7BV(5)[8],=NL7KX(5)[8],=NL7LR(5)[8], + =NL7MD(5)[8],=NL7MR(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],=NL7YI(5)[8],=NL7YZ(5)[8],=NP2B(5)[8],=NP2B/4(5)[8], =NP2BB(5)[8],=NP2C(5)[8],=NP2CB(5)[8],=NP2D(5)[8],=NP2DJ(5)[8],=NP2EI(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],=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],=NP2PA(5)[8], - =NP2R(5)[8],=NP2T(5)[8],=NP2W(5)[8],=NP3BL(5)[8],=NP3CC(5)[8],=NP3CI(5)[8],=NP3CM(5)[8], - =NP3CT(5)[8],=NP3DI(5)[8],=NP3FR(5)[8],=NP3G(5)[8],=NP3HD(5)[8],=NP3HP(5)[8],=NP3HU(5)[8], - =NP3IL(5)[8],=NP3IU(5)[8],=NP3K(5)[8],=NP3MM(5)[8],=NP3MX(5)[8],=NP3QT(5)[8],=NP3R(5)[8], - =NP3ST(5)[8],=NP4AS(5)[8],=NP4AV(5)[8],=NP4CC(5)[8],=NP4CK(5)[8],=NP4CV(5)[8],=NP4GH(5)[8], - =NP4GW(5)[8],=NP4J(5)[8],=NP4KV(5)[8],=NP4ND(5)[8],=NP4NQ(5)[8],=NP4SY(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],=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],=WH6DUV(5)[8],=WH6DXT(5)[8], - =WH6EFI(5)[8],=WH6EIK(5)[8],=WH6EKW(5)[8],=WH6ELG(5)[8],=WH6ELM(5)[8],=WH6ETE(5)[8],=WH6ETH(5)[8], - =WH6EUA(5)[8],=WH6HA(5)[8],=WH6IF(5)[8],=WH6IZ(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],=WH6ZF(5)[8],=WH7GD(5)[8], - =WH7HX(5)[8],=WH7XK(5)[8],=WH7XU(5)[8],=WH7YL(5)[8],=WH7YV(5)[8],=WH9AAF(5)[8],=WL7AUL(5)[8], - =WL7AX(5)[8],=WL7BAL(5)[8],=WL7CHA(5)[8],=WL7CIB(5)[8],=WL7CKJ(5)[8],=WL7COL(5)[8],=WL7CQT(5)[8], - =WL7CUY(5)[8],=WL7E/4(5)[8],=WL7GV(5)[8],=WL7SR(5)[8],=WL7UN(5)[8],=WL7WN(5)[8],=WL7YX(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],=WP3GI(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],=WP3TQ(5)[8],=WP4AIE(5)[8],=WP4AIL(5)[8], - =WP4AIZ(5)[8],=WP4ALH(5)[8],=WP4AQK(5)[8],=WP4B(5)[8],=WP4BFP(5)[8],=WP4BGM(5)[8],=WP4BIN(5)[8], - =WP4BJS(5)[8],=WP4BK(5)[8],=WP4BQV(5)[8],=WP4BXS(5)[8],=WP4CLS(5)[8],=WP4CMH(5)[8],=WP4DC(5)[8], - =WP4DCB(5)[8],=WP4DNE(5)[8],=WP4DPX(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],=WP4HNN(5)[8],=WP4HOX(5)[8],=WP4IJ(5)[8], - =WP4JKO(5)[8],=WP4JQJ(5)[8],=WP4JSR(5)[8],=WP4KDH(5)[8],=WP4KFP(5)[8],=WP4KGI(5)[8],=WP4KI(5)[8], - =WP4KJV(5)[8],=WP4KSK(5)[8],=WP4KTD(5)[8],=WP4LAN(5)[8],=WP4LBK(5)[8],=WP4LDG(5)[8],=WP4LDL(5)[8], - =WP4LDP(5)[8],=WP4LHA(5)[8],=WP4MD(5)[8],=WP4MO(5)[8],=WP4MQF(5)[8],=WP4MWE(5)[8],=WP4MYG(5)[8], - =WP4MYK(5)[8],=WP4NAI(5)[8],=WP4NBF(5)[8],=WP4NBG(5)[8],=WP4NFU(5)[8],=WP4NQA(5)[8],=WP4NVL(5)[8], - =WP4NWW(5)[8],=WP4O/4(5)[8],=WP4O/M(5)[8],=WP4OFA(5)[8],=WP4OLM(5)[8],=WP4OMG(5)[8],=WP4OMV(5)[8], - =WP4ONR(5)[8],=WP4OPD(5)[8],=WP4OPF(5)[8],=WP4OTP(5)[8],=WP4PR(5)[8],=WP4SW(5)[8],=WP4TD(5)[8], - =WP4TX(5)[8], + =NP2IJ(5)[8],=NP2IS(5)[8],=NP2IW(5)[8],=NP2IX(5)[8],=NP2JA(5)[8],=NP2JS(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], + =NP2PA(5)[8],=NP2R(5)[8],=NP2T(5)[8],=NP2W(5)[8],=NP3BL(5)[8],=NP3CC(5)[8],=NP3CI(5)[8], + =NP3CM(5)[8],=NP3CT(5)[8],=NP3DI(5)[8],=NP3FR(5)[8],=NP3G(5)[8],=NP3HD(5)[8],=NP3HP(5)[8], + =NP3HU(5)[8],=NP3IL(5)[8],=NP3IU(5)[8],=NP3K(5)[8],=NP3MM(5)[8],=NP3MX(5)[8],=NP3QT(5)[8], + =NP3R(5)[8],=NP3ST(5)[8],=NP3VJ(5)[8],=NP4AS(5)[8],=NP4AV(5)[8],=NP4CC(5)[8],=NP4CK(5)[8], + =NP4CV(5)[8],=NP4GH(5)[8],=NP4GW(5)[8],=NP4J(5)[8],=NP4KV(5)[8],=NP4ND(5)[8],=NP4NQ(5)[8], + =NP4SY(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],=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], + =WH6DUV(5)[8],=WH6DXT(5)[8],=WH6EFI(5)[8],=WH6EIK(5)[8],=WH6EKW(5)[8],=WH6ELG(5)[8],=WH6ELM(5)[8], + =WH6ETE(5)[8],=WH6ETH(5)[8],=WH6EUA(5)[8],=WH6HA(5)[8],=WH6IF(5)[8],=WH6IZ(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],=WH6ZF(5)[8],=WH7GD(5)[8],=WH7HX(5)[8],=WH7XK(5)[8],=WH7XU(5)[8],=WH7YL(5)[8], + =WH7YV(5)[8],=WH9AAF(5)[8],=WL7AUL(5)[8],=WL7AX(5)[8],=WL7BAL(5)[8],=WL7CHA(5)[8],=WL7CIB(5)[8], + =WL7CKJ(5)[8],=WL7COL(5)[8],=WL7CQT(5)[8],=WL7CUY(5)[8],=WL7E/4(5)[8],=WL7GV(5)[8],=WL7SR(5)[8], + =WL7UN(5)[8],=WL7WN(5)[8],=WL7YX(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],=WP3GI(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], + =WP3TQ(5)[8],=WP3ZA(5)[8],=WP4AIE(5)[8],=WP4AIL(5)[8],=WP4AIZ(5)[8],=WP4ALH(5)[8],=WP4AQK(5)[8], + =WP4B(5)[8],=WP4BFP(5)[8],=WP4BGM(5)[8],=WP4BIN(5)[8],=WP4BJS(5)[8],=WP4BK(5)[8],=WP4BQV(5)[8], + =WP4BXS(5)[8],=WP4CLS(5)[8],=WP4CMH(5)[8],=WP4DC(5)[8],=WP4DCB(5)[8],=WP4DNE(5)[8],=WP4DPX(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],=WP4HNN(5)[8],=WP4HOX(5)[8],=WP4IJ(5)[8],=WP4JKO(5)[8],=WP4JQJ(5)[8],=WP4JSR(5)[8], + =WP4KDH(5)[8],=WP4KFP(5)[8],=WP4KGI(5)[8],=WP4KI(5)[8],=WP4KJV(5)[8],=WP4KSK(5)[8],=WP4KTD(5)[8], + =WP4LAN(5)[8],=WP4LBK(5)[8],=WP4LDG(5)[8],=WP4LDL(5)[8],=WP4LDP(5)[8],=WP4LHA(5)[8],=WP4MD(5)[8], + =WP4MO(5)[8],=WP4MQF(5)[8],=WP4MWE(5)[8],=WP4MYG(5)[8],=WP4MYK(5)[8],=WP4NAI(5)[8],=WP4NBF(5)[8], + =WP4NBG(5)[8],=WP4NFU(5)[8],=WP4NKU(5)[8],=WP4NQA(5)[8],=WP4NVL(5)[8],=WP4NWW(5)[8],=WP4O/4(5)[8], + =WP4O/M(5)[8],=WP4ODR(5)[8],=WP4OFA(5)[8],=WP4OLM(5)[8],=WP4OMG(5)[8],=WP4OMV(5)[8],=WP4ONR(5)[8], + =WP4OPD(5)[8],=WP4OPF(5)[8],=WP4OTP(5)[8],=WP4PR(5)[8],=WP4SW(5)[8],=WP4TD(5)[8],=WP4TX(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], @@ -1278,12 +1281,12 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =WH6BYP(4)[7],=WH6CDU(4)[7],=WH6CUL(4)[7],=WH6ECJ(4)[7],=WH6EMW(4)[7],=WH6EOF(4)[7],=WH6ERS(4)[7], =WH6EXQ(4)[7],=WH6FAD(4)[7],=WH6FZ/5(4)[7],=WH6L(4)[7],=WH6L/5(4)[7],=WH6ZR(4)[7],=WH7DC(4)[7], =WH7DW(4)[7],=WH7OK(4)[7],=WH7R(4)[7],=WH7YQ(4)[7],=WH7YR(4)[7],=WL7AIU(4)[7],=WL7AWC(4)[7], - =WL7BKF(4)[7],=WL7BPY(4)[7],=WL7CA(4)[7],=WL7CJA(4)[7],=WL7CJC(4)[7],=WL7CQE(4)[7],=WL7CTQ(4)[7], - =WL7D(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],=WL7XI(4)[7],=WL7XR(4)[7],=WP2AHG(4)[7],=WP2WP(4)[7], - =WP3AL(4)[7],=WP4A(4)[7],=WP4APJ(4)[7],=WP4BAB(4)[7],=WP4BAT(4)[7],=WP4CJY(4)[7],=WP4EVA(4)[7], - =WP4EVL(4)[7],=WP4KSP(4)[7],=WP4KTF(4)[7],=WP4LKA(4)[7],=WP4MJP(4)[7],=WP4MWS(4)[7],=WP4MYI(4)[7], - =WP4MZR(4)[7],=WP4NAK(4)[7],=WP4NEP(4)[7],=WP4NQL(4)[7],=WP4OUE(4)[7],=WP4RON(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],=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],=WL7XI(4)[7],=WL7XR(4)[7],=WP2AHG(4)[7], + =WP2WP(4)[7],=WP3AL(4)[7],=WP4A(4)[7],=WP4APJ(4)[7],=WP4BAB(4)[7],=WP4BAT(4)[7],=WP4CJY(4)[7], + =WP4EVA(4)[7],=WP4EVL(4)[7],=WP4KSP(4)[7],=WP4KTF(4)[7],=WP4LKA(4)[7],=WP4MJP(4)[7],=WP4MWS(4)[7], + =WP4MYI(4)[7],=WP4MZR(4)[7],=WP4NAK(4)[7],=WP4NEP(4)[7],=WP4NQL(4)[7],=WP4OUE(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], AK6(3)[6],K6(3)[6],KA6(3)[6],KB6(3)[6],KC6(3)[6],KD6(3)[6],KE6(3)[6],KF6(3)[6],KG6(3)[6], KI6(3)[6],KJ6(3)[6],KK6(3)[6],KM6(3)[6],KN6(3)[6],KO6(3)[6],KQ6(3)[6],KR6(3)[6],KS6(3)[6], @@ -1326,13 +1329,13 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =WH6CIL(3)[6],=WH6CK(3)[6],=WH6CO(3)[6],=WH6CPO(3)[6],=WH6CRE(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],=WH6DX(3)[6],=WH6DYA(3)[6],=WH6DZV(3)[6],=WH6DZY(3)[6], - =WH6EEZ(3)[6],=WH6EHY(3)[6],=WH6EKB(3)[6],=WH6EUH(3)[6],=WH6EZW(3)[6],=WH6I(3)[6],=WH6JO(3)[6], - =WH6LZ(3)[6],=WH6OI(3)[6],=WH6PX(3)[6],=WH6RF(3)[6],=WH6TD(3)[6],=WH6TK(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],=WH7IV(3)[6],=WH7LP(3)[6],=WH7OO(3)[6],=WH7RU(3)[6],=WH7VM(3)[6],=WH7XR(3)[6], - =WL3AF(3)[6],=WL3DZ(3)[6],=WL7ACO(3)[6],=WL7BA(3)[6],=WL7BGF(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],=WP4CUJ(3)[6], - =WP4CW(3)[6],=WP4KSU(3)[6],=WP4MVE(3)[6], + =WH6EAR(3)[6],=WH6EEZ(3)[6],=WH6EHY(3)[6],=WH6EKB(3)[6],=WH6EUH(3)[6],=WH6EZW(3)[6],=WH6JO(3)[6], + =WH6LZ(3)[6],=WH6OI(3)[6],=WH6PX(3)[6],=WH6QA(3)[6],=WH6RF(3)[6],=WH6TD(3)[6],=WH6TK(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],=WH7IV(3)[6],=WH7LP(3)[6],=WH7OO(3)[6],=WH7RU(3)[6],=WH7VM(3)[6], + =WH7XR(3)[6],=WL3AF(3)[6],=WL3DZ(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],=WP4CUJ(3)[6],=WP4CW(3)[6],=WP4KSU(3)[6],=WP4MVE(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], @@ -1344,83 +1347,85 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: WQ7(3)[6],WR7(3)[6],WS7(3)[6],WT7(3)[6],WU7(3)[6],WV7(3)[6],WW7(3)[6],WX7(3)[6],WY7(3)[6], WZ7(3)[6],=AH0AB(3)[6],=AH0CN(3)[6],=AH0W(3)[6],=AH0W/7(3)[6],=AH2A(3)[6],=AH2AK(3)[6], =AH2DP(3)[6],=AH2DS(3)[6],=AH2S(3)[6],=AH6B/7(3)[6],=AH6D(3)[6],=AH6ET(3)[6],=AH6EZ(3)[6], - =AH6FC/7(3)[6],=AH6GA(3)[6],=AH6HS(3)[6],=AH6I(3)[6],=AH6IP(3)[6],=AH6LE(3)[6],=AH6LE/7(3)[6], - =AH6NR(3)[6],=AH6OD(3)[6],=AH6PJ(3)[6],=AH6RI/7(3)[6],=AH6Y(3)[6],=AH7MP(3)[6],=AH8AC(3)[6], - =AH8DX(3)[6],=AH8K(3)[6],=AH9A(3)[6],=AH9AC(3)[6],=AH9C(3)[6],=AL0AA(3)[6],=AL0F(3)[6], - =AL0H(3)[6],=AL0X(3)[6],=AL1N(3)[6],=AL1P(3)[6],=AL1V(3)[6],=AL1VE(3)[6],=AL2B(3)[6],=AL2N(3)[6], - =AL4Q/7(3)[6],=AL5B(3)[6],=AL5W(3)[6],=AL7A(3)[6],=AL7AA(3)[6],=AL7AN(3)[6],=AL7AW(3)[6], - =AL7BN(3)[6],=AL7BQ(3)[6],=AL7CC(3)[6],=AL7CM/7(3)[6],=AL7CR(3)[6],=AL7CS(3)[6],=AL7D(3)[6], - =AL7D/7(3)[6],=AL7D/P(3)[6],=AL7D/R(3)[6],=AL7DD(3)[6],=AL7DU(3)[6],=AL7EI(3)[6],=AL7HS(3)[6], - =AL7HY(3)[6],=AL7JF(3)[6],=AL7JJ(3)[6],=AL7JW(3)[6],=AL7JY(3)[6],=AL7KE(3)[6],=AL7KF(3)[6], - =AL7KL(3)[6],=AL7KV(3)[6],=AL7L/7(3)[6],=AL7MH(3)[6],=AL7MQ(3)[6],=AL7ND(3)[6],=AL7NK(3)[6], - =AL7NZ(3)[6],=AL7OW(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],=AL7W(3)[6],=G4KHG/M(3)[6],=KH0AS(3)[6],=KH0H(3)[6],=KH0K(3)[6], - =KH0X(3)[6],=KH2CH(3)[6],=KH2G(3)[6],=KH2JA(3)[6],=KH2QH(3)[6],=KH2SK(3)[6],=KH2SR(3)[6], - =KH2TJ/7(3)[6],=KH2TJ/P(3)[6],=KH2XP(3)[6],=KH3AD(3)[6],=KH3AE(3)[6],=KH6AB(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],=KH6GB(3)[6], - =KH6GDN(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],=KH6JUQ(3)[6],=KH6KS(3)[6],=KH6KW(3)[6],=KH6LEM(3)[6],=KH6ME(3)[6],=KH6MF(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],=KH6SS(3)[6],=KH6TG(3)[6],=KH6TX(3)[6], - =KH6VM(3)[6],=KH6WX(3)[6],=KH6XG(3)[6],=KH6XS(3)[6],=KH6XT(3)[6],=KH6YL(3)[6],=KH7CB(3)[6], - =KH7CM(3)[6],=KH7FJ(3)[6],=KH7HH(3)[6],=KH7HWK(3)[6],=KH7IP(3)[6],=KH7ME(3)[6],=KH7NP(3)[6], - =KH7R(3)[6],=KH7SQ(3)[6],=KH7SR(3)[6],=KH7WW(3)[6],=KH7WW/7(3)[6],=KH7YD(3)[6],=KH7YD/7(3)[6], - =KH8AZ(3)[6],=KH8BG(3)[6],=KH8D(3)[6],=KH8E(3)[6],=KH9AA(3)[6],=KL0AN(3)[6],=KL0AP(3)[6], - =KL0CM(3)[6],=KL0DF(3)[6],=KL0DG(3)[6],=KL0DR(3)[6],=KL0DT(3)[6],=KL0IR(3)[6],=KL0IS(3)[6], - =KL0IX(3)[6],=KL0MO(3)[6],=KL0NM(3)[6],=KL0RA(3)[6],=KL0SZ(3)[6],=KL0TR(3)[6],=KL0TU(3)[6], - =KL1AA(3)[6],=KL1AE(3)[6],=KL1DO(3)[6],=KL1DW(3)[6],=KL1ED(3)[6],=KL1K(3)[6],=KL1LE(3)[6], - =KL1LZ(3)[6],=KL1MF(3)[6],=KL1OH(3)[6],=KL1QL(3)[6],=KL1RH(3)[6],=KL1RV(3)[6],=KL1SF/7(3)[6], - =KL1SO(3)[6],=KL1U(3)[6],=KL1UA(3)[6],=KL1UM(3)[6],=KL1XI(3)[6],=KL1YO(3)[6],=KL1YY/7(3)[6], - =KL1ZG(3)[6],=KL1ZP(3)[6],=KL1ZR(3)[6],=KL2A/7(3)[6],=KL2BG(3)[6],=KL2BO(3)[6],=KL2BW(3)[6], - =KL2BY(3)[6],=KL2BZ(3)[6],=KL2FD(3)[6],=KL2FL(3)[6],=KL2K(3)[6],=KL2KY(3)[6],=KL2LA(3)[6], - =KL2LN(3)[6],=KL2LT(3)[6],=KL2MP(3)[6],=KL2NJ(3)[6],=KL2NW(3)[6],=KL2OH(3)[6],=KL2OJ(3)[6], - =KL2P(3)[6],=KL2PS(3)[6],=KL2VK(3)[6],=KL2YH(3)[6],=KL3EZ(3)[6],=KL3FE(3)[6],=KL3IC(3)[6], - =KL3IO(3)[6],=KL3IW(3)[6],=KL3MZ(3)[6],=KL3NE(3)[6],=KL3NO(3)[6],=KL3OQ(3)[6],=KL3PD(3)[6], - =KL3TW(3)[6],=KL3VJ(3)[6],=KL3XS(3)[6],=KL4BS(3)[6],=KL4YFD(3)[6],=KL7AB(3)[6],=KL7AD(3)[6], - =KL7AW(3)[6],=KL7BD(3)[6],=KL7BDC(3)[6],=KL7BR(3)[6],=KL7BS(3)[6],=KL7BXP(3)[6],=KL7C(3)[6], - =KL7CPO(3)[6],=KL7CT(3)[6],=KL7DC(3)[6],=KL7DF(3)[6],=KL7DLG(3)[6],=KL7DYS(3)[6],=KL7EH(3)[6], - =KL7EIN(3)[6],=KL7EU(3)[6],=KL7FDQ(3)[6],=KL7FDQ/7(3)[6],=KL7FOZ(3)[6],=KL7FS(3)[6],=KL7GA(3)[6], - =KL7GKY(3)[6],=KL7GRF(3)[6],=KL7GT(3)[6],=KL7HB(3)[6],=KL7HFV(3)[6],=KL7HI(3)[6],=KL7HJR(3)[6], - =KL7HLF(3)[6],=KL7HM(3)[6],=KL7HMK(3)[6],=KL7HQL(3)[6],=KL7IAL(3)[6],=KL7IBT(3)[6],=KL7IDY(3)[6], - =KL7IGB(3)[6],=KL7IHK(3)[6],=KL7IIK(3)[6],=KL7IKV(3)[6],=KL7IL(3)[6],=KL7IPV(3)[6],=KL7ISE(3)[6], - =KL7IUX(3)[6],=KL7IWC/7(3)[6],=KL7IZC(3)[6],=KL7JDQ(3)[6],=KL7JES(3)[6],=KL7JGS/M(3)[6], - =KL7JIJ(3)[6],=KL7JJE(3)[6],=KL7KA(3)[6],=KL7KG/7(3)[6],=KL7LG(3)[6],=KL7LX(3)[6],=KL7LZ(3)[6], - =KL7M(3)[6],=KL7MY(3)[6],=KL7MZ(3)[6],=KL7NA(3)[6],=KL7NP(3)[6],=KL7OA(3)[6],=KL7OF(3)[6], - =KL7OL(3)[6],=KL7OR(3)[6],=KL7OR/7(3)[6],=KL7OS(3)[6],=KL7OY(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],=KL7VL(3)[6],=KL7VN(3)[6],=KL7VQ(3)[6],=KL7W(3)[6], - =KL7WM(3)[6],=KL7WP(3)[6],=KL7WP/7(3)[6],=KL7WT(3)[6],=KL7YY/M(3)[6],=KL7ZH(3)[6],=KL7ZW(3)[6], - =KL8RV(3)[6],=KL8SU(3)[6],=KP2BX(3)[6],=KP2CB(3)[6],=KP2CT(3)[6],=KP2X(3)[6],=KP2Y(3)[6], - =KP4BBN(3)[6],=KP4DJT(3)[6],=KP4ND(3)[6],=KP4UZ(3)[6],=KP4X(3)[6],=NH0F(3)[6],=NH2JE(3)[6], - =NH2KR(3)[6],=NH6B(3)[6],=NH6BF(3)[6],=NH6CF(3)[6],=NH6CI(3)[6],=NH6DQ(3)[6],=NH6DX(3)[6], - =NH6FF(3)[6],=NH6GZ(3)[6],=NH6HZ(3)[6],=NH6LM(3)[6],=NH6NS(3)[6],=NH6U(3)[6],=NH6Z(3)[6], - =NH6ZA(3)[6],=NH6ZE(3)[6],=NH7FZ(3)[6],=NH7M(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],=NH7WT(3)[6], - =NH7WU(3)[6],=NH7YE(3)[6],=NH7YI(3)[6],=NL5L(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],=NL7GO(3)[6],=NL7GW(3)[6], - =NL7HK(3)[6],=NL7HQ(3)[6],=NL7HU(3)[6],=NL7IN(3)[6],=NL7JJ(3)[6],=NL7JN(3)[6],=NL7MT(3)[6], - =NL7NL(3)[6],=NL7OF(3)[6],=NL7QI(3)[6],=NL7TK(3)[6],=NL7UE(3)[6],=NL7US(3)[6],=NL7WD(3)[6], - =NL7WJ(3)[6],=NL7XX(3)[6],=NL7ZM(3)[6],=NL7ZN(3)[6],=NL7ZP(3)[6],=NP2CT(3)[6],=NP2X/7(3)[6], - =NP4AI/M(3)[6],=NP4ES(3)[6],=NP4FP(3)[6],=NP4I(3)[6],=NP4JV(3)[6],=VA2GLB/P(3)[6],=WH0AAM(3)[6], - =WH0J(3)[6],=WH2ACV(3)[6],=WH2AJF(3)[6],=WH6ARU(3)[6],=WH6B(3)[6],=WH6BDR(3)[6],=WH6BLM(3)[6], - =WH6BPU(3)[6],=WH6CF(3)[6],=WH6CMS(3)[6],=WH6CN(3)[6],=WH6CUS(3)[6],=WH6CWD(3)[6],=WH6CXB(3)[6], - =WH6CXE(3)[6],=WH6CYB(3)[6],=WH6CZ(3)[6],=WH6DAY(3)[6],=WH6DJO(3)[6],=WH6DKC(3)[6],=WH6DLQ(3)[6], - =WH6DMP(3)[6],=WH6DQ(3)[6],=WH6DST(3)[6],=WH6EEC(3)[6],=WH6EEG(3)[6],=WH6EHW(3)[6],=WH6EJV(3)[6], - =WH6EQB(3)[6],=WH6ESS(3)[6],=WH6ETO(3)[6],=WH6EWE(3)[6],=WH6FL(3)[6],=WH6ME(3)[6],=WH6OL(3)[6], + =AH6FC/7(3)[6],=AH6GA(3)[6],=AH6HS(3)[6],=AH6HX(3)[6],=AH6I(3)[6],=AH6IP(3)[6],=AH6LE(3)[6], + =AH6LE/7(3)[6],=AH6NR(3)[6],=AH6OD(3)[6],=AH6PJ(3)[6],=AH6RI/7(3)[6],=AH6Y(3)[6],=AH7MP(3)[6], + =AH8AC(3)[6],=AH8DX(3)[6],=AH8K(3)[6],=AH9A(3)[6],=AH9AC(3)[6],=AH9C(3)[6],=AL0AA(3)[6], + =AL0F(3)[6],=AL0H(3)[6],=AL0X(3)[6],=AL1N(3)[6],=AL1P(3)[6],=AL1V(3)[6],=AL1VE(3)[6],=AL2B(3)[6], + =AL2N(3)[6],=AL4Q/7(3)[6],=AL5B(3)[6],=AL5W(3)[6],=AL7A(3)[6],=AL7AA(3)[6],=AL7AN(3)[6], + =AL7AW(3)[6],=AL7BN(3)[6],=AL7BQ(3)[6],=AL7CC(3)[6],=AL7CM/7(3)[6],=AL7CR(3)[6],=AL7CS(3)[6], + =AL7D(3)[6],=AL7D/7(3)[6],=AL7D/P(3)[6],=AL7D/R(3)[6],=AL7DD(3)[6],=AL7DU(3)[6],=AL7EI(3)[6], + =AL7HS(3)[6],=AL7HY(3)[6],=AL7IG(3)[6],=AL7JF(3)[6],=AL7JJ(3)[6],=AL7JW(3)[6],=AL7JY(3)[6], + =AL7KE(3)[6],=AL7KF(3)[6],=AL7KK(3)[6],=AL7KL(3)[6],=AL7KV(3)[6],=AL7L/7(3)[6],=AL7MH(3)[6], + =AL7MQ(3)[6],=AL7ND(3)[6],=AL7NK(3)[6],=AL7NZ(3)[6],=AL7OW(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],=AL7W(3)[6],=G4KHG/M(3)[6], + =KH0AS(3)[6],=KH0H(3)[6],=KH0K(3)[6],=KH0X(3)[6],=KH2CH(3)[6],=KH2G(3)[6],=KH2JA(3)[6], + =KH2QH(3)[6],=KH2SK(3)[6],=KH2SR(3)[6],=KH2TJ/7(3)[6],=KH2TJ/P(3)[6],=KH2XP(3)[6],=KH3AD(3)[6], + =KH3AE(3)[6],=KH6AB(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],=KH6GB(3)[6],=KH6GDN(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],=KH6JUQ(3)[6],=KH6KS(3)[6],=KH6KW(3)[6],=KH6LEM(3)[6], + =KH6ME(3)[6],=KH6MF(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],=KH6SS(3)[6], + =KH6TG(3)[6],=KH6TX(3)[6],=KH6VM(3)[6],=KH6WX(3)[6],=KH6XG(3)[6],=KH6XS(3)[6],=KH6XT(3)[6], + =KH6YL(3)[6],=KH7CB(3)[6],=KH7CM(3)[6],=KH7FJ(3)[6],=KH7HH(3)[6],=KH7HWK(3)[6],=KH7IP(3)[6], + =KH7ME(3)[6],=KH7NP(3)[6],=KH7R(3)[6],=KH7SQ(3)[6],=KH7SR(3)[6],=KH7WW(3)[6],=KH7WW/7(3)[6], + =KH7YD(3)[6],=KH7YD/7(3)[6],=KH8AZ(3)[6],=KH8BG(3)[6],=KH8D(3)[6],=KH8E(3)[6],=KH9AA(3)[6], + =KL0AN(3)[6],=KL0AP(3)[6],=KL0CM(3)[6],=KL0CW(3)[6],=KL0DF(3)[6],=KL0DG(3)[6],=KL0DR(3)[6], + =KL0DT(3)[6],=KL0IR(3)[6],=KL0IS(3)[6],=KL0IX(3)[6],=KL0MO(3)[6],=KL0NM(3)[6],=KL0RA(3)[6], + =KL0SZ(3)[6],=KL0TR(3)[6],=KL0TU(3)[6],=KL1AA(3)[6],=KL1AE(3)[6],=KL1DO(3)[6],=KL1DW(3)[6], + =KL1ED(3)[6],=KL1K(3)[6],=KL1LE(3)[6],=KL1LZ(3)[6],=KL1MF(3)[6],=KL1OH(3)[6],=KL1QL(3)[6], + =KL1RH(3)[6],=KL1RV(3)[6],=KL1SF/7(3)[6],=KL1SO(3)[6],=KL1U(3)[6],=KL1UA(3)[6],=KL1UM(3)[6], + =KL1XI(3)[6],=KL1YO(3)[6],=KL1YY/7(3)[6],=KL1ZG(3)[6],=KL1ZP(3)[6],=KL1ZR(3)[6],=KL2A/7(3)[6], + =KL2BG(3)[6],=KL2BO(3)[6],=KL2BW(3)[6],=KL2BY(3)[6],=KL2BZ(3)[6],=KL2FD(3)[6],=KL2FL(3)[6], + =KL2K(3)[6],=KL2KY(3)[6],=KL2LA(3)[6],=KL2LN(3)[6],=KL2LT(3)[6],=KL2MP(3)[6],=KL2NJ(3)[6], + =KL2NW(3)[6],=KL2OH(3)[6],=KL2OJ(3)[6],=KL2P(3)[6],=KL2PS(3)[6],=KL2VK(3)[6],=KL2YH(3)[6], + =KL3EZ(3)[6],=KL3FE(3)[6],=KL3IC(3)[6],=KL3IO(3)[6],=KL3IW(3)[6],=KL3MZ(3)[6],=KL3NE(3)[6], + =KL3NO(3)[6],=KL3OQ(3)[6],=KL3PD(3)[6],=KL3TW(3)[6],=KL3VJ(3)[6],=KL3XS(3)[6],=KL4BS(3)[6], + =KL4YFD(3)[6],=KL7AB(3)[6],=KL7AD(3)[6],=KL7AW(3)[6],=KL7BD(3)[6],=KL7BDC(3)[6],=KL7BR(3)[6], + =KL7BS(3)[6],=KL7BXP(3)[6],=KL7C(3)[6],=KL7CPO(3)[6],=KL7CT(3)[6],=KL7DC(3)[6],=KL7DF(3)[6], + =KL7DLG(3)[6],=KL7DYS(3)[6],=KL7EH(3)[6],=KL7EIN(3)[6],=KL7EU(3)[6],=KL7FDQ(3)[6],=KL7FDQ/7(3)[6], + =KL7FOZ(3)[6],=KL7FS(3)[6],=KL7GA(3)[6],=KL7GKY(3)[6],=KL7GRF(3)[6],=KL7GT(3)[6],=KL7HB(3)[6], + =KL7HFV(3)[6],=KL7HI(3)[6],=KL7HJR(3)[6],=KL7HLF(3)[6],=KL7HM(3)[6],=KL7HMK(3)[6],=KL7HQL(3)[6], + =KL7IAL(3)[6],=KL7IBT(3)[6],=KL7IDY(3)[6],=KL7IGB(3)[6],=KL7IHK(3)[6],=KL7IIK(3)[6],=KL7IKV(3)[6], + =KL7IL(3)[6],=KL7IPV(3)[6],=KL7ISE(3)[6],=KL7IUX(3)[6],=KL7IWC/7(3)[6],=KL7IZC(3)[6], + =KL7JDQ(3)[6],=KL7JES(3)[6],=KL7JGS/M(3)[6],=KL7JIJ(3)[6],=KL7JJE(3)[6],=KL7KA(3)[6], + =KL7KG/7(3)[6],=KL7LG(3)[6],=KL7LX(3)[6],=KL7LZ(3)[6],=KL7M(3)[6],=KL7MY(3)[6],=KL7MZ(3)[6], + =KL7NA(3)[6],=KL7NP(3)[6],=KL7OA(3)[6],=KL7OF(3)[6],=KL7OL(3)[6],=KL7OR(3)[6],=KL7OR/7(3)[6], + =KL7OS(3)[6],=KL7OY(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],=KL7WM(3)[6],=KL7WP(3)[6], + =KL7WP/7(3)[6],=KL7WT(3)[6],=KL7YY/M(3)[6],=KL7ZH(3)[6],=KL7ZW(3)[6],=KL8RV(3)[6],=KL8SU(3)[6], + =KP2BX(3)[6],=KP2CB(3)[6],=KP2CT(3)[6],=KP2X(3)[6],=KP2Y(3)[6],=KP4BBN(3)[6],=KP4DJT(3)[6], + =KP4ND(3)[6],=KP4UZ(3)[6],=KP4X(3)[6],=NH0F(3)[6],=NH2JE(3)[6],=NH2KR(3)[6],=NH6B(3)[6], + =NH6BF(3)[6],=NH6CF(3)[6],=NH6CI(3)[6],=NH6DQ(3)[6],=NH6DX(3)[6],=NH6FF(3)[6],=NH6GZ(3)[6], + =NH6HZ(3)[6],=NH6LM(3)[6],=NH6NS(3)[6],=NH6U(3)[6],=NH6Z(3)[6],=NH6ZA(3)[6],=NH6ZE(3)[6], + =NH7FZ(3)[6],=NH7M(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],=NH7WT(3)[6],=NH7WU(3)[6],=NH7YE(3)[6], + =NH7YI(3)[6],=NL5L(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],=NL7GO(3)[6],=NL7GW(3)[6],=NL7HK(3)[6],=NL7HQ(3)[6], + =NL7HU(3)[6],=NL7IN(3)[6],=NL7JJ(3)[6],=NL7JN(3)[6],=NL7MT(3)[6],=NL7NL(3)[6],=NL7OF(3)[6], + =NL7QI(3)[6],=NL7TK(3)[6],=NL7UE(3)[6],=NL7US(3)[6],=NL7WD(3)[6],=NL7WJ(3)[6],=NL7XX(3)[6], + =NL7ZM(3)[6],=NL7ZN(3)[6],=NL7ZP(3)[6],=NP2CT(3)[6],=NP2X/7(3)[6],=NP4AI/M(3)[6],=NP4ES(3)[6], + =NP4FP(3)[6],=NP4I(3)[6],=NP4JV(3)[6],=VA2GLB/P(3)[6],=WH0AAM(3)[6],=WH0J(3)[6],=WH2ACV(3)[6], + =WH2AJF(3)[6],=WH6ARU(3)[6],=WH6B(3)[6],=WH6BDR(3)[6],=WH6BLM(3)[6],=WH6BPU(3)[6],=WH6CF(3)[6], + =WH6CMS(3)[6],=WH6CN(3)[6],=WH6CUS(3)[6],=WH6CWD(3)[6],=WH6CXB(3)[6],=WH6CXE(3)[6],=WH6CXN(3)[6], + =WH6CYB(3)[6],=WH6CZ(3)[6],=WH6DAY(3)[6],=WH6DJO(3)[6],=WH6DKC(3)[6],=WH6DLQ(3)[6],=WH6DMP(3)[6], + =WH6DQ(3)[6],=WH6DST(3)[6],=WH6EEC(3)[6],=WH6EEG(3)[6],=WH6EHW(3)[6],=WH6EJV(3)[6],=WH6EQB(3)[6], + =WH6ESS(3)[6],=WH6ETO(3)[6],=WH6EWE(3)[6],=WH6FL(3)[6],=WH6FOJ(3)[6],=WH6ME(3)[6],=WH6OL(3)[6], =WH6OY(3)[6],=WH6QV(3)[6],=WH6SD(3)[6],=WH6SR(3)[6],=WH6TI(3)[6],=WH6XV(3)[6],=WH6YT(3)[6], =WH6ZV(3)[6],=WH7A(3)[6],=WH7CY(3)[6],=WH7DB(3)[6],=WH7DE(3)[6],=WH7G(3)[6],=WH7GC(3)[6], =WH7GY(3)[6],=WH7NS(3)[6],=WH7RG(3)[6],=WH7UP(3)[6],=WH7WP(3)[6],=WH7WT(3)[6],=WH7ZM(3)[6], =WL7AAW(3)[6],=WL7AL(3)[6],=WL7AP(3)[6],=WL7AZG(3)[6],=WL7BLM(3)[6],=WL7BM(3)[6],=WL7BNQ(3)[6], - =WL7BON(3)[6],=WL7BOO(3)[6],=WL7BUJ(3)[6],=WL7CAZ(3)[6],=WL7CBF(3)[6],=WL7CES(3)[6],=WL7COQ(3)[6], - =WL7CPE(3)[6],=WL7CPI(3)[6],=WL7CRJ(3)[6],=WL7CSL(3)[6],=WL7CTB(3)[6],=WL7CTC(3)[6],=WL7CTE(3)[6], - =WL7DD(3)[6],=WL7FA(3)[6],=WL7FU(3)[6],=WL7H(3)[6],=WL7HK(3)[6],=WL7HL(3)[6],=WL7IS(3)[6], - =WL7JM(3)[6],=WL7K(3)[6],=WL7K/7(3)[6],=WL7K/M(3)[6],=WL7LK(3)[6],=WL7OA(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], - =WL7WB(3)[6],=WL7WG(3)[6],=WL7WU(3)[6],=WL7XE(3)[6],=WL7XJ(3)[6],=WL7XN(3)[6],=WL7XW(3)[6], - =WL7Z(3)[6],=WL7ZM(3)[6],=WP4BZG(3)[6],=WP4DYP(3)[6],=WP4KUW(3)[6],=WP4NBP(3)[6], + =WL7BON(3)[6],=WL7BOO(3)[6],=WL7BUJ(3)[6],=WL7BVN(3)[6],=WL7CAZ(3)[6],=WL7CBF(3)[6],=WL7CES(3)[6], + =WL7COQ(3)[6],=WL7CPE(3)[6],=WL7CPI(3)[6],=WL7CRJ(3)[6],=WL7CSL(3)[6],=WL7CTB(3)[6],=WL7CTC(3)[6], + =WL7CTE(3)[6],=WL7DD(3)[6],=WL7FA(3)[6],=WL7FU(3)[6],=WL7H(3)[6],=WL7HK(3)[6],=WL7HL(3)[6], + =WL7IS(3)[6],=WL7JM(3)[6],=WL7K(3)[6],=WL7K/7(3)[6],=WL7K/M(3)[6],=WL7LK(3)[6],=WL7OA(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],=WL7WB(3)[6],=WL7WF(3)[6],=WL7WG(3)[6],=WL7WU(3)[6],=WL7XE(3)[6],=WL7XJ(3)[6], + =WL7XN(3)[6],=WL7XW(3)[6],=WL7Z(3)[6],=WL7ZM(3)[6],=WP4BZG(3)[6],=WP4DYP(3)[6],=WP4KUW(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], @@ -1436,10 +1441,10 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =KL0DN(4)[8],=KL0PD(4)[8],=KL0PE(4)[8],=KL3HQ(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], - =KP4JMP(4)[8],=KP4VZ(4)[8],=KP4ZD(4)[8],=NH6CN(4)[8],=NL7FK(4)[8],=NP2AK(4)[8],=NP2F(4)[8], - =NP3E(4)[8],=VE3ACW/M(4)[8],=WH2U(4)[8],=WH6CYR(4)[8],=WH6E(4)[8],=WH6E/8(4)[8],=WH6EBA(4)[8], - =WH6EJD(4)[8],=WH6TB(4)[8],=WL7AM(4)[8],=WL7BKR(4)[8],=WL7CMV(4)[8],=WL7OS(4)[8],=WL7OT(4)[8], - =WP3KU(4)[8],=WP3S(4)[8],=WP4NAE(4)[8],=WP4NYQ(4)[8],=WP4PLR(4)[8], + =KP4JMP(4)[8],=KP4MAS(4)[8],=KP4VZ(4)[8],=KP4ZD(4)[8],=NH6CN(4)[8],=NL7FK(4)[8],=NP2AK(4)[8], + =NP2F(4)[8],=NP3E(4)[8],=VE3ACW/M(4)[8],=WH2U(4)[8],=WH6CYR(4)[8],=WH6E(4)[8],=WH6E/8(4)[8], + =WH6EBA(4)[8],=WH6EJD(4)[8],=WH6TB(4)[8],=WL7AM(4)[8],=WL7BKR(4)[8],=WL7CMV(4)[8],=WL7OS(4)[8], + =WL7OT(4)[8],=WP3KU(4)[8],=WP3S(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], @@ -1457,19 +1462,20 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =KP4GE(4)[8],=KP4SL(4)[8],=KP4WG(4)[8],=NH2W(4)[8],=NH2W/9(4)[8],=NH7TK(4)[8],=NL7CM(4)[8], =NL7KD(4)[8],=NL7QC(4)[8],=NL7QC/9(4)[8],=NL7RC(4)[8],=NP2AV(4)[8],=NP2GM(4)[8],=NP2L/9(4)[8], =NP2MU(4)[8],=NP3QC(4)[8],=NP4JS(4)[8],=WH0AI(4)[8],=WH2T(4)[8],=WH6FBA(4)[8],=WH6SB(4)[8], - =WL7AIT(4)[8],=WL7CTA(4)[8],=WL7JAN(4)[8],=WL7UU(4)[8],=WP4JSP(4)[8],=WP4KGF(4)[8],=WP4LKY(4)[8], - =WP4LSQ(4)[8],=WP4MQX(4)[8],=WP4MSD(4)[8],=WP4MTN(4)[8],=WP4MVQ(4)[8],=WP4MYL(4)[8],=WP4OCZ(4)[8], + =WL7AIT(4)[8],=WL7CTA(4)[8],=WL7FJ(4)[8],=WL7JAN(4)[8],=WL7UU(4)[8],=WP4JSP(4)[8],=WP4KGF(4)[8], + =WP4LKY(4)[8],=WP4LSQ(4)[8],=WP4MQX(4)[8],=WP4MSD(4)[8],=WP4MTN(4)[8],=WP4MVQ(4)[8],=WP4MYL(4)[8], + =WP4OCZ(4)[8], =AH6ES(4)[8],=AH6HR(4)[8],=AH6HR/4(4)[8],=AH6KB(4)[8],=AL0P(4)[8],=AL4B(4)[8],=AL7CX(4)[8], =AL7EU(4)[8],=AL7MR(4)[8],=AL7QO(4)[8],=KH2AR(4)[8],=KH2AR/4(4)[8],=KH2DN(4)[8],=KH4AF(4)[8], =KH6EO(4)[8],=KH6JQW(4)[8],=KH6OE(4)[8],=KH6SKY(4)[8],=KH6SKY/4(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],=KL2HK(4)[8],=KL2LK(4)[8],=KL2LU(4)[8],=KL3AA(4)[8],=KL3PG(4)[8], - =KL7DT/4(4)[8],=KL7FO/P(4)[8],=KL7GN/M(4)[8],=KL7WW(4)[8],=KL7YT(4)[8],=KL9MEK(4)[8], - =KP4TOM(4)[8],=NH2E(4)[8],=NH7FK(4)[8],=NH7FL(4)[8],=NH7H(4)[8],=NL7OE(4)[8],=NL7YU(4)[8], - =NP4AC(4)[8],=NP4AC/4(4)[8],=WH6BPL(4)[8],=WH6BPL/4(4)[8],=WH6DM(4)[8],=WH6EOG(4)[8],=WL4B(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], + =KL7DT/4(4)[8],=KL7FO/P(4)[8],=KL7GN/M(4)[8],=KL7IUQ(4)[8],=KL7WW(4)[8],=KL7YT(4)[8], + =KL9MEK(4)[8],=KP4TOM(4)[8],=NH2E(4)[8],=NH7FK(4)[8],=NH7FL(4)[8],=NH7H(4)[8],=NL7OE(4)[8], + =NL7YU(4)[8],=NP4AC(4)[8],=NP4AC/4(4)[8],=WH6BPL(4)[8],=WH6BPL/4(4)[8],=WH6DM(4)[8],=WH6EOG(4)[8], + =WL4B(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], =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],=KL0RN(4)[7],=KL1MW(4)[7],=KL1TV(4)[7],=KL7HF(4)[7],=KL7JGS(4)[7],=KL7JM(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], @@ -1479,16 +1485,16 @@ Guantanamo Bay: 08: 11: NA: 20.00: 75.00: 5.0: KG4: KG4,=W1AW/KG4; Mariana Islands: 27: 64: OC: 15.18: -145.72: -10.0: KH0: AH0,KH0,NH0,WH0,=AB2QH,=AB9HF,=AB9OQ,=AD5KT,=AD6YP,=AE6OG,=AF6EO,=AH2U,=AJ6K,=KB5UAB,=KB9LQG, - =KC7SDC,=KC9GQX,=KD7GJX,=KG6GQ,=KG6SB,=KG7DCN,=KH0EN/KT,=KH2GV,=KH2O,=KH2VL,=KL7QOL,=KW2X,=N3QD, - =N6EAX,=N7NVX,=N8CS,=NA1M,=NH2B,=NH2FG,=W1FPU,=W3FM,=W3STX,=W7KFS,=WA6AC,=WE1J,=WH6ZW,=WO2G; + =KC2F,=KC7SDC,=KC9GQX,=KD7GJX,=KG6GQ,=KG6SB,=KG7DCN,=KH0EN/KT,=KH2GV,=KH2O,=KH2VL,=KL7QOL,=KW2X, + =N3QD,=N6EAX,=N7NVX,=N8CS,=NA1M,=NH2B,=NH2FG,=W1FPU,=W3FM,=W3STX,=W7KFS,=WA6AC,=WE1J,=WH6ZW,=WO2G; Baker & Howland Islands: 31: 61: OC: 0.00: 176.00: 12.0: KH1: - AH1,KH1,NH1,WH1,=VERSION; + AH1,KH1,NH1,WH1; Guam: 27: 64: OC: 13.37: -144.70: -10.0: KH2: - AH2,KH2,NH2,WH2,=AC0FG,=AE6QZ,=AH0AX,=AH0S,=AI6ID,=K1IWD,=K5GUA,=K5GUM,=KA0RU,=KA6BEG,=KB7OVT, - =KB7PQU,=KC2OOX,=KD7IRV,=KE6ATM,=KE7GMC,=KE7IPG,=KF5ULC,=KG6AGT,=KG6ARL,=KG6DX,=KG6JDX,=KG6JKR, - =KG6JKT,=KG6TEZ,=KG6TWZ,=KH0C,=KH0DX,=KH0ES,=KH0TF,=KH6KK,=KI4KKH,=KI4KKI,=KJ6KCJ,=KK7AV,=KM4NVB, - =N2MI,=NH0A,=NH0B,=NH7TL,=NH7WC,=NP3EZ,=W0REP,=W5LFA,=W6KV,=W7GVC,=W9MRE,=WA3KNB,=WB7AXZ,=WD6DGS, - =WH0AC; + AH2,KH2,NH2,WH2,=AB2AB,=AC0FG,=AE6QZ,=AH0AX,=AH0S,=AI6ID,=K1IWD,=K5GUA,=K5GUM,=KA0RU,=KA6BEG, + =KB7OVT,=KB7PQU,=KC2OOX,=KD7IRV,=KE6ATM,=KE7GMC,=KE7IPG,=KF5ULC,=KG6AGT,=KG6ARL,=KG6DX,=KG6JDX, + =KG6JKR,=KG6JKT,=KG6TEZ,=KG6TWZ,=KH0C,=KH0DX,=KH0ES,=KH0TF,=KH6KK,=KI4KKH,=KI4KKI,=KJ6KCJ,=KK7AV, + =KM4NVB,=N2MI,=NH0A,=NH0B,=NH7TL,=NH7WC,=NP3EZ,=W0REP,=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: @@ -1497,35 +1503,36 @@ 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,=AB0JM,=AB3WS,=AB6AP,=AB8VQ,=AC4PJ,=AC4TJ,=AC7LR,=AC7N,=AE5LR, - =AE7AE,=AG4FH,=AH0A,=AH0AG,=AH2CN,=AJ0M,=AL3U,=AL7RQ,=K0BAD,=K0OUS,=K1ENT,=K1OWL,=K1RJ,=K1VAN, - =K2FFT,=K2GT,=K3UNS,=K4EVR,=K4UAI,=K4XS,=K4XSS,=K4XV,=K5HQM,=K6AMA,=K6ATF,=K6BEF,=K6CEE,=K6DCH, - =K6FIN,=K6GUY,=K6HI,=K6JAE,=K6RSB,=K7ASH,=K7FAR,=K7FR,=K7NRJ,=K7QAS,=K8EUT,=K9AGI,=K9FD,=K9UBS, - =KA0FOR,=KA0VHP,=KA1ICJ,=KA1YJ,=KA3TUA,=KA4INK,=KA7APU,=KA7RKW,=KA8EBL,=KA8KND,=KB0DJR,=KB0PXK, - =KB0ZKZ,=KB1EUJ,=KB1GC,=KB1PCX,=KB2MRY,=KB3IOC,=KB3OXU,=KB3PJS,=KB5NNY,=KB5OWT,=KB6CNU,=KB6EGA, - =KB7AKH,=KB7EA,=KB7G,=KB7JB,=KB7MEU,=KB7QKJ,=KB7UQH,=KB7UVR,=KB7VUR,=KB7WUP,=KB8SKX,=KC0WQU, - =KC0ZER,=KC1DBY,=KC2GSU,=KC2MIU,=KC2SRW,=KC2YL,=KC2ZSG,=KC2ZSH,=KC2ZSI,=KC3GZT,=KC4HHS,=KC5GAX, - =KC6HOX,=KC6RYQ,=KC6SHT,=KC6SWR,=KC6YIO,=KC7ASJ,=KC7AXX,=KC7DUT,=KC7EJC,=KC7HNC,=KC7I,=KC7IFU, - =KC7JVX,=KC7KAT,=KC7KAW,=KC7KBA,=KC7KHW,=KC7KJT,=KC7LFM,=KC7NZ,=KC7PLG,=KC7VHF,=KC7VWU,=KC7YXO, - =KC8EFI,=KC8EJ,=KC9AUA,=KC9EQS,=KD0MSD,=KD0QLQ,=KD0QLR,=KD0RPD,=KD0WVZ,=KD3FZ,=KD4GW,=KD4ML, - =KD4QWO,=KD5ACN,=KD5BSK,=KD5HDA,=KD5HX,=KD5MQY,=KD6CWF,=KD6EPD,=KD6IPX,=KD6VTU,=KD7HTG,=KD7LMP, - =KD7SME,=KD7SMV,=KD7TZ,=KD7UZG,=KD7WJM,=KE2CX,=KE4RNU,=KE4UXQ,=KE4ZXQ,=KE5CGA,=KE5FJM,=KE6AXN, - =KE6AXP,=KE6AYZ,=KE6CQE,=KE6EDJ,=KE6EVT,=KE6JXO,=KE6RAW,=KE6TFR,=KE6TIS,=KE6TKQ,=KE7FJA,=KE7HEW, - =KE7IZS,=KE7JTX,=KE7KRQ,=KE7MW,=KE7PEQ,=KE7RCT,=KE7UV,=KE7UW,=KF4FQR,=KF4IBW,=KF4JLZ,=KF4OOB, - =KF4URD,=KF5AHW,=KF5LBQ,=KF5MXM,=KF5MXP,=KF6FDG,=KF6IVV,=KF6MQT,=KF6YZR,=KF6ZAL,=KF7GNP,=KF7LRS, - =KF7OJR,=KF7TUU,=KF7VUK,=KG0XR,=KG4HZF,=KG4SGC,=KG4SGV,=KG6DV,=KG6EFD,=KG6HRX,=KG6IGY,=KG6JJP, - =KG6LFX,=KG6MZJ,=KG6NNF,=KG6NQI,=KG6OOB,=KG6RJI,=KG6SDD,=KG6TFI,=KG6WZD,=KG7AYU,=KG7CJI,=KG7CVR, - =KG7EUP,=KH0WJ,=KH2MD,=KH2YI,=KH3AF,=KI4CAU,=KI4HCZ,=KI4NOH,=KI4YAF,=KI6CRL,=KI6DVJ,=KI6EFY, - =KI6FTE,=KI6HBZ,=KI6JEC,=KI6LPT,=KI6NOC,=KI6VYB,=KI6WOJ,=KI6ZRV,=KI7EZG,=KI7OS,=KJ4KND,=KJ4WOI, - =KJ6GYD,=KJ6LAW,=KJ6LAX,=KJ6NZH,=KJ6QQT,=KJ6RGW,=KJ6SKC,=KJ6TJZ,=KK4EEC,=KK4YIT,=KK6BRW,=KK6OMX, - =KK6VJN,=KK6ZQ,=KK6ZZE,=KK7WR,=KL1TP,=KL3FN,=KL7PN,=KL7UB,=KM6BOQ,=KM6RM,=KN6ZU,=KO6KW,=KO6QT, - =KQ6CD,=KU4OY,=KW4JC,=N0CAN,=N0DQD,=N0PJV,=N0RMC,=N0ZSJ,=N1CFD,=N1CNQ,=N1IDP,=N1SHV,=N1YLH,=N2AL, - =N3DJT,=N3HQW,=N3RWD,=N3VDM,=N3ZFY,=N4ZIW,=N5IWF,=N5JKJ,=N6AI,=N6CGA,=N6GOZ,=N6IKX,=N6KB,=N6NCT, - =N6PJQ,=N6QBK,=N6ZAB,=N7AMY,=N7BLC,=N7NYY,=N7ODC,=N7TOF,=N7TSV,=N7WBX,=N7ZHK,=N9CRQ,=N9GFL,=N9SBL, - =NE7SO,=NH2CC,=NH2CD,=NH2CF,=NH2CQ,=NH2CR,=NH2IB,=NH2IF,=NH2II,=NH2IO,=NH2JO,=NH2YL,=NH2Z,=NL7UW, - =NO0H,=NT0DA,=NT4AA,=W0UNI,=W0UNX,=W1BMB,=W4YQS,=W5FJG,=W6CAG,=W6KIT,=W6KPI,=W6MQB,=W6MRJ,=W6NBK, - =W6ROM,=W6SHH,=W7NX,=W7RCR,=W7UEA,=W8JAY,=W8WH,=W9IS,=WA0FUR,=WA0NHD,=WA2AUI,=WA3ZEM,=WA6ECX, - =WA6QDQ,=WA6UVF,=WA7TFE,=WA7ZK,=WB2SQW,=WB4JTT,=WB4MNF,=WB5ZDH,=WB5ZOV,=WB6CVJ,=WB6PJT,=WB6SAA, - =WB7BOR,=WD0FTF,=WD6GHJ,=WD8LIB,=WD8OBO,=WH2Y,=WH7K,=WR1Z,=WU0H,=WV0Z,=WV6K,=WX7G; + =AE7AE,=AG4FH,=AH0A,=AH0AG,=AH2CN,=AJ0M,=AL3U,=AL7RQ,=K0BAD,=K0LUC,=K0OUS,=K1ENT,=K1OWL,=K1RJ, + =K1VAN,=K2FFT,=K2GT,=K3QHP,=K3UNS,=K4EVR,=K4UAI,=K4XS,=K4XSS,=K4XV,=K5HQM,=K5ZAI,=K6AMA,=K6ATF, + =K6BEF,=K6CEE,=K6DCH,=K6FIN,=K6GUY,=K6HI,=K6JAE,=K6RSB,=K7ASH,=K7FAR,=K7FR,=K7NRJ,=K7QAS,=K8EUT, + =K9AGI,=K9FD,=K9UBS,=KA0FOR,=KA0VHP,=KA1ICJ,=KA1YJ,=KA2WXU,=KA3TUA,=KA4INK,=KA7APU,=KA7RKW, + =KA8EBL,=KA8KND,=KA9DMP,=KB0DJR,=KB0PXK,=KB0ZKZ,=KB1EUJ,=KB1GC,=KB1PCX,=KB2MRY,=KB3IOC,=KB3OXU, + =KB3PJS,=KB5NNY,=KB5OWT,=KB6CNU,=KB6EGA,=KB7AKH,=KB7EA,=KB7G,=KB7JB,=KB7MEU,=KB7QKJ,=KB7UQH, + =KB7UVR,=KB7VUR,=KB7WUP,=KB8SKX,=KC0WQU,=KC0ZER,=KC1DBY,=KC2GSU,=KC2MIU,=KC2SRW,=KC2YL,=KC2ZSG, + =KC2ZSH,=KC2ZSI,=KC3GZT,=KC4HHS,=KC5GAX,=KC6HOX,=KC6QQI,=KC6RYQ,=KC6SHT,=KC6SWR,=KC6YIO,=KC7ASJ, + =KC7AXX,=KC7DUT,=KC7EJC,=KC7HNC,=KC7I,=KC7IFU,=KC7JVX,=KC7KAT,=KC7KAW,=KC7KBA,=KC7KHW,=KC7KJT, + =KC7LFM,=KC7NZ,=KC7PLG,=KC7VHF,=KC7VWU,=KC7YXO,=KC8EFI,=KC8EJ,=KC9AUA,=KC9EQS,=KD0QLQ,=KD0QLR, + =KD0RPD,=KD0WVZ,=KD3FZ,=KD4GW,=KD4ML,=KD4QWO,=KD5ACN,=KD5BSK,=KD5HDA,=KD5HX,=KD6CWF,=KD6EPD, + =KD6IPX,=KD6VTU,=KD7HTG,=KD7LMP,=KD7SME,=KD7SMV,=KD7TZ,=KD7UZG,=KD7WJM,=KD8GVO,=KE2CX,=KE4RNU, + =KE4UXQ,=KE4ZXQ,=KE5CGA,=KE5FJM,=KE6AXN,=KE6AXP,=KE6AYZ,=KE6CQE,=KE6EDJ,=KE6EVT,=KE6JXO,=KE6RAW, + =KE6TFR,=KE6TIS,=KE6TKQ,=KE7FJA,=KE7HEW,=KE7IZS,=KE7JTX,=KE7KRQ,=KE7MW,=KE7PEQ,=KE7RCT,=KE7UV, + =KE7UW,=KF4FQR,=KF4IBW,=KF4JLZ,=KF4OOB,=KF4URD,=KF5AHW,=KF5LBQ,=KF5MXM,=KF5MXP,=KF6FDG,=KF6IVV, + =KF6MQT,=KF6YZR,=KF6ZAL,=KF7GNP,=KF7LRS,=KF7OJR,=KF7TUU,=KF7VUK,=KG0XR,=KG4HZF,=KG4SGC,=KG4SGV, + =KG6DV,=KG6EFD,=KG6HRX,=KG6IGY,=KG6JJP,=KG6LFX,=KG6MZJ,=KG6NNF,=KG6NQI,=KG6OOB,=KG6RJI,=KG6SDD, + =KG6TFI,=KG6WZD,=KG7AYU,=KG7CJI,=KG7CVR,=KG7EUP,=KH0WJ,=KH2MD,=KH2YI,=KH3AF,=KI4CAU,=KI4HCZ, + =KI4NOH,=KI4YAF,=KI6CRL,=KI6DVJ,=KI6EFY,=KI6FTE,=KI6HBZ,=KI6JEC,=KI6LPT,=KI6NOC,=KI6VYB,=KI6WOJ, + =KI6ZRV,=KI7EZG,=KI7OS,=KJ4KND,=KJ4WOI,=KJ6GYD,=KJ6LAW,=KJ6LAX,=KJ6NZH,=KJ6QQT,=KJ6RGW,=KJ6SKC, + =KJ6TJZ,=KK4EEC,=KK4YIT,=KK6BRW,=KK6OMX,=KK6VJN,=KK6ZQ,=KK6ZZE,=KK7WR,=KL1TP,=KL3FN,=KL7PN,=KL7UB, + =KM6BOQ,=KM6RM,=KN6ZU,=KO6KW,=KO6QT,=KQ6CD,=KU4OY,=KW4JC,=N0CAN,=N0DQD,=N0PJV,=N0RMC,=N0ZSJ, + =N1CFD,=N1CNQ,=N1IDP,=N1SHV,=N1YLH,=N2AL,=N2KJU,=N3DJT,=N3HQW,=N3RWD,=N3VDM,=N3ZFY,=N4ZIW,=N5IWF, + =N5JKJ,=N6AI,=N6CGA,=N6GOZ,=N6IKX,=N6KB,=N6NCT,=N6PJQ,=N6QBK,=N6ZAB,=N7AMY,=N7BLC,=N7NYY,=N7ODC, + =N7TOF,=N7TSV,=N7WBX,=N7ZHK,=N9CRQ,=N9GFL,=N9SBL,=NE7SO,=NH2CC,=NH2CD,=NH2CF,=NH2CQ,=NH2CR,=NH2IB, + =NH2IF,=NH2II,=NH2IO,=NH2JO,=NH2KH,=NH2YL,=NH2Z,=NL7UW,=NO0H,=NT0DA,=NT4AA,=W0UNI,=W0UNX,=W1BMB, + =W4YQS,=W5FJG,=W6CAG,=W6KIT,=W6KPI,=W6MQB,=W6MRJ,=W6NBK,=W6ROM,=W6SHH,=W7NX,=W7RCR,=W7UEA,=W8JAY, + =W8WH,=W9IS,=WA0FUR,=WA0NHD,=WA2AUI,=WA3ZEM,=WA6ECX,=WA6JDA,=WA6QDQ,=WA6UVF,=WA7TFE,=WA7ZK, + =WB2SQW,=WB4JTT,=WB4MNF,=WB5ZDH,=WB5ZOV,=WB6CVJ,=WB6PJT,=WB6SAA,=WB7BOR,=WB9SMM,=WD0FTF,=WD6GHJ, + =WD8LIB,=WD8OBO,=WH2Y,=WH7K,=WR1Z,=WU0H,=WV0Z,=WV6K,=WX7G; 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: @@ -1536,41 +1543,42 @@ 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: AL,KL,NL,WL,=AA0NN,=AA8FY,=AB0IC,=AB0WK,=AB5JB,=AB7YB,=AB7YO,=AB8XX,=AB9OM,=AC0CW,=AC9QX,=AD0DK, - =AD0FQ,=AD3BJ,=AD6GC,=AD7MF,=AD7VV,=AE7ES,=AE7KS,=AE7SB,=AF7FV,=AG5LN,=AH0AH,=AH0H,=AJ4ZI,=AK2OR, - =AK4P,=K0AZZ,=K0DJM,=K1BZD,=K2ICW,=K2NPS,=K3JMI,=K4WPK,=K5DOW,=K5HL,=K5RD,=K5RSO,=K5RZW,=K5TDN, - =K6ANE,=K6GKW,=K7EJM,=K7GRW,=K7LOP,=K7MVX,=K7OCL,=K7RDR,=K7ZOA,=K8IEL,=K9ETM,=K9WUV,=KA0SIM, - =KA0YPV,=KA2TJZ,=KA6UGT,=KA7ETQ,=KA7HOX,=KA7JOR,=KA7TMU,=KA7VCR,=KA7YEY,=KA9GYQ,=KB0APK,=KB0LOW, - =KB0TSU,=KB0UGE,=KB0UVK,=KB1FCX,=KB1KLH,=KB1SHE,=KB1SYV,=KB1WQL,=KB2JWV,=KB2ZME,=KB3NCR,=KB5DNT, - =KB5HEV,=KB5UWU,=KB6DKJ,=KB7AMA,=KB7BNG,=KB7DEL,=KB7IBI,=KB7JA,=KB7LJZ,=KB7LON,=KB7QLB,=KB7RXZ, - =KB7SIQ,=KB7UBH,=KB7VFZ,=KB7YEC,=KB7ZVZ,=KB8QKR,=KB8SBG,=KB8TEW,=KB8VYJ,=KB9MWG,=KB9NSV,=KC0ATI, - =KC0CYR,=KC0EF,=KC0GHH,=KC0NSV,=KC0OKQ,=KC0UYK,=KC0VDN,=KC0WSG,=KC1DL,=KC2BYX,=KC2GVS,=KC2HRV, - =KC2KMU,=KC2OJP,=KC2PCV,=KC3DBK,=KC4MXQ,=KC4MXR,=KC5BNN,=KC5CHO,=KC5DJA,=KC5KIG,=KC5LKF,=KC5LKG, - =KC5QPJ,=KC5SLA,=KC5THY,=KC5YIB,=KC5YOB,=KC6RJW,=KC7BUL,=KC7COW,=KC7ENM,=KC7GSO,=KC7HJM,=KC7HPF, - =KC7IKE,=KC7IKF,=KC7INC,=KC7MIJ,=KC7MPY,=KC7MRO,=KC7NFH,=KC7OQZ,=KC7PLJ,=KC7PLQ,=KC7RCP,=KC7TYT, - =KC7UZY,=KC7WOA,=KC7YZR,=KC8BKP,=KC8GKK,=KC8NOY,=KC8WWS,=KC8YIV,=KC9CMY,=KC9HIK,=KC9VLD,=KD0CLU, - =KD0CZC,=KD0DHU,=KD0FJG,=KD0NSG,=KD0VAK,=KD0VAL,=KD0VGF,=KD2CTE,=KD2GKT,=KD4EYW,=KD4MEY,=KD4QJL, - =KD5GAL,=KD5QPD,=KD5RVD,=KD5WCF,=KD5WEV,=KD6DLB,=KD6RVY,=KD6YKS,=KD7DUQ,=KD7FGL,=KD7FUL,=KD7GFG, - =KD7HXF,=KD7KRK,=KD7MGO,=KD7QAR,=KD7TWB,=KD7UAG,=KD7VOI,=KD7VXE,=KD7ZTJ,=KD8BVD,=KD8DDY,=KD8GEL, - =KD8GMS,=KD8JOU,=KD8LNA,=KD9TK,=KE0DYM,=KE0KKI,=KE4DGR,=KE4MQD,=KE4YEI,=KE4YLG,=KE5CVD,=KE5CVT, - =KE5DQV,=KE5FOC,=KE5GEB,=KE5HHR,=KE5JHS,=KE5JTB,=KE5NLG,=KE5QDI,=KE5QDJ,=KE5QDK,=KE5VPO,=KE5ZRK, - =KE6DLM,=KE6DUJ,=KE6DXH,=KE6IPM,=KE6SYD,=KE6TCE,=KE6VUB,=KE7DFO,=KE7ELL,=KE7EOP,=KE7EPZ,=KE7FNC, - =KE7FXM,=KE7GOE,=KE7HMJ,=KE7KAT,=KE7KYU,=KE7PXV,=KE7TRX,=KE8RO,=KF4JET,=KF4PLR,=KF4TBD,=KF4YFD, - =KF5FJQ,=KF5HJC,=KF5NDT,=KF5NHR,=KF5STO,=KF5YYK,=KF6AWG,=KF6AXS,=KF6BMF,=KF6BOV,=KF6ILC,=KF6IOT, - =KF6LGK,=KF6MFK,=KF6QOJ,=KF6RPC,=KF6TGR,=KF6UWT,=KF7LEX,=KF7LUA,=KF7PFT,=KF7PSS,=KF7UFY,=KF7VBO, - =KF8ZB,=KG2IA,=KG4NBL/P,=KG4NIY,=KG4TJS,=KG4WNZ,=KG5GDF,=KG5JQC,=KG5MIB,=KG6RJE,=KG6TAL,=KG7CUR, - =KG7EBD,=KG7GJL,=KG7LBW,=KG7OQC,=KG7SEQ,=KG7SVM,=KG7SVN,=KG7TGE,=KH0NF,=KH0NG,=KH0RF,=KH2YN, - =KH7BW,=KH7DA,=KI4COG,=KI4ERC,=KI4GAG,=KI4GCF,=KI4GDI,=KI4NGY,=KI4SET,=KI4SOM,=KI6DES,=KI6HGW, - =KI7COR,=KI7PZ,=KI8JT,=KJ4IAQ,=KJ4PSV,=KJ4WDI,=KJ4ZWI,=KJ6KRG,=KJ6ZSX,=KJ7IR,=KK4AMV,=KK4CLS, - =KK4LRE,=KK4QXE,=KK4RYG,=KK4WWH,=KK4WWI,=KK6IUY,=KK6PGV,=KK7I,=KK7IV,=KK7STL,=KL7D/M,=KM4AGL, - =KM4KWS,=KM4KX,=KM4NIC,=KM4OE,=KM4PJH,=KM4TJI,=KN4CCY,=KR4WV,=KV3X,=KW1W,=KY7J,=N0GDT,=N0GDU, - =N0GLI,=N0HJT,=N0HZF,=N0IVJ,=N0LHN,=N0SN,=N0SUB,=N0WGG,=N0WXJ,=N0XKY,=N0XS,=N0ZKV,=N1HUT,=N1KDQ, - =N1KTI,=N1NJS,=N1QFE,=N1TX,=N2TJY,=N2YZW,=N3NCS,=N4AVX,=N4CM,=N4HCJ,=N4HZU,=N5CSO,=N5LX,=N5UKX, - =N6CVV,=N6CZU,=N6JM,=N7BUO,=N7FCT,=N7HER,=N7HQK,=N7JUX,=N7MGT,=N7MTG,=N7PHB,=N7QAN,=N7TBU,=N7UTV, - =N7UWT,=N7XNM,=N7YKY,=N7YQS,=N7ZYS,=N8ZPO,=N9AIG,=N9FB,=N9YD,=NA7WM,=NC4OI,=NE7EK,=NE9V,=NH2GZ, - =NH7UO,=NN4NN,=NW4G,=NW7F,=W0FJN,=W0RWS,=W0UZJ,=W1LYD,=W1RSC,=W1ZKA,=W2DLS,=W2KRZ,=W4AUL,=W4BMR, - =W4RSB,=W5JKT,=W6DDP,=W6GTE,=W6LN,=W6ROW,=W7DDG,=W7EIK,=W7JMR,=W7PWA,=W7RAZ,=W7ROS,=W7WEZ,=W8MDD, - =W8PVZ,=W8TCX,=W9ITU,=W9JMC,=WA0JS,=WA1FVJ,=WA2BGL,=WA2BIW,=WA6GFS,=WA7B,=WA7PXH,=WA7USX,=WA7YXF, - =WB0CMZ,=WB1GZL,=WB6COP,=WB7QWM,=WB7TYK,=WB9JZL,=WD6CET,=WH6CYY,=WH7AK,=WP4IYI,=WT5T,=WX1NCC; + =AD0FQ,=AD3BJ,=AD6GC,=AD7MF,=AD7VV,=AE1DJ,=AE5FN,=AE7ES,=AE7KS,=AE7SB,=AF7FV,=AG5LN,=AH0AH,=AH0H, + =AJ4ZI,=AK2OR,=AK4P,=K0AZZ,=K0DJM,=K1BZD,=K1MAT,=K2ICW,=K2NPS,=K3JMI,=K4WPK,=K5DOW,=K5HL,=K5RD, + =K5RSO,=K5RZW,=K5TDN,=K6ANE,=K6GKW,=K7EJM,=K7GRW,=K7LOP,=K7MVX,=K7OCL,=K7RDR,=K7ZOA,=K8IEL,=K9ETM, + =K9WUV,=KA0SIM,=KA0YPV,=KA2TJZ,=KA6UGT,=KA7ETQ,=KA7HOX,=KA7JOR,=KA7TMU,=KA7VCR,=KA7YEY,=KA9GYQ, + =KB0APK,=KB0LOW,=KB0TSU,=KB0UGE,=KB0UVK,=KB1FCX,=KB1KLH,=KB1PHP,=KB1SHE,=KB1SYV,=KB1WQL,=KB2JWV, + =KB2ZME,=KB3NCR,=KB5DNT,=KB5HEV,=KB5UWU,=KB6DKJ,=KB7AMA,=KB7BNG,=KB7DEL,=KB7IBI,=KB7JA,=KB7LJZ, + =KB7LON,=KB7QLB,=KB7RXZ,=KB7SIQ,=KB7UBH,=KB7VFZ,=KB7YEC,=KB7ZVZ,=KB8QKR,=KB8SBG,=KB8TEW,=KB8VYJ, + =KB9MWG,=KB9NSV,=KC0ATI,=KC0CYR,=KC0EF,=KC0GHH,=KC0NSV,=KC0OKQ,=KC0TZL,=KC0UYK,=KC0VDN,=KC0WSG, + =KC1DL,=KC2BYX,=KC2GVS,=KC2HRV,=KC2KMU,=KC2OJP,=KC2PCV,=KC3DBK,=KC4MXQ,=KC4MXR,=KC5BNN,=KC5CHO, + =KC5DJA,=KC5KIG,=KC5LKF,=KC5LKG,=KC5QPJ,=KC5SLA,=KC5THY,=KC5YIB,=KC5YOB,=KC6RJW,=KC7BUL,=KC7COW, + =KC7ENM,=KC7GSO,=KC7HJM,=KC7HPF,=KC7IKE,=KC7IKF,=KC7INC,=KC7MIJ,=KC7MPY,=KC7MRO,=KC7NFH,=KC7OQZ, + =KC7PLJ,=KC7PLQ,=KC7RCP,=KC7TYT,=KC7UZY,=KC7WOA,=KC7YZR,=KC8BKP,=KC8GKK,=KC8NMN,=KC8NOY,=KC8WWS, + =KC8YIV,=KC9CMY,=KC9HIK,=KC9VLD,=KD0CLU,=KD0CZC,=KD0DHU,=KD0FJG,=KD0NSG,=KD0VAK,=KD0VAL,=KD0VGF, + =KD2CTE,=KD2GKT,=KD4EYW,=KD4MEY,=KD4QJL,=KD5GAL,=KD5QPD,=KD5RVD,=KD5WCF,=KD5WEV,=KD6DLB,=KD6RVY, + =KD6YKS,=KD7DUQ,=KD7FGL,=KD7FUL,=KD7GFG,=KD7HXF,=KD7KRK,=KD7MGO,=KD7QAR,=KD7SIX,=KD7TWB,=KD7UAG, + =KD7VOI,=KD7VXE,=KD7ZTJ,=KD8BVD,=KD8DDY,=KD8GEL,=KD8GMS,=KD8JOU,=KD8LNA,=KD8WMX,=KD9TK,=KE0DYM, + =KE0KKI,=KE4DGR,=KE4MQD,=KE4YEI,=KE4YLG,=KE5CVD,=KE5CVT,=KE5DQV,=KE5FOC,=KE5GEB,=KE5HHR,=KE5JHS, + =KE5JTB,=KE5NLG,=KE5QDI,=KE5QDJ,=KE5QDK,=KE5VPO,=KE5ZRK,=KE6DLM,=KE6DUJ,=KE6DXH,=KE6IPM,=KE6SYD, + =KE6TCE,=KE6VUB,=KE7DFO,=KE7ELL,=KE7EOP,=KE7EPZ,=KE7FNC,=KE7FXM,=KE7GOE,=KE7HMJ,=KE7KAT,=KE7KYU, + =KE7PXV,=KE7TRX,=KE8RO,=KF4JET,=KF4PLR,=KF4TBD,=KF4YFD,=KF5FJQ,=KF5HJC,=KF5NDT,=KF5NHR,=KF5STO, + =KF5YYK,=KF6AWG,=KF6AXS,=KF6BMF,=KF6BOV,=KF6ILC,=KF6IOT,=KF6LGK,=KF6MFK,=KF6QOJ,=KF6RPC,=KF6TGR, + =KF6UWT,=KF7LEX,=KF7LUA,=KF7PCJ,=KF7PFT,=KF7PSS,=KF7UFY,=KF7VBO,=KF8ZB,=KG2IA,=KG4NBL/P,=KG4NIY, + =KG4TJS,=KG4WNZ,=KG5GDF,=KG5JQC,=KG5MIB,=KG6RJE,=KG6TAL,=KG7CUR,=KG7EBD,=KG7GJL,=KG7LBW,=KG7OQC, + =KG7SEQ,=KG7SVM,=KG7SVN,=KG7TGE,=KH0NF,=KH0NG,=KH0RF,=KH2YN,=KH7BW,=KH7DA,=KI4COG,=KI4ERC,=KI4GAG, + =KI4GCF,=KI4GDI,=KI4NGY,=KI4SET,=KI4SOM,=KI6DES,=KI6HGW,=KI7COR,=KI7PZ,=KI8JT,=KJ4IAQ,=KJ4PSV, + =KJ4WDI,=KJ4ZWI,=KJ6KRG,=KJ6ZSX,=KJ7IR,=KK4AMV,=KK4CLS,=KK4LRE,=KK4QXE,=KK4RYG,=KK4WWH,=KK4WWI, + =KK6IUY,=KK6PGV,=KK7I,=KK7IV,=KK7STL,=KL7D/M,=KM4AGL,=KM4KWS,=KM4KX,=KM4NIC,=KM4OE,=KM4PJH, + =KM4TJI,=KN4CCY,=KR4WV,=KV3X,=KW1W,=KY7J,=N0GDT,=N0GDU,=N0GLI,=N0HJT,=N0HZF,=N0IVJ,=N0LHN,=N0SN, + =N0SUB,=N0WGG,=N0WXJ,=N0XKY,=N0XS,=N0ZKV,=N1HUT,=N1KDQ,=N1KTI,=N1NJS,=N1QFE,=N1TX,=N2CXH,=N2TJY, + =N2YZW,=N3NCS,=N4AVX,=N4CM,=N4HCJ,=N4HZU,=N5CSO,=N5LX,=N5UKX,=N5WPR,=N6CVV,=N6CZU,=N6JM,=N7BUO, + =N7FCT,=N7HER,=N7HQK,=N7JUX,=N7MGT,=N7MTG,=N7PHB,=N7QAN,=N7TBU,=N7UTV,=N7UWT,=N7XNM,=N7YKY,=N7YQS, + =N7ZYS,=N8ZPO,=N9AIG,=N9FB,=N9YD,=NA7WM,=NC4OI,=NE7EK,=NE9V,=NH2GZ,=NH7UO,=NN4NN,=NW4G,=NW7F, + =W0FJN,=W0RWS,=W0UZJ,=W1LYD,=W1RSC,=W1ZKA,=W2DLS,=W2KRZ,=W3JPN,=W4AUL,=W4BMR,=W4RSB,=W5JKT,=W6DDP, + =W6GTE,=W6LN,=W6ROW,=W7DDG,=W7EIK,=W7JMR,=W7PWA,=W7RAZ,=W7ROS,=W7WEZ,=W7ZWT,=W8MDD,=W8PVZ,=W8TCX, + =W9ITU,=W9JMC,=WA0JS,=WA1FVJ,=WA2BGL,=WA2BIW,=WA6GFS,=WA7B,=WA7PXH,=WA7USX,=WA7YXF,=WB0CMZ, + =WB1GZL,=WB6COP,=WB7QWM,=WB7TYK,=WB9JZL,=WD6CET,=WH6CYY,=WH7AK,=WP4IYI,=WT5T,=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: @@ -1580,31 +1588,31 @@ US Virgin Islands: 08: 11: NA: 17.73: 64.80: 4.0: KP2: =KV4FZ,=KV4HR,=KV4IH,=KV4JC,=KV4KW,=N1TKK,=N1VKI,=W0AIH/KV4,=W0YNY,=W2AZK,=W2KW/KV4,=W3K/KD2CLB, =W4LIS,=WA4HLB,=WB2KQW,=WB4WFU,=WD8AHQ,=WE9EE,=WI7C; Puerto Rico: 08: 11: NA: 18.18: 66.55: 4.0: KP4: - KP3,KP4,NP3,NP4,WP3,WP4,=AA2ZN,=AB2DR,=AF4OU,=AF5IZ,=AG4CD,=K1NDN,=K4C/LH,=K4PFH,=K9JOS,=KA2GNG, - =KA2MBR,=KA2YGB,=KA7URH,=KA9UTY,=KB0AQB,=KB1IJU,=KB1KDP,=KB1RUQ,=KB1TUA,=KB1UEK,=KB1UZV,=KB1ZKF, - =KB2CIE,=KB2MMX,=KB2NMT,=KB2NYN,=KB2OIF,=KB2OMN,=KB2OPM,=KB2RYP,=KB2TID,=KB2VHY,=KB2WKT,=KB2YKJ, - =KB3BPK,=KB3BTN,=KB3LUV,=KB3SBO,=KB8ZVP,=KB9OWX,=KB9YVE,=KB9YVF,=KC1CRV,=KC1DRV,=KC2BZZ,=KC2CTM, - =KC2JNE,=KC2LET,=KC2TE,=KC2UXP,=KC5DKT,=KD2VQ,=KD4TVS,=KD5DVV,=KD5PKH,=KE0GFK,=KE0SH,=KE1MA, - =KE4GYA,=KE4SKH,=KE4WUE,=KE5LNG,=KF4KPO,=KF4LXG,=KF6OGJ,=KG4IRC,=KG4VCC,=KG5AFY,=KG5FVY,=KH2RU, - =KH4AA,=KI4LRJ,=KI4WOA,=KI4WOB,=KJ4LOZ,=KJ4UPN,=KJ6OV,=KK4AOZ,=KK4DCX,=KK4EBE,=KK4PHB,=KM4WGI, - =KM4YBN,=KM4YSR,=KM4ZJW,=KM6CTO,=KN4AWH,=KP2H,=KP2Z,=KP3CW/SKP,=KP3RE/LGT,=KP3RE/LH,=KP3RE/LT, - =KP4ES/L,=KP4ES/LGT,=KP4ES/LH,=KP4FD/IARU,=KP4FRD/LH,=KP4VP/LH,=N1HRV,=N1JFL,=N1QVU,=N1VCW,=N1YAY, - =N1ZJC,=N2KKN,=N2KUE,=N2PGO,=N3JAM,=N3VIJ,=N3YUB,=N4JZD,=N4LER,=N6RHF,=NB0G,=NP3M/LH,=NP4VO/LH, - =W1AW/PR,=W6WAW,=W9JS,=W9JSP,=WA2RVA,=WB2HMY,=WB5YOF,=WB7ADC,=WB7VVV,=WD4LOL,=WH2ALC,=WP4L/TP, - =WR8Z; + KP3,KP4,NP3,NP4,WP3,WP4,=AA2ZN,=AB2DR,=AF4OU,=AF5IZ,=AG4CD,=AI4EZ,=K1NDN,=K4C/LH,=K4PFH,=K9JOS, + =KA2GNG,=KA2MBR,=KA2YGB,=KA7URH,=KA9UTY,=KB0AQB,=KB1IJU,=KB1KDP,=KB1RUQ,=KB1TUA,=KB1UEK,=KB1UZV, + =KB1ZKF,=KB2CIE,=KB2MMX,=KB2NMT,=KB2NYN,=KB2OIF,=KB2OMN,=KB2OPM,=KB2RYP,=KB2TID,=KB2VHY,=KB2WKT, + =KB2YKJ,=KB3BPK,=KB3BTN,=KB3LUV,=KB3SBO,=KB8ZVP,=KB9OWX,=KB9YVE,=KB9YVF,=KC1CRV,=KC1DRV,=KC2BZZ, + =KC2CTM,=KC2JNE,=KC2LET,=KC2TE,=KC2UXP,=KC5DKT,=KD2VQ,=KD4TVS,=KD5DVV,=KD5PKH,=KE0GFK,=KE0SH, + =KE1MA,=KE4GGD,=KE4GYA,=KE4SKH,=KE4WUE,=KE5LNG,=KF4KPO,=KF4LXG,=KF6OGJ,=KG4IRC,=KG4VCC,=KG5AFY, + =KG5FVY,=KH2RU,=KH4AA,=KI4LRJ,=KI4WOA,=KI4WOB,=KJ4LOZ,=KJ4UPN,=KJ6OV,=KK4AOZ,=KK4DCX,=KK4EBE, + =KK4PHB,=KM4VDZ,=KM4WGI,=KM4YBN,=KM4YSR,=KM4ZJW,=KM6CTO,=KN4AWH,=KP2H,=KP2Z,=KP3CW/SKP,=KP3RE/LGT, + =KP3RE/LH,=KP3RE/LT,=KP4ES/L,=KP4ES/LGT,=KP4ES/LH,=KP4FD/IARU,=KP4FRD/LH,=KP4VP/LH,=N1HRV,=N1JFL, + =N1QVU,=N1VCW,=N1YAY,=N1ZJC,=N2KKN,=N2KUE,=N2PGO,=N3JAM,=N3VIJ,=N3YUB,=N4JZD,=N4LER,=N6RHF,=NB0G, + =NP3M/LH,=NP4VO/LH,=W1AW/PR,=W6WAW,=W9JS,=W9JSP,=WA2RVA,=WB2HMY,=WB5YOF,=WB7ADC,=WB7VVV,=WD4LOL, + =WH2ALC,=WP4L/TP,=WR8Z; 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: LA,LB,LC,LD,LE,LF,LG,LH,LI,LJ,LK,LL,LM,LN,=LA1BFA/U,=LA1EK/E,=LA1ENA/H,=LA1G/H,=LA1IO/L,=LA1K/U, - =LA1MFA/X,=LA1RSA/X,=LA1TV/F,=LA1U/X,=LA1YE/C,=LA2AB/C,=LA2D/F,=LA2DS/C,=LA2HFA/C,=LA2OJ/Z, - =LA2SM/X,=LA2T/U,=LA3BO/Z,=LA3CC/C,=LA3F/C,=LA3F/E,=LA3TK/E,=LA4AAA/U,=LA4EJ/W,=LA4KF/K,=LA4KQ/X, - =LA4NE/X,=LA4NE/Y,=LA4NL/X,=LA4PM/U,=LA4RI/Y,=LA4RT/U,=LA4XX/U,=LA4YW/U,=LA5A/Y,=LA5FH/Z,=LA5G/E, - =LA5HE/H,=LA5MT/D,=LA5SAA/L,=LA5UF/H,=LA5UF/Z,=LA5UH/Z,=LA5YE/F,=LA5YI/F,=LA6DW/C,=LA6DW/S, - =LA6FJA/E,=LA6GX/X,=LA6MT/D,=LA6OM/C,=LA6QT/X,=LA6TPA/V,=LA6XI/F,=LA6XI/Z,=LA7AK/L,=LA7DHA/C, - =LA7FF/F,=LA7HAA/W,=LA7HJ/W,=LA7QI/L,=LA7TO/L,=LA7VK/C,=LA8G/U,=LA8NHA/F,=LA8NSA/F,=LA8OM/K, - =LA8OM/L,=LA8QI/L,=LA8TIA/C,=LA8UL/X,=LA8WG/V,=LA9BM/F,=LA9DFA/D,=LA9DK/S,=LA9FG/P,=LA9GY/U, - =LA9IX/U,=LA9JM/Z,=LA9OI/C,=LA9YBA/W,=LA9ZL/I,=LB1JG/C,=LB7FA/F,=LI3C/D,=LI7HJ/W,=LI7VK/C, - =LJ3RE/E,=LJ6BG/L; + =LA1LO/H,=LA1MFA/X,=LA1RSA/X,=LA1TV/F,=LA1U/X,=LA1YE/C,=LA2AB/C,=LA2D/F,=LA2DS/C,=LA2HFA/C, + =LA2OJ/Z,=LA2SM/X,=LA2T/U,=LA3BO/Z,=LA3CC/C,=LA3F/C,=LA3F/E,=LA3TK/E,=LA4AAA/U,=LA4EJ/W,=LA4KF/K, + =LA4KQ/X,=LA4NE/X,=LA4NE/Y,=LA4NL/X,=LA4PM/U,=LA4RI/Y,=LA4RT/U,=LA4XX/U,=LA4YW/U,=LA5A/Y,=LA5FH/Z, + =LA5G/E,=LA5HE/H,=LA5MT/D,=LA5SAA/L,=LA5UF/H,=LA5UF/Z,=LA5UH/Z,=LA5YE/F,=LA5YI/F,=LA6DW/C, + =LA6DW/S,=LA6FJA/E,=LA6GX/X,=LA6MT/D,=LA6OM/C,=LA6QT/X,=LA6TPA/V,=LA6XI/F,=LA6XI/Z,=LA7AK/L, + =LA7DHA/C,=LA7FF/F,=LA7HAA/W,=LA7HJ/W,=LA7QI/L,=LA7TO/L,=LA7VK/C,=LA8G/U,=LA8NHA/F,=LA8NSA/F, + =LA8OM/K,=LA8OM/L,=LA8QI/L,=LA8TIA/C,=LA8UL/X,=LA8WG/V,=LA9BM/F,=LA9DFA/D,=LA9DK/S,=LA9FG/P, + =LA9GY/U,=LA9IX/U,=LA9JM/Z,=LA9OI/C,=LA9YBA/W,=LA9ZL/I,=LB1JG/C,=LB7FA/F,=LI3C/D,=LI7HJ/W, + =LI7VK/C,=LJ3RE/E,=LJ6BG/L; Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: AY,AZ,L1,L2,L3,L4,L5,L6,L7,L8,L9,LO,LP,LQ,LR,LS,LT,LU,LV,LW,=LU8AEU/MM, =AY3DR/D,=AY4EJ/D,=AY5E/D,=AY7DSY/D,=L21ESC/LH,=L25E/D,=L30DIM/D,=L30EY/D,=L30EY/E,=L40E/D, @@ -1667,13 +1675,13 @@ Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: =LU1ACG/GP,=LU3AAL/GR,=LU4FM/G,=LU4FM/GP,=LU4GO/GA,=LU5BE/GR,=LU5FZ/GA,=LU8EFF/GR, =LS4AA/H,=LU1EZ/H,=LU1HCG/H,=LU1HCP/H,=LU1HH/H,=LU1HK/H,=LU1HLH/H,=LU1HPW/H,=LU1HYW/H,=LU1XZ/H, =LU2DVI/H,=LU2HAE/H,=LU2HC/H,=LU2HEA/H,=LU2HEQ/H,=LU2HJ/H,=LU2HNV/H,=LU2MAA/H,=LU3AJL/H,=LU3HAT/H, - =LU3HAZ/H,=LU3HE/H,=LU3HKA/H,=LU3HL/H,=LU3HU/H,=LU3HZK/H,=LU4AA/H,=LU4FM/H,=LU4HK/H,=LU4HSA/H, - =LU4HSA/LGH,=LU4HTD/H,=LU4MA/H,=LU5DGG/H,=LU5DX/H,=LU5DZ/H,=LU5HAZ/H,=LU5HCW/H,=LU5HFW/H, - =LU5HGR/H,=LU5HR/H,=LU5HTA/H,=LU5WTE/H,=LU6FE/H,=LU6HAS/H,=LU6HBB/H,=LU6HCA/H,=LU6HQH/H,=LU6HTR/H, - =LU6XQ/H,=LU7DZ/H,=LU7HA/H,=LU7HBC/H,=LU7HBL/H,=LU7HBV/H,=LU7HCS/H,=LU7HEO/H,=LU7HOM/H,=LU7HOS/H, - =LU7HSG/H,=LU7HW/H,=LU7HWB/H,=LU7HZ/H,=LU8HAR/H,=LU8HBX/H,=LU8HOR/H,=LU9BSA/H,=LU9DPD/H,=LU9ERA/H, - =LU9HCF/H,=LU9HJV/H,=LU9HVR/H,=LW1HBD/H,=LW1HCM/H,=LW1HDI/H,=LW2EIY/H,=LW3HBS/H,=LW3HOH/H, - =LW4HCL/H,=LW4HTA/H,=LW6ENV/H,=LW6HAM/H,=LW7EIY/H,=LW9HCF/H, + =LU3HAZ/H,=LU3HE/H,=LU3HKA/H,=LU3HL/H,=LU3HPW/H,=LU3HU/H,=LU3HZK/H,=LU4AA/H,=LU4FM/H,=LU4HK/H, + =LU4HSA/H,=LU4HSA/LGH,=LU4HTD/H,=LU4MA/H,=LU5DGG/H,=LU5DX/H,=LU5DZ/H,=LU5HAZ/H,=LU5HCW/H, + =LU5HFW/H,=LU5HGR/H,=LU5HR/H,=LU5HTA/H,=LU5WTE/H,=LU6FE/H,=LU6HAS/H,=LU6HBB/H,=LU6HCA/H,=LU6HQH/H, + =LU6HTR/H,=LU6XQ/H,=LU7DZ/H,=LU7HA/H,=LU7HBC/H,=LU7HBL/H,=LU7HBV/H,=LU7HCS/H,=LU7HEO/H,=LU7HOM/H, + =LU7HOS/H,=LU7HSG/H,=LU7HW/H,=LU7HWB/H,=LU7HZ/H,=LU8HAR/H,=LU8HBX/H,=LU8HOR/H,=LU9BSA/H,=LU9DPD/H, + =LU9ERA/H,=LU9HCF/H,=LU9HJV/H,=LU9HVR/H,=LW1HBD/H,=LW1HCM/H,=LW1HDI/H,=LW2EIY/H,=LW3HBS/H, + =LW3HOH/H,=LW4HCL/H,=LW4HTA/H,=LW6ENV/H,=LW6HAM/H,=LW7EIY/H,=LW9HCF/H, =LU1IAL/I,=LU1IBM/I,=LU1IG/I,=LU2IP/I,=LU5IAL/I,=LU5IAO/I,=LU5ILA/I,=LU7IEI/I,=LU7IPI/I,=LU7ITR/I, =LU7IUE/I,=LU8IEZ/I,=LU9IBJ/I, =LU1JAO/J,=LU1JAR/J,=LU1JCE/J,=LU1JCO/J,=LU1JEF/J,=LU1JEO/J,=LU1JES/J,=LU1JHF/J,=LU1JHP/J, @@ -1687,8 +1695,8 @@ Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: =LU2DSV/N,=LU5BE/N,=LU8EFF/N, =LU1XS/O,=LU4AA/O,=LU5BOJ/O,=LU5OD/O,=LU6FEC/O,=LU8OAH/O, =LU1DZ/Q,=LU1QA/Q,=LU1QAH/Q,=LU1QHC/Q,=LU1QR/Q,=LU1QRA/Q,=LU3QH/Q,=LU4EV/Q,=LU4QQ/Q,=LU5QAG/Q, - =LU5QAJ/Q,=LU6QAN/Q,=LU6QB/Q,=LU6QER/Q,=LU6QI/Q,=LU6UO/Q,=LU7CG/Q,=LU7DJH/Q,=LU7FCL/Q,=LU7QBE/Q, - =LU8DCH/Q,=LU8QRD/Q,=LU8WFT/Q,=LU9QAW/Q,=LU9QRV/Q,=LW2DX/Q, + =LU5QAJ/Q,=LU6HBB/Q,=LU6QAN/Q,=LU6QB/Q,=LU6QER/Q,=LU6QI/Q,=LU6UO/Q,=LU7CG/Q,=LU7DJH/Q,=LU7FCL/Q, + =LU7QBE/Q,=LU8DCH/Q,=LU8QRD/Q,=LU8WFT/Q,=LU9QAW/Q,=LU9QRV/Q,=LW2DX/Q, =LU/DH4PB/S,=LU1DZ/S,=LU1SF/S,=LU6UO/S,=LW2DX/S, =LU1UM/U,=LU1UP/U,=LU3DAB/U,=LU3UU/U,=LU4UWZ/U,=LU5UBI/YL,=LU6UO/U,=LU7AA/U,=LU8UU/U,=LU9MHH/U, AY0V[16],AY1V[16],AY2V[16],AY3V[16],AY4V[16],AY5V[16],AY6V[16],AY7V[16],AY8V[16],AY9V[16], @@ -1772,13 +1780,13 @@ Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: LU0X[16],LU1X[16],LU2X[16],LU3X[16],LU4X[16],LU5X[16],LU6X[16],LU7X[16],LU8X[16],LU9X[16], LV0X[16],LV1X[16],LV2X[16],LV3X[16],LV4X[16],LV5X[16],LV6X[16],LV7X[16],LV8X[16],LV9X[16], LW0X[16],LW1X[16],LW2X[16],LW3X[16],LW4X[16],LW5X[16],LW6X[16],LW7X[16],LW8X[16],LW9X[16], - =AY0N/X[16],=AY7X/X[16],=L20X/LH[16],=LP0B/XP[16],=LR1AW/X[16],=LU/UA4WHX/X[16],=LU1DNC/X[16], - =LU1DZ/X[16],=LU1XA/XA[16],=LU1XAW/X[16],=LU1XB/X[16],=LU1XB/XA[16],=LU1XBR/XA[16],=LU1XP/XP[16], - =LU1XPD/XP[16],=LU1XY/X[16],=LU1YY/XA[16],=LU1ZA/XA[16],=LU2CRM/XA[16],=LU2CRM/XB[16], - =LU2WA/XA[16],=LU2XBI/XA[16],=LU2XBI/XB[16],=LU2XWL/XP[16],=LU2XX/X[16],=LU2XX/XA[16], - =LU2XX/XP[16],=LU3XEI/X[16],=LU3XEI/XA[16],=LU3XEM/X[16],=LU3XUC/XP[16],=LU3XUJ/XP[16], - =LU3XYL/XP[16],=LU4DBT/XA[16],=LU4XPE/XP[16],=LU5BE/XA[16],=LU5BE/XC[16],=LU5DF/X[16], - =LU5EMB/X[16],=LU5HJC/X[16],=LU5HJC/XP[16],=LU5HJK/XP[16],=LU5XC/X[16],=LU5XP/X[16], + =AY0N/X[16],=AY7X/X[16],=L20X/LH[16],=LP0B/XP[16],=LR1AW/X[16],=LU/UA4WHX/X[16],=LU1AW/X[16], + =LU1DNC/X[16],=LU1DZ/X[16],=LU1XA/XA[16],=LU1XAW/X[16],=LU1XB/X[16],=LU1XB/XA[16],=LU1XBR/XA[16], + =LU1XP/XP[16],=LU1XPD/XP[16],=LU1XY/X[16],=LU1YY/XA[16],=LU1ZA/XA[16],=LU2CRM/XA[16], + =LU2CRM/XB[16],=LU2WA/XA[16],=LU2XBI/XA[16],=LU2XBI/XB[16],=LU2XWL/XP[16],=LU2XX/X[16], + =LU2XX/XA[16],=LU2XX/XP[16],=LU3XEI/X[16],=LU3XEI/XA[16],=LU3XEM/X[16],=LU3XUC/XP[16], + =LU3XUJ/XP[16],=LU3XYL/XP[16],=LU4DBT/XA[16],=LU4XPE/XP[16],=LU5BE/XA[16],=LU5BE/XC[16], + =LU5DF/X[16],=LU5EMB/X[16],=LU5HJC/X[16],=LU5HJC/XP[16],=LU5HJK/XP[16],=LU5XC/X[16],=LU5XP/X[16], =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], @@ -1830,10 +1838,10 @@ Austria: 15: 28: EU: 47.33: -13.33: -1.0: OE: =OE3XHA/VFW06,=OE7AJT/Y2K,=OE7XBH/WM05; Finland: 15: 18: EU: 63.78: -27.08: -2.0: OH: OF,OG,OH,OI,OJ,=OH/RX3AMI/LH, - =OF1AD/S,=OF1LD/S,=OF1TX/S,=OH0HG/1,=OH0J/1,=OH0JJS/1,=OH0MDR/1,=OH1AD/S,=OH1AF/LH,=OH1AH/LH, - =OH1AH/LT,=OH1AM/LH,=OH1BGG/S,=OH1BGG/SA,=OH1CIS/LH,=OH1CM/S,=OH1F/LH,=OH1FJ/S,=OH1FJ/SA,=OH1KW/S, - =OH1KW/SA,=OH1LD/S,=OH1LEO/S,=OH1NR/S,=OH1OD/S,=OH1PP/S,=OH1PV/S,=OH1S/S,=OH1SJ/S,=OH1SJ/SA, - =OH1SM/S,=OH1TX/S,=OH1TX/SA,=OH1UH/S,=OH1XW/S,=OI1AXA/S,=OI1AY/S, + =OF100FI/1/LH,=OF1AD/S,=OF1LD/S,=OF1TX/S,=OH0HG/1,=OH0J/1,=OH0JJS/1,=OH0MDR/1,=OH1AD/S,=OH1AF/LH, + =OH1AH/LH,=OH1AH/LT,=OH1AM/LH,=OH1BGG/S,=OH1BGG/SA,=OH1CIS/LH,=OH1CM/S,=OH1F/LGT,=OH1F/LH, + =OH1FJ/S,=OH1FJ/SA,=OH1KW/S,=OH1KW/SA,=OH1LD/S,=OH1LEO/S,=OH1NR/S,=OH1OD/S,=OH1PP/S,=OH1PV/S, + =OH1S/S,=OH1SJ/S,=OH1SJ/SA,=OH1SM/S,=OH1TX/S,=OH1TX/SA,=OH1UH/S,=OH1XW/S,=OI1AXA/S,=OI1AY/S, =OF2BNX/SA,=OG2O/YL,=OH0AM/2,=OH0HG/2,=OH2AAF/S,=OH2AAF/SA,=OH2AAV/S,=OH2AN/SUB,=OH2AUE/S, =OH2AUE/SA,=OH2AY/S,=OH2BAX/S,=OH2BMB/S,=OH2BMB/SA,=OH2BNX/S,=OH2BNX/SA,=OH2BQP/S,=OH2BXT/S, =OH2C/S,=OH2EO/S,=OH2ET/LH,=OH2ET/LS,=OH2ET/S,=OH2FBX/S,=OH2FBX/SA,=OH2HK/S,=OH2HZ/S,=OH2MEE/S, @@ -1893,7 +1901,7 @@ Netherlands: 14: 27: EU: 52.28: -5.47: -1.0: PA: PA,PB,PC,PD,PE,PF,PG,PH,PI,=PA/DF8WA/LH,=PA/DL1KVN/LH,=PA/DL2GW/LH,=PA/DL2KSB/LH,=PA/DL5SE/LH, =PA/ON4NOK/LH,=PA/ON6EF/LH,=PA0GOR/J,=PA0XAW/LH,=PA100J/J,=PA100SH/J,=PA110HL/LH,=PA110LL/LH, =PA14NAWAKA/J,=PA1BDO/LH,=PA1BP/J,=PA1FJ/J,=PA1FR/LH,=PA1VLD/LH,=PA2008NJ/J,=PA25SCH/LH,=PA2DK/J, - =PA2LS/YL,=PA3AAF/LH,=PA3AFG/J,=PA3BDQ/LH,=PA3BIC/LH,=PA3BXR/MILL,=PA3CNI/LH,=PA3CPI/J, + =PA2LS/YL,=PA3AAF/LH,=PA3AFG/J,=PA3BDQ/LH,=PA3BIC/LH,=PA3BXR/MILL,=PA3CNI/LH,=PA3CNI/LT,=PA3CPI/J, =PA3CPI/JOTA,=PA3DEW/J,=PA3EEQ/LH,=PA3EFR/J,=PA3ESO/J,=PA3EWG/J,=PA3FBO/LH,=PA3FYE/J,=PA3GAG/LH, =PA3GQS/J,=PA3GWN/J,=PA3HFJ/J,=PA3WSK/JOTA,=PA40LAB/J,=PA4RVS/MILL,=PA5CA/LH,=PA65DUIN/J, =PA65URK/LH,=PA6ADZ/MILL,=PA6ARC/LH,=PA6FUN/LGT,=PA6FUN/LH,=PA6HOOP/MILL,=PA6HYG/J,=PA6JAM/J, @@ -1904,10 +1912,10 @@ Netherlands: 14: 27: EU: 52.28: -5.47: -1.0: PA: =PD5CW/LH,=PD5MVH/P/LH,=PD7DX/J,=PE1NCS/LGT,=PE1NCS/LH,=PE1NZJ/J,=PE1OPM/LH,=PE1OXI/J,=PE1RBG/J, =PE1RBR/J,=PE2MC/J,=PF4R/LH,=PG150N/LH,=PG6HK/LH,=PG6N/LH,=PH4RTM/MILL,=PH4RTM/WHE,=PH6BB/J, =PH6WAL/LH,=PH75S/J,=PH9GFB/J,=PI4ADH/LGT,=PI4ADH/LH,=PI4ADH/LS,=PI4ALK/LH,=PI4AZL/J,=PI4BG/J, - =PI4CQ/J,=PI4DHG/DM,=PI4DHG/MILL,=PI4ET/MILL,=PI4ETL/MILL,=PI4F/LH,=PI4LDN/L,=PI4LDN/LH, - =PI4RCK/LGT,=PI4RCK/LH,=PI4RIS/J,=PI4SRN/LH,=PI4SRN/MILL,=PI4VNW/LGT,=PI4VNW/LH,=PI4VPO/LH, - =PI4VPO/LT,=PI4WAL/LGT,=PI4WAL/LH,=PI4WBR/LH,=PI4WFL/MILL,=PI4YLC/LH,=PI4ZHE/LH,=PI4ZHE/LS, - =PI4ZHE/MILL,=PI4ZVL/FD,=PI4ZVL/LGT,=PI4ZVL/LH,=PI9NHL/LH,=PI9SRS/LH,=PI9TP/J; + =PI4BOZ/LH,=PI4CQ/J,=PI4DHG/DM,=PI4DHG/MILL,=PI4ET/MILL,=PI4ETL/MILL,=PI4F/LH,=PI4LDN/L, + =PI4LDN/LH,=PI4RCK/LGT,=PI4RCK/LH,=PI4RIS/J,=PI4SRN/LH,=PI4SRN/MILL,=PI4VNW/LGT,=PI4VNW/LH, + =PI4VPO/LH,=PI4VPO/LT,=PI4WAL/LGT,=PI4WAL/LH,=PI4WBR/LH,=PI4WFL/MILL,=PI4YLC/LH,=PI4ZHE/LH, + =PI4ZHE/LS,=PI4ZHE/MILL,=PI4ZVL/FD,=PI4ZVL/LGT,=PI4ZVL/LH,=PI9NHL/LH,=PI9SRS/LH,=PI9TP/J; Curacao: 09: 11: SA: 12.17: 69.00: 4.0: PJ2: PJ2; Bonaire: 09: 11: SA: 12.20: 68.25: 4.0: PJ4: @@ -1959,7 +1967,7 @@ Trindade & Martim Vaz: 11: 15: SA: -20.50: 29.32: 2.0: PY0T: Suriname: 09: 12: SA: 4.00: 56.00: 3.0: PZ: PZ; Franz Josef Land: 40: 75: EU: 80.68: -49.92: -3.0: R1FJ: - RI1FJ,=R1FJL,=R1FJM,=UA1PBN/1; + RI1FJ,=R1FJL,=R1FJM,=UA1PBN/1,=UA4RX/1; Western Sahara: 33: 46: AF: 24.82: 13.85: 0.0: S0: S0; Bangladesh: 22: 41: AS: 24.12: -89.65: -6.0: S2: @@ -2079,44 +2087,42 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: R,U,=R0CAF/1,=R0CM/4,=R25EMW(17)[19],=R80PSP,=R80UPOL,=R8CT/4/P,=R8FF/3,=R90DOSAAF,=R9AV/6, =R9JI/1,=R9WR/1,=RA0AM/6,=RA0BM/6,=RA0ZZ/3,=RA2FDX/3,=RA3CQ/9/M(17)[20],=RA80SP,=RA9JR/3,=RA9JX/3, =RA9RT/3,=RA9YA/6,=RC80SP,=RG0F/5,=RG50P(17),=RG50P/9(17)[30],=RJ80SP,=RK80X(17)[19],=RK8O/4, - =RL9AA/6,=RM80SP,=RM94AE,=RN9OI/3,=RP61XX(17)[19],=RP62X(17)[19],=RP63X(17)[19],=RP63XO(17)[19], - =RP64X(17)[19],=RP65FPP(17)[30],=RP8X(17)[30],=RQ80SP,=RU0ZW/6,=RU2FB/3,=RU2FB/3/P, - =RU4SS/9(17)[30],=RU4WA/9(17)[30],=RV9LM/3,=RW0QE/6,=RW2F/6,=RW9FF/3,=RX9TC/1,=RX9UL/1,=RZ9AWN/6, - =UA0AD/3,=UA0AK/3,=UA0FQ/6,=UA0KBG/3,=UA0KBG/6,=UA0KT/4,=UA0QNE/3,=UA0QNU/3,=UA0QQJ/3,=UA0UV/6, - =UA0XAK/3,=UA0XAK/6,=UA9CCO/6,=UA9CTT/6,=UA9FFS/1/MM,=UE6MAC/9(17),=UE99PS, + =RL9AA/6,=RM80SP,=RM94AE,=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,=RU0ZW/6,=RU2FB/3, + =RU2FB/3/P,=RU4SS/9(17)[30],=RU4WA/9(17)[30],=RV9LM/3,=RW0QE/6,=RW2F/6,=RW9FF/3,=RX9TC/1,=RX9UL/1, + =RZ9AWN/6,=UA0AD/3,=UA0AK/3,=UA0FQ/6,=UA0KBG/3,=UA0KBG/6,=UA0KT/4,=UA0QNE/3,=UA0QNU/3,=UA0QQJ/3, + =UA0UV/6,=UA0XAK/3,=UA0XAK/6,=UA0ZL/6,=UA9CCO/6,=UA9CTT/6,=UA9FFS/1/MM,=UE6MAC/9(17),=UE99PS, =R9J/1,=RA2FN/1,=RA9KU/1,=RA9KU/1/M,=RA9MC/1,=RK9XWV/1,=RL1O,=RU2FB/1,=RU9YT/1,=RU9YT/1/P, - =RV1CC/M,=RW1AI/ANT,=RW8W/1,=RW9QA/1,=UA1ADQ/ANT,=UA1BJ/ANT,=UA1JJ/ANT,=UA2FFX/1,=UA9B/1,=UA9KG/1, + =RW1AI/ANT,=RW8W/1,=RW9QA/1,=UA1ADQ/ANT,=UA1BJ/ANT,=UA1JJ/ANT,=UA2FFX/1,=UA9B/1,=UA9KG/1, =UA9KGH/1,=UA9KK/1,=UA9UDX/1,=UB9YUW/1,=UE22A,=UE25AC,=UE25AQ,=UE2AT/1, =R0XAC/1,=R900BL,=R900DM,=R90LPU,=R9JNO/1,=RA0FU/1,=RA9FNV/1,=RU9MU/1,=RV0CA/1,=RV2FW/1,=RV9JD/1, =RX9TN/1,=UA0BDS/1,=UA0SIK/1,=UA1CDA/LH,=UA1CIO/LH,=UA9MQR/1, - R1N[19],RA1N[19],RC1N[19],RD1N[19],RE1N[19],RF1N[19],RG1N[19],RI1N[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],=RN1NA/ANT[19],=RO25KL[19],=RP72PT[19],=RP72RK[19], - =RV9JD/1/M[19], - R1O[19],RA1O[19],RC1O[19],RD1O[19],RE1O[19],RF1O[19],RG1O[19],RI1O[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],=R100K[19],=R25ILIM[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],=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], - R1P[20],RA1P[20],RC1P[20],RD1P[20],RE1P[20],RF1P[20],RG1P[20],RI1P[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],=R9XC/1[20],=R9XT/1[20],=RA2FW/1[20],=RA9JG/1[20],=RA9LI/1[20],=RC9XM/1[20], - =RK1PWA/ANT[20],=RN2FA/1[20],=UA1PAC/1/ANT[20],=UA9FOJ/1[20],=UA9MRY/1[20],=UA9XRP/1[20], + 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],=RN1NA/ANT[19],=RO25KL[19],=RP72PT[19],=RP72RK[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], + =R100K[19],=R25ILIM[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],=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], + 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], + =R9XC/1[20],=R9XT/1[20],=RA2FW/1[20],=RA9JG/1[20],=RA9LI/1[20],=RC9XM/1[20],=RK1PWA/ANT[20], + =RL1P[20],=RN2FA/1[20],=UA1PAC/1/ANT[20],=UA9FOJ/1[20],=UA9MRY/1[20],=UA9XRP/1[20], =R9FM/1,=RA0BM/1,=RA0BM/1/P,=RA1QQ/LH,=RU9MX/1,=RW9XC/1,=UA1QV/ANT,=UA9XC/1,=UB5O/1, =R88EPC,=R95NRL,=RA9FBV/1,=RA9SC/1,=RA9XY/1,=RV2FW/1/M,=RZ0IWW/1,=UA9XF/1,=UE9WFF/1, =RA0ZD/1,=RP9X/1,=RP9XWM/1,=UE25WDW,=UE9XBW/1,=UF2F/1/M, - R1Z[19],RA1Z[19],RC1Z[19],RD1Z[19],RE1Z[19],RF1Z[19],RG1Z[19],RI1Z[19],RJ1Z[19],RK1Z[19],RL1Z[19], - RM1Z[19],RN1Z[19],RO1Z[19],RQ1Z[19],RT1Z[19],RU1Z[19],RV1Z[19],RW1Z[19],RX1Z[19],RY1Z[19], - RZ1Z[19],U1Z[19],UA1Z[19],UB1Z[19],UC1Z[19],UD1Z[19],UE1Z[19],UF1Z[19],UG1Z[19],UH1Z[19],UI1Z[19], - =RA9CFH/1[19],=RA9CFH/1/P[19],=RK21Z[19],=RK3DZJ/1/LH[19],=RM9WN/1[19],=RP72MU[19],=RU1ZC/ANT[19], - =RW1ZQ/LH[19],=RY83HN[19],=UB1ZBD/N[19], - =R01DTV/3,=R85PAR,=R870C,=R870K,=R870M,=R870O,=R9FM/3,=RA2AT,=RA9CO/3,=RA9USU/3,=RC85MP,=RL3AB/FF, - =RT2F/3/M,=RT9K/3,=RW0LF/3,=RX9UL/3,=RX9WN/3,=RZ9SZ/3,=RZ9UA/3,=UA0KCX/3,=UA3AV/ANT,=UA8AA/3, - =UA8AA/5,=UA9KHD/3,=UA9MDU/3,=UA9MRX/3,=UA9QCP/3,=UA9UAX/3,=UE24SU, + R1Z[19],RA1Z[19],RC1Z[19],RD1Z[19],RE1Z[19],RF1Z[19],RG1Z[19],RJ1Z[19],RK1Z[19],RL1Z[19],RM1Z[19], + RN1Z[19],RO1Z[19],RQ1Z[19],RT1Z[19],RU1Z[19],RV1Z[19],RW1Z[19],RX1Z[19],RY1Z[19],RZ1Z[19],U1Z[19], + UA1Z[19],UB1Z[19],UC1Z[19],UD1Z[19],UE1Z[19],UF1Z[19],UG1Z[19],UH1Z[19],UI1Z[19],=RA9CFH/1[19], + =RA9CFH/1/P[19],=RK21Z[19],=RK3DZJ/1/LH[19],=RM9WN/1[19],=RP72MU[19],=RU1ZC/ANT[19],=RW1ZQ/LH[19], + =RY83HN[19],=UB1ZBD/N[19], + =R01DTV/3,=R85PAR,=R870B,=R870C,=R870K,=R870M,=R870O,=R9FM/3,=RA2AT,=RA9CO/3,=RA9USU/3,=RC85MP, + =RL3AB/FF,=RT2F/3/M,=RT9K/3,=RW0LF/3,=RX9UL/3,=RX9WN/3,=RZ9SZ/3,=RZ9UA/3,=UA0KCX/3,=UA3AV/ANT, + =UA8AA/3,=UA8AA/5,=UA9KHD/3,=UA9MDU/3,=UA9MRX/3,=UA9QCP/3,=UA9UAX/3,=UE24SU, =R85QMR,=R85WDW,=R8B,=R90DNF,=R99FSB,=RA0BY/3,=RA80KEDR,=RA9KV/3,=RA9SB/3,=RA9XY/3,=RK3DSW/ANT, =RN9MD/3,=RT80KEDR,=RU0LM/3,=RU2FA/3,=RU3HD/ANT,=RV0AO/3,=RV9LM/3/P,=RW0IM/3,=RW3DU/N,=RW9UEW/3, =RX9SN/3,=RZ9W/3,=UA0JAD/3,=UA0KCL/3,=UA0ZAZ/3,=UA9AJ/3/M,=UA9DD/3,=UA9HSI/3,=UA9ONJ/3,=UA9XGD/3, @@ -2130,94 +2136,94 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =R870T,=RT90PK,=RU0ZW/3,=RW9JV/3, =RA0CCV/3,=RA0QA/3,=RC9YA/3/P,=RM8X/3,=RV9LC/3,=UA0QJE/3,=UA0QQO/3,=UA9JLY/3,=UA9XLE/3,=UC0LAF/3, =UE25AFG,=UE25R,=UE27AFG,=UE28AFG,=UE96SN, - =R80RTL,=R90IARU,=R9CZ/3,=RZ9HK/3/P, + =R80RTL,=R90IARU,=R9CZ/3,=RU80TO,=RZ9HK/3/P, =R920RZ,=R95DOD,=RA0QQ/3,=UA0KBA/3,=UE85NKN,=UE85WDW, =R3TT/FF,=R8FF/P,=R8TA/4/P,=R8TR/3,=R90NOR,=R9KW/3,=R9KW/4,=R9PA/4,=RA9AP/3,=RA9CKQ/4,=RA9KW/3, =RA9KW/3/M,=RA9ST/3/P,=RG9A/3/P,=RM9T/4/P,=RT9S/3,=RT9S/3/P,=RT9S/4,=RV9FQ/3,=RV9FQ/3/M,=RV9WB/4, =RV9WLE/3/P,=RV9WZ/3,=RW9KW/3,=RW9WA/3,=UA0S/4,=UA9APA/3/P,=UA9CTT/4,=UA9PM/4,=UA9SSR/3, =UE200TARS,=UE25TF,=UE9FDA/3,=UE9FDA/3/M,=UE9WDA/3,=UI8W/3/P, =R5VAJ/N,=R850PN,=RT9T/3,=RU0BW/3,=RU9MU/3,=RV80KEDR,=RX9TL/3, - =R110A,=R110A/P,=R80PVB, + =R110A/P,=R80PVB, =R8FF/3/M,=RA9XF/3,=RC80KEDR,=RD0L/3,=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, =R3ZK/FF,=RA3ZZ/ANT,=RA9AK/3,=RA9KD/3,=RU3ZK/FF,=RW0BG/3,=UA0QBC/3, - =R110B,=RA9ODR/4/M,=RC4AF/FF,=RN4ACA/FF,=RU9CK/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,=RV4CC/FF,=RV9CX/4/M, - =RW0UZ/4,=RW9AW/4/M,=RZ0SB/4,=UA0KAT/4,=UA8WAA/4,=UA9AGR/4/M,=UA9JPX/4,=UA9OC/4,=UE23DZO,=UE95MS, - =UE95WS,=UE99PW, + =RA9ODR/4/M,=RC4AF/FF,=RN4ACA/FF,=RU9CK/6/M,=UA4ASE/FF,=UA4ATL/FF,=UA8WAA/6,=UA9FGR/4,=UE00S, + =UE00S/P,=UE09VG,=UE80RWW, + =R4CDX/FF,=R7AB/M,=R7AB/P,=R8FF/4,=R8FR/4/M,=RA9KO/4,=RL96WS,=RL97WS,=RU80KEDR,=RU80KEDR/P, + =RV4CC/FF,=RV9CX/4/M,=RW0UZ/4,=RW9AW/4/M,=RZ0SB/4,=UA0KAT/4,=UA8WAA/4,=UA9AGR/4/M,=UA9JPX/4, + =UA9OC/4,=UE23DZO,=UE95MS,=UE95WS,=UE99PW, =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],RI4H[30],RI4I[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],RU4I[30],RV4H[30],RV4I[30],RW4H[30],RW4I[30],RX4H[30],RX4I[30],RY4H[30], - RY4I[30],RZ4H[30],RZ4I[30],U4H[30],U4I[30],UA4H[30],UA4I[30],UB4H[30],UB4I[30],UC4H[30],UC4I[30], - UD4H[30],UD4I[30],UE4H[30],UE4I[30],UF4H[30],UF4I[30],UG4H[30],UG4I[30],UH4H[30],UH4I[30], - UI4H[30],UI4I[30],=R280TLT[30],=R9CZ/4[30],=R9DA/4[30],=RA9FAA/4/M[30],=RA9SC/4[30], - =RA9SC/4/P[30],=RC9YA/4/M[30],=RP72AG[30],=RP72I[30],=RP72MF[30],=RP72WO[30],=RT9K/4[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], + RU4I[30],RV4H[30],RV4I[30],RW4H[30],RW4I[30],RX4H[30],RX4I[30],RY4H[30],RY4I[30],RZ4H[30], + RZ4I[30],U4H[30],U4I[30],UA4H[30],UA4I[30],UB4H[30],UB4I[30],UC4H[30],UC4I[30],UD4H[30],UD4I[30], + UE4H[30],UE4I[30],UF4H[30],UF4I[30],UG4H[30],UG4I[30],UH4H[30],UH4I[30],UI4H[30],UI4I[30], + =R20SAM[30],=R280TLT[30],=R9DA/4[30],=RA9FAA/4/M[30],=RA9SC/4[30],=RA9SC/4/P[30],=RC20HZ[30], + =RC9YA/4/M[30],=RP72AG[30],=RP72I[30],=RP72MF[30],=RP72WO[30],=RT9K/4[30],=RU9CK/4/M[30], =RU9SO/4/M[30],=RV9JD/4/M[30],=RW9SW/4[30],=RW9TP/4[30],=RW9WJ/4[30],=RW9WJ/4/P[30], =RZ4HWF/LH[30],=RZ4HZW/FF[30],=RZ9WU/4/M[30],=UA0KAO/4[30],=UA0QJA/4[30],=UA9JGX/4[30], - =UA9LAO/4[30],=UA9SQG/4/P[30],=UA9SY/4[30],=UB5O/M[30], + =UA9LAO/4[30],=UA9SQG/4/P[30],=UA9SY/4[30], =R01DTV/4,=R9XC/4,=RA9XAF/4,=UA4HIP/4,=UA9JFE/4, - =R8XF/4,=RA9FR/4/P,=RA9XSM/4,=RD9CX/4,=RD9CX/4/P,=RU0LM/4,=RW9XC/4/M,=UA4NF[30],=UA4PCM/M, - =UA9APA/4/P,=UA9FIT/4,=UA9XI/4,=UE9FDA/4,=UE9FDA/4/M,=UE9GDA/4, + =R8XF/4,=RA9FR/4/P,=RA9XSM/4,=RD9CX/4,=RD9CX/4/P,=RU0LM/4,=RW9XC/4/M,=UA4NF[30],=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], =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,=UE23DKA,=UE96MP,=UE9WDA/4,=UE9WDA/4/M, + =RW9WA/4,=RW9WA/4/M,=RZ9WM/4,=UA2FM/4,=UA3AKO/4,=UA4PCM/M,=UA4PN[30],=UA4RF[30],=UA4RW[30], + =UA9AJ/4/M,=UA9JFN/4/M,=UA9JNQ/4,=UA9SG/4,=UE23DKA,=UE96MP,=UE9WDA/4,=UE9WDA/4/M, =R8UT/4/P,=RX9WN/4, =RQ0C/4,=UA9XX/4,=UE9WFF/4, - R4W[30],RA4W[30],RC4W[30],RD4W[30],RE4W[30],RF4W[30],RG4W[30],RI4W[30],RJ4W[30],RK4W[30],RL4W[30], - RM4W[30],RN4W[30],RO4W[30],RQ4W[30],RT4W[30],RU4W[30],RV4W[30],RW4W[30],RX4W[30],RY4W[30], - RZ4W[30],U4W[30],UA4W[30],UB4W[30],UC4W[30],UD4W[30],UE4W[30],UF4W[30],UG4W[30],UH4W[30],UI4W[30], - =R9GM/4[30],=R9UT/4[30],=RA9FDR/4/P[30],=RA9KV/4/M[30],=RA9WU/4[30],=RA9WU/4/M[30],=RA9WU/4/P[30], - =RP72IZ[30],=RW9FWB/4[30],=RW9FWR/4[30],=RW9FWR/4/M[30],=RX9FW/4[30],=UA9UAX/4/M[30], + R4W[30],RA4W[30],RC4W[30],RD4W[30],RE4W[30],RF4W[30],RG4W[30],RJ4W[30],RK4W[30],RL4W[30],RM4W[30], + RN4W[30],RO4W[30],RQ4W[30],RT4W[30],RU4W[30],RV4W[30],RW4W[30],RX4W[30],RY4W[30],RZ4W[30],U4W[30], + UA4W[30],UB4W[30],UC4W[30],UD4W[30],UE4W[30],UF4W[30],UG4W[30],UH4W[30],UI4W[30],=R9GM/4[30], + =R9UT/4[30],=RA9FDR/4/P[30],=RA9KV/4/M[30],=RA9WU/4[30],=RA9WU/4/M[30],=RA9WU/4/P[30],=RP72IZ[30], + =RW9FWB/4[30],=RW9FWR/4[30],=RW9FWR/4/M[30],=RX9FW/4[30],=UA9UAX/4/M[30], =RT9T/4,=RV9MD/4,=UE04YCS,=UE85AGN, =R01DTV,=R01DTV/7,=R0IT/6,=R80TV,=R8XW/6,=R9JO/6,=R9KD/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,=RQ0C/6,=RT9K/6,=RT9K/6/QRP,=RT9K/7,=RU2FB/6,=RU9MX/6,=RU9QRP/6/M, - =RU9QRP/6/P,=RV9FQ/6,=RW0LIF/6,=RW0LIF/6/LH,=RW6AWW/LH,=RW9WA/6,=RX6AA/ANT,=RX6AAP/ANT,=RX9TX/6, - =RZ9HG/6,=RZ9HT/6,=RZ9UF/6,=RZ9UZV/6,=UA0AGE/6,=UA0IT/6,=UA0JL/6,=UA0LQQ/6/P,=UA0SEP/6,=UA2FT/6, - =UA6ADC/N,=UA9CDC/6,=UA9COO/6,=UA9JON/6,=UA9JPX/6,=UA9KB/6,=UA9KJ/6,=UA9KW/6,=UA9MQR/6,=UA9UAX/6, - =UA9VR/6,=UA9XC/6,=UA9XCI/6,=UE9WDA/6,=UE9WFF/6, - =RA6EE/FF,=RN7G/FF,=RT9K/6/P,=UA0LEC/6,=UA9KAS/6,=UA9KAS/6/P, + =RK6AH/LH,=RK9JA/6,=RN0CF/6,=RQ0C/6,=RT9K/6/QRP,=RT9K/7,=RU2FB/6,=RU9MX/6,=RU9QRP/6/M,=RU9QRP/6/P, + =RV9FQ/6,=RW0LIF/6,=RW0LIF/6/LH,=RW6AWW/LH,=RW9WA/6,=RX6AA/ANT,=RX6AAP/ANT,=RX9TX/6,=RZ9HG/6, + =RZ9HT/6,=RZ9UF/6,=RZ9UZV/6,=UA0AGE/6,=UA0IT/6,=UA0JL/6,=UA0LQQ/6/P,=UA0SEP/6,=UA2FT/6,=UA6ADC/N, + =UA9CDC/6,=UA9COO/6,=UA9JON/6,=UA9JPX/6,=UA9KB/6,=UA9KJ/6,=UA9KW/6,=UA9MQR/6,=UA9UAX/6,=UA9VR/6, + =UA9XC/6,=UA9XCI/6,=UE9WDA/6,=UE9WFF/6, + =RA6EE/FF,=RN7G/FF,=RT9K/6,=RT9K/6/P,=UA0LEC/6,=UA9KAS/6,=UA9KAS/6/P, =R9XV/6,=RA0ZG/6,=RA9CHS/6,=RA9CHS/7,=RK7G/FF,=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, =RV9CX/6/M,=UA6IC/FF, =RU2FB/6/P,=UA9UAX/7, =R6LCA/J,=R8WC/6,=R8WC/6/P,=RT9T/6,=RV9CMT/6,=RV9DC/6/P,=RV9LC/6,=RW9XC/6/M,=UA0QBR/6,=UA0ZED/6, - =UA6LP/P/LH,=UA6LV/ANT,=UA6MM/LH,=UE92L, + =UA6LP/P/LH,=UA6LV/ANT,=UA6MM/LH,=UB5O/M,=UE92L, =RV0ANH/6,=RV0APR/6,=RW0AF/6, =R9DA/6,=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,=RV9AB/6, - =R9OM/5/P,=R9XT/6,=RA9KD/6,=RU2FB/5,=RU9WW/5/M,=RW9AW/5,=UA0LLM/5,=UA8WAA/5,=UA9UAX/5,=UE2KR, - =UE98PW, - =UB8ADI/5,=UB8ADI/6,=UE2SE, + =R9MJ/6,=R9OM/5/P,=R9XT/6,=RA9KD/6,=RN9N/6,=RU2FB/5,=RU9WW/5/M,=RV1CC/M,=RW9AW/5,=UA0LLM/5, + =UA8WAA/5,=UA9UAX/5,=UE2KR,=UE98PW, + =R8AEU/6,=R9MJ/6/M,=RN9N/6/M,=UB8ADI/5,=UB8ADI/6,=UE2SE, R8F(17)[30],R8G(17)[30],R9F(17)[30],R9G(17)[30],RA8F(17)[30],RA8G(17)[30],RA9F(17)[30], RA9G(17)[30],RC8F(17)[30],RC8G(17)[30],RC9F(17)[30],RC9G(17)[30],RD8F(17)[30],RD8G(17)[30], RD9F(17)[30],RD9G(17)[30],RE8F(17)[30],RE8G(17)[30],RE9F(17)[30],RE9G(17)[30],RF8F(17)[30], RF8G(17)[30],RF9F(17)[30],RF9G(17)[30],RG8F(17)[30],RG8G(17)[30],RG9F(17)[30],RG9G(17)[30], - RI8F(17)[30],RI8G(17)[30],RI9F(17)[30],RI9G(17)[30],RJ8F(17)[30],RJ8G(17)[30],RJ9F(17)[30], - RJ9G(17)[30],RK8F(17)[30],RK8G(17)[30],RK9F(17)[30],RK9G(17)[30],RL8F(17)[30],RL8G(17)[30], - RL9F(17)[30],RL9G(17)[30],RM8F(17)[30],RM8G(17)[30],RM9F(17)[30],RM9G(17)[30],RN8F(17)[30], - RN8G(17)[30],RN9F(17)[30],RN9G(17)[30],RO8F(17)[30],RO8G(17)[30],RO9F(17)[30],RO9G(17)[30], - RQ8F(17)[30],RQ8G(17)[30],RQ9F(17)[30],RQ9G(17)[30],RT8F(17)[30],RT8G(17)[30],RT9F(17)[30], - RT9G(17)[30],RU8F(17)[30],RU8G(17)[30],RU9F(17)[30],RU9G(17)[30],RV8F(17)[30],RV8G(17)[30], - RV9F(17)[30],RV9G(17)[30],RW8F(17)[30],RW8G(17)[30],RW9F(17)[30],RW9G(17)[30],RX8F(17)[30], - RX8G(17)[30],RX9F(17)[30],RX9G(17)[30],RY8F(17)[30],RY8G(17)[30],RY9F(17)[30],RY9G(17)[30], - RZ8F(17)[30],RZ8G(17)[30],RZ9F(17)[30],RZ9G(17)[30],U8F(17)[30],U8G(17)[30],U9F(17)[30], - U9G(17)[30],UA8F(17)[30],UA8G(17)[30],UA9F(17)[30],UA9G(17)[30],UB8F(17)[30],UB8G(17)[30], - UB9F(17)[30],UB9G(17)[30],UC8F(17)[30],UC8G(17)[30],UC9F(17)[30],UC9G(17)[30],UD8F(17)[30], - UD8G(17)[30],UD9F(17)[30],UD9G(17)[30],UE8F(17)[30],UE8G(17)[30],UE9F(17)[30],UE9G(17)[30], - UF8F(17)[30],UF8G(17)[30],UF9F(17)[30],UF9G(17)[30],UG8F(17)[30],UG8G(17)[30],UG9F(17)[30], - UG9G(17)[30],UH8F(17)[30],UH8G(17)[30],UH9F(17)[30],UH9G(17)[30],UI8F(17)[30],UI8G(17)[30], - UI9F(17)[30],UI9G(17)[30],=R120RP(17)[30],=R155PM(17)[30],=R2011UFO(17)[30],=R2011UFO/M(17)[30], - =R2011UFO/P(17)[30],=R2014WOG(17)[30],=R2AG/9(17)[30],=R34CZF(17)[30],=R8CZ/4/M(17)[30], - =R95FR(17)[30],=R9CZ/4/M(17)[30],=R9KC/8/M(17)[30],=RA27FM(17)[30],=RA9XAI/4(17)[30], + RJ8F(17)[30],RJ8G(17)[30],RJ9F(17)[30],RJ9G(17)[30],RK8F(17)[30],RK8G(17)[30],RK9F(17)[30], + RK9G(17)[30],RL8F(17)[30],RL8G(17)[30],RL9F(17)[30],RL9G(17)[30],RM8F(17)[30],RM8G(17)[30], + RM9F(17)[30],RM9G(17)[30],RN8F(17)[30],RN8G(17)[30],RN9F(17)[30],RN9G(17)[30],RO8F(17)[30], + RO8G(17)[30],RO9F(17)[30],RO9G(17)[30],RQ8F(17)[30],RQ8G(17)[30],RQ9F(17)[30],RQ9G(17)[30], + RT8F(17)[30],RT8G(17)[30],RT9F(17)[30],RT9G(17)[30],RU8F(17)[30],RU8G(17)[30],RU9F(17)[30], + RU9G(17)[30],RV8F(17)[30],RV8G(17)[30],RV9F(17)[30],RV9G(17)[30],RW8F(17)[30],RW8G(17)[30], + RW9F(17)[30],RW9G(17)[30],RX8F(17)[30],RX8G(17)[30],RX9F(17)[30],RX9G(17)[30],RY8F(17)[30], + RY8G(17)[30],RY9F(17)[30],RY9G(17)[30],RZ8F(17)[30],RZ8G(17)[30],RZ9F(17)[30],RZ9G(17)[30], + U8F(17)[30],U8G(17)[30],U9F(17)[30],U9G(17)[30],UA8F(17)[30],UA8G(17)[30],UA9F(17)[30], + UA9G(17)[30],UB8F(17)[30],UB8G(17)[30],UB9F(17)[30],UB9G(17)[30],UC8F(17)[30],UC8G(17)[30], + UC9F(17)[30],UC9G(17)[30],UD8F(17)[30],UD8G(17)[30],UD9F(17)[30],UD9G(17)[30],UE8F(17)[30], + UE8G(17)[30],UE9F(17)[30],UE9G(17)[30],UF8F(17)[30],UF8G(17)[30],UF9F(17)[30],UF9G(17)[30], + UG8F(17)[30],UG8G(17)[30],UG9F(17)[30],UG9G(17)[30],UH8F(17)[30],UH8G(17)[30],UH9F(17)[30], + UH9G(17)[30],UI8F(17)[30],UI8G(17)[30],UI9F(17)[30],UI9G(17)[30],=R120RP(17)[30],=R155PM(17)[30], + =R2011UFO(17)[30],=R2011UFO/M(17)[30],=R2011UFO/P(17)[30],=R2014WOG(17)[30],=R20PRM(17)[30], + =R2AG/9(17)[30],=R34CZF(17)[30],=R8CZ/4(17)[30],=R8CZ/4/M(17)[30],=R95FR(17)[30],=R9CZ/4(17)[30], + =R9CZ/4/M(17)[30],=R9KC/8/M(17)[30],=RA27FM(17)[30],=RA9XAI/4(17)[30],=RC20FM(17)[30], =RD4M/9(17)[30],=RG50P/M(17)[30],=RP70PK(17)[30],=RP9FKU(17)[30],=RP9FTK(17)[30],=RU27FQ(17)[30], =RU27FW(17)[30],=RU4W/9(17)[30],=RV22PM(17)[30],=RX9TX/9(17)[30],=RZ16FM(17)[30],=RZ9WM/9(17)[30], =UA1ZQO/9(17)[30],=UA4NF/4/M(17)[30],=UA4WA/9(17)[30],=UA9CGL/4/M(17)[30],=UA9CUA/4/M(17)[30], @@ -2232,30 +2238,30 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: RZ8X(17)[20],RZ9X(17)[20],U8X(17)[20],U9X(17)[20],UA8X(17)[20],UA9X(17)[20],UB8X(17)[20], UB9X(17)[20],UC8X(17)[20],UC9X(17)[20],UD8X(17)[20],UD9X(17)[20],UE8X(17)[20],UE9X(17)[20], UF8X(17)[20],UF9X(17)[20],UG8X(17)[20],UG9X(17)[20],UH8X(17)[20],UH9X(17)[20],UI8X(17)[20], - UI9X(17)[20],=R100AP(17)[20],=R120RK(17)[20],=R16NOR(17)[20],=R2014I(17)[20],=R35MWC(17)[20], - =R3RRC/9(17)[20],=R5QA/1(17)[20],=R5QQ/1(17)[20],=R6DGL/9/M(17)[20],=R70SRC(17)[20], - =R7BA/9(17)[20],=R7BA/9/M(17)[20],=R8MB/1(17)[20],=R9/UR7IMG(17)[20],=R95KOMI(17)[20], - =R9KD/9(17)[20],=RA/DK5JI(17)[20],=RA/UR5MKH(17)[20],=RA22KO(17)[20],=RA22XA(17)[20], - =RA22XF(17)[20],=RA22XU(17)[20],=RA3AMG/9/M(17)[20],=RA3OM/9(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], - =RK6K/9(17)[20],=RK90DR(17)[20],=RN22OG(17)[20],=RN22OV(17)[20],=RN4ACZ/9(17)[20],=RO25KO(17)[20], - =RP67KR(17)[20],=RP68KR(17)[20],=RP70KW(17)[20],=RP71KW(17)[20],=RP72X(17)[20],=RT73LF(17)[20], - =RV3UI/9(17)[20],=RW1QN/9(17)[20],=RW1QN/9/M(17)[20],=RW1QN/9/P(17)[20],=RW4NJ/9/M(17)[20], - =RY110RAEM(17)[20],=UA1OOX/9(17)[20],=UA1QV/9(17)[20],=UA4WP/9/M(17)[20],=UA6LTO/9(17)[20], - =UB1OAD/1/P(17)[20],=UB1OAD/9/P(17)[20],=UB5O/1/M(17)[20],=UE16ST(17)[20],=UE1RDA/9(17)[20], - =UE85DRK(17)[20],=UE90K(17)[20]; + UI9X(17)[20],=R100AP(17)[20],=R120RK(17)[20],=R16NOR(17)[20],=R2014I(17)[20],=R20SZO(17)[20], + =R35MWC(17)[20],=R3RRC/9(17)[20],=R5QA/1(17)[20],=R5QQ/1(17)[20],=R6DGL/9/M(17)[20], + =R70SRC(17)[20],=R7BA/9(17)[20],=R7BA/9/M(17)[20],=R8MB/1(17)[20],=R9/UR7IMG(17)[20], + =R95KOMI(17)[20],=R9KD/9(17)[20],=RA/DK5JI(17)[20],=RA/UR5MKH(17)[20],=RA22KO(17)[20], + =RA22XA(17)[20],=RA22XF(17)[20],=RA22XU(17)[20],=RA3AMG/9/M(17)[20],=RA3OM/9(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],=RK6K/9(17)[20],=RK90DR(17)[20],=RN22OG(17)[20],=RN22OV(17)[20], + =RN4ACZ/9(17)[20],=RO25KO(17)[20],=RP67KR(17)[20],=RP68KR(17)[20],=RP70KW(17)[20],=RP71KW(17)[20], + =RP72X(17)[20],=RT73LF(17)[20],=RV3UI/9(17)[20],=RW1QN/9(17)[20],=RW1QN/9/M(17)[20], + =RW1QN/9/P(17)[20],=RW4NJ/9/M(17)[20],=RY110RAEM(17)[20],=UA1OOX/9(17)[20],=UA1QV/9(17)[20], + =UA4WP/9/M(17)[20],=UA6LTO/9(17)[20],=UB1OAD/1/P(17)[20],=UB1OAD/9/P(17)[20],=UB5O/1/M(17)[20], + =UE16ST(17)[20],=UE1RDA/9(17)[20],=UE85DRK(17)[20],=UE90K(17)[20]; Kaliningrad: 15: 29: EU: 54.72: -20.52: -3.0: UA2: - R110,R2F,R2K,RA2,RC2F,RC2K,RD2F,RD2K,RE2F,RE2K,RF2F,RF2K,RG2F,RG2K,RI2F,RI2K,RJ2F,RJ2K,RK2F,RK2K, - RL2F,RL2K,RM2F,RM2K,RN2F,RN2K,RO2F,RO2K,RQ2F,RQ2K,RT2F,RT2K,RU2F,RU2K,RV2F,RV2K,RW2F,RW2K,RX2F, - RX2K,RY2F,RY2K,RZ2F,RZ2K,U2F,U2K,UA2,UB2,UC2,UD2,UE2,UF2,UG2,UH2,UI2,=R01DTV/2,=R10RLHA/2, - =R10RTRS/2,=R1255F,=R1336FO,=R14CWC/2,=R15CWC/2,=R15CWC/2/QRP,=R1NW/2,=R1QAP/2,=R2/DK2AI, - =R2/DL1YMK,=R2/N6TCZ,=R2/R6AF,=R2/UA6LV,=R2/UR0MC,=R21GGGR,=R22GGGR,=R22GGR,=R25ARCK/2,=R2MWO, - =R310A/2,=R3SRR/2,=R5K/2,=R5QA/2,=R60A,=R680FBO,=R6AF/2,=R7LV/2,=R900BL/2,=RA/DL6KV,=RA/EU1FY/P, - =RA2FDX/FF,=RA2FN/RP,=RA3ATX/2,=RA4LW/2,=RD22FU,=RD3FG/2,=RG210F,=RJ22DX,=RK3QS/2,=RM9I/2, - =RN3GM/2,=RP2F,=RP2K,=RP70KB,=RP70KG,=RP70MW,=RP70WB,=RT9T/2,=RU3FS/2,=RU5A/2,=RV3FF/2,=RV3MA/2, - =RV3UK/2,=RV9WZ/2,=RW9QA/2,=RY1AAA/2,=RZ3FA/2,=RZ6HB/2,=UA0SIK/2,=UA1AAE/2,=UA1AFT/2,=UA2DC/RP, - =UA2FM/MM(13),=UA3DJG/2,=UA4RC/2,=UA4WHX/2,=UA9UAX/2,=UB5O/2,=UB5O/2/M,=UB9KAA/2,=UE08F,=UE1RLH/2, - =UE3QRP/2,=UE6MAC/2,=UF1M/2; + R2F,R2K,RA2,RC2F,RC2K,RD2F,RD2K,RE2F,RE2K,RF2F,RF2K,RG2F,RG2K,RJ2F,RJ2K,RK2F,RK2K,RL2F,RL2K,RM2F, + RM2K,RN2F,RN2K,RO2F,RO2K,RQ2F,RQ2K,RT2F,RT2K,RU2F,RU2K,RV2F,RV2K,RW2F,RW2K,RX2F,RX2K,RY2F,RY2K, + RZ2F,RZ2K,U2F,U2K,UA2,UB2,UC2,UD2,UE2,UF2,UG2,UH2,UI2,=R01DTV/2,=R10RLHA/2,=R10RTRS/2,=R1255F, + =R1336FO,=R14CWC/2,=R15CWC/2,=R15CWC/2/QRP,=R1NW/2,=R1QAP/2,=R2/DK2AI,=R2/DL1YMK,=R2/N6TCZ, + =R2/R6AF,=R2/UA6LV,=R2/UR0MC,=R21GGGR,=R22GGGR,=R22GGR,=R25ARCK/2,=R2MWO,=R310A/2,=R3SRR/2,=R5K/2, + =R5QA/2,=R60A,=R680FBO,=R6AF/2,=R7LV/2,=R900BL/2,=RA/DL6KV,=RA/EU1FY/P,=RA2FDX/FF,=RA2FN/RP, + =RA3ATX/2,=RA4LW/2,=RD22FU,=RD3FG/2,=RJ22DX,=RK3QS/2,=RM9I/2,=RN3GM/2,=RO2F,=RP2F,=RP2K,=RP70KB, + =RP70KG,=RP70MW,=RP70WB,=RT9T/2,=RU3FS/2,=RU5A/2,=RV3FF/2,=RV3MA/2,=RV3UK/2,=RV9WZ/2,=RW9QA/2, + =RY1AAA/2,=RZ3FA/2,=RZ6HB/2,=UA0SIK/2,=UA1AAE/2,=UA1AFT/2,=UA2DC/RP,=UA2FM/MM(13),=UA3DJG/2, + =UA4RC/2,=UA4WHX/2,=UA9UAX/2,=UB5O/2,=UB5O/2/M,=UB9KAA/2,=UE08F,=UE1RLH/2,=UE3QRP/2,=UE6MAC/2, + =UF1M/2; Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: R0(19)[33],R8,R9,RA0(19)[33],RA8,RA9,RC0(19)[33],RC8,RC9,RD0(19)[33],RD8,RD9,RE0(19)[33],RE8,RE9, RF0(19)[33],RF8,RF9,RG0(19)[33],RG8,RG9,RI0(19)[33],RI8,RI9,RJ0(19)[33],RJ8,RJ9,RK0(19)[33],RK8, @@ -2265,72 +2271,73 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UB0(19)[33],UB8,UB9,UC0(19)[33],UC8,UC9,UD0(19)[33],UD8,UD9,UE0(19)[33],UE8,UE9,UF0(19)[33],UF8, UF9,UG0(19)[33],UG8,UG9,UH0(19)[33],UH8,UH9,UI0(19)[33],UI8,UI9,=R0FK(40)[75],=R0PA(40)[75], =R0POL(40)[75],=R0UPOL(40)[75],=R14CWC/0(19),=R18KDR/0(19),=R18KDR/8,=R2AKM/0(19),=R34SP(40)[75], - =R35NP,=RA0CCK/8,=RA0QK/8,=RA1WS/9,=RA4AAJ/9(18),=RD1AL/0(40)[75],=RD3ARX/0/P(19),=RJ17WG(18), - =RM17NY,=RN3QOP/9,=RQ17WG,=RQ4D/9(18),=RT4C/8,=RU17NY(18),=RV3PZ/9,=RW1AI/0(19),=RW55YG, + =R35NP,=R4CDO/9/M(18),=RA0CCK/8,=RA0QK/8,=RA1WS/9,=RA4AAJ/9(18),=RD1AL/0(40)[75],=RD3ARX/0/P(19), + =RJ17WG,=RM17NY,=RN3QOP/9,=RQ17WG,=RQ4D/9(18),=RT4C/8,=RU17NY(18),=RV3PZ/9,=RW1AI/0(19),=RW55YG, =RX17WG(19),=RX55YG(18),=RX80SP(18),=RY1AAB/0/M(19),=RY80SP(19),=RZ17NY(19),=UA0ZDA/MM(29), =UA3DND/8, - =R120RG,=R2014Y,=R2015TL,=R22SKE,=R280A,=R280B,=R3HD/9,=R3RRC/8,=R55TV,=R70PW,=R70PW/P,=R9SRR, - =RA1AIP/9/P,=RA1AR/9,=RA1QR/9,=RA3WJ/9,=RA3XBN/9,=RA3ZM/8,=RA4FSC/9,=RA4HGN/9,=RA9SC/9,=RD3BN/9, - =RD4CAQ/9,=RG110RAEM,=RJ17CW,=RK9SZZ/9,=RN4WA/9,=RN9O/8,=RP67TG,=RP68MZ,=RP70AZ,=RP70PM,=RP70TG, - =RP71AZ,=RP71TG,=RP72AZ,=RP72MS,=RP72TG,=RQ4D/8,=RT60RT,=RT73AB,=RU22AZ,=RV1AQ/9,=RV1CC/8, - =RV1CC/8/M,=RV1CC/9,=RV3BA/9,=RV9WB/9/M,=RV9WMZ/9/P,=RX3RC/9,=RX9WN/9/M,=RZ0OO/9,=RZ6DR/9/M, - =RZ9OO/9/M,=UA0MF/9,=UA3AKO/8,=UA4RC/9,=UA6A/9,=UA6CW/9,=UA6YGY/8,=UA6YGY/9,=UA8WAA/9,=UA8WAA/9/P, - =UA9CGL/9/M,=UA9SG/9,=UA9TO/9/M,=UA9WMN/9/P,=UE45AWT,=UE9WDA/9, + =R120RG,=R2014Y,=R2015TL,=R20UFO,=R22SKE,=R280A,=R280B,=R3HD/9,=R3RRC/8,=R55TV,=R70PW,=R70PW/P, + =R9SRR,=RA1AIP/9/P,=RA1AR/9,=RA1QR/9,=RA3WJ/9,=RA3XBN/9,=RA3ZM/8,=RA4FSC/9,=RA4HGN/9,=RA9SC/9, + =RC20AB,=RC20AC,=RD3BN/9,=RD4CAQ/9,=RG110RAEM,=RJ17CW,=RK9SZZ/9,=RL9AA/P,=RN4WA/9,=RN9O/8,=RP67TG, + =RP68MZ,=RP70AZ,=RP70PM,=RP70TG,=RP71AZ,=RP71TG,=RP72AZ,=RP72MS,=RP72TG,=RQ4D/8,=RT60RT,=RT73AB, + =RU22AZ,=RV1AQ/9,=RV1CC/8,=RV1CC/8/M,=RV1CC/9,=RV3BA/9,=RV9WB/9/M,=RV9WMZ/9/P,=RX3RC/9,=RX9WN/9/M, + =RZ0OO/9,=RZ6DR/9/M,=RZ9OO/9/M,=UA0MF/9,=UA3AKO/8,=UA4RC/9,=UA6A/9,=UA6CW/9,=UA6YGY/8,=UA6YGY/9, + =UA8WAA/9,=UA8WAA/9/P,=UA9CGL/9/M,=UA9SG/9,=UA9TO/9/M,=UA9WMN/9/P,=UE45AWT,=UE70AAA,=UE9WDA/9, =R01DTV/8,=R14CWC/8,=R14CWC/9,=R150DMP,=R155AP,=R15CWC/8,=R15CWC/8/QRP,=R16SVK,=R170GS/8,=R2015BP, - =R2015R,=R2016DR,=R22SKJ,=R27EKB,=R30ZF,=R35CZF,=R375I,=R44YETI/8,=R4WAB/9/P,=R55EPC,=R55EPC/P, - =R6UAE/9,=R70NIK,=RA/DD7QJ,=RA/DL6XK,=RA/US5ETV,=RA0BA/8,=RA0BA/9,=RA27AA,=RA27EK,=RA36GS,=RA36ZF, - =RA4YW/9,=RA4YW/9/M,=RA9FW/9,=RA9WU/9,=RD0B/8,=RK9AD/9/M,=RK9DR/N,=RM0B/9,=RN16CW,=RN17CW, - =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,=RT4W/9,=RT73BR,=RT73EB,=RT73FL,=RT73HE,=RT73KB,=RT73SK,=RU22CR, - =RU5D/8,=RU5D/9,=RV6LGY/9,=RV6LGY/9/M,=RV6LGY/9/P,=RV6MD/9,=RW0BG/9,=RW4NX/9,=RW9C[20],=RX0SD/9, - =RX9UL/9,=RY9C/P,=RZ37ZF,=RZ38ZF,=RZ39ZF,=UA0BA/8,=UA3IHJ/8,=UA4WHX/9,=UA8WAA/8,=UA9MW/9, - =UA9UAX/8,=UA9UAX/8/M,=UB5O/8,=UE16SR,=UE25F,=UE40CZF,=UE4NFF/9,=UE56S,=UE64RWA,=UE70SL, + =R2015R,=R2016DR,=R20EKB,=R22SKJ,=R27EKB,=R30ZF,=R35CZF,=R375I,=R44YETI/8,=R4WAB/9/P,=R55EPC, + =R55EPC/P,=R60SAT,=R6UAE/9,=R70NIK,=RA/DD7QJ,=RA/DL6XK,=RA/US5ETV,=RA0BA/8,=RA0BA/9,=RA27AA, + =RA27EK,=RA36GS,=RA36ZF,=RA4YW/9,=RA4YW/9/M,=RA9FW/9,=RA9WU/9,=RD0B/8,=RK9AD/9/M,=RK9DR/N,=RM0B/9, + =RN16CW,=RN17CW,=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,=RT4W/9,=RT73BR,=RT73EB,=RT73FL,=RT73HE,=RT73KB, + =RT73SK,=RU22CR,=RU5D/8,=RU5D/9,=RV6LGY/9,=RV6LGY/9/M,=RV6LGY/9/P,=RV6MD/9,=RW0BG/9,=RW4NX/9, + =RW9C[20],=RX0SD/9,=RX9UL/9,=RY9C/P,=RZ37ZF,=RZ38ZF,=RZ39ZF,=UA0BA/8,=UA3IHJ/8,=UA4WHX/9, + =UA8WAA/8,=UA9MW/9,=UA9UAX/8,=UA9UAX/8/M,=UB5O/8,=UE16SR,=UE25F,=UE40CZF,=UE4NFF/9,=UE56S, + =UE64RWA,=UE70SL, 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], RF8I(18)[31],RF9H(18)[31],RF9I(18)[31],RG8H(18)[31],RG8I(18)[31],RG9H(18)[31],RG9I(18)[31], - RI8H(18)[31],RI8I(18)[31],RI9H(18)[31],RI9I(18)[31],RJ8H(18)[31],RJ8I(18)[31],RJ9H(18)[31], - RJ9I(18)[31],RK8H(18)[31],RK8I(18)[31],RK9H(18)[31],RK9I(18)[31],RL8H(18)[31],RL8I(18)[31], - RL9H(18)[31],RL9I(18)[31],RM8H(18)[31],RM8I(18)[31],RM9H(18)[31],RM9I(18)[31],RN8H(18)[31], - RN8I(18)[31],RN9H(18)[31],RN9I(18)[31],RO8H(18)[31],RO8I(18)[31],RO9H(18)[31],RO9I(18)[31], - RQ8H(18)[31],RQ8I(18)[31],RQ9H(18)[31],RQ9I(18)[31],RT8H(18)[31],RT8I(18)[31],RT9H(18)[31], - RT9I(18)[31],RU8H(18)[31],RU8I(18)[31],RU9H(18)[31],RU9I(18)[31],RV8H(18)[31],RV8I(18)[31], - RV9H(18)[31],RV9I(18)[31],RW8H(18)[31],RW8I(18)[31],RW9H(18)[31],RW9I(18)[31],RX8H(18)[31], - RX8I(18)[31],RX9H(18)[31],RX9I(18)[31],RY8H(18)[31],RY8I(18)[31],RY9H(18)[31],RY9I(18)[31], - RZ8H(18)[31],RZ8I(18)[31],RZ9H(18)[31],RZ9I(18)[31],U8H(18)[31],U8I(18)[31],U9H(18)[31], - U9I(18)[31],UA8H(18)[31],UA8I(18)[31],UA9H(18)[31],UA9I(18)[31],UB8H(18)[31],UB8I(18)[31], - UB9H(18)[31],UB9I(18)[31],UC8H(18)[31],UC8I(18)[31],UC9H(18)[31],UC9I(18)[31],UD8H(18)[31], - UD8I(18)[31],UD9H(18)[31],UD9I(18)[31],UE8H(18)[31],UE8I(18)[31],UE9H(18)[31],UE9I(18)[31], - UF8H(18)[31],UF8I(18)[31],UF9H(18)[31],UF9I(18)[31],UG8H(18)[31],UG8I(18)[31],UG9H(18)[31], - UG9I(18)[31],UH8H(18)[31],UH8I(18)[31],UH9H(18)[31],UH9I(18)[31],UI8H(18)[31],UI8I(18)[31], - UI9H(18)[31],UI9I(18)[31],=R135TU(18)[31],=R9/UN0C(18)[31],=R9MJ/9(18)[31],=RA9JG/9/P(18)[31], - =RA9ODR/9/M(18)[31],=RAEM(18)[31],=RP9H(18)[31],=RQ110RAEM(18)[31],=RQ9I(18)[31],=RU9AZ/9(18)[31], - =RV3LO/9(18)[31],=RZ9HK/FF(18)[31],=RZ9HX/FF(18)[31],=UA9JFN/9/M(18)[31],=UA9MUY/9(18)[31], - =UA9OAP/9/P(18)[31],=UA9UAX/9/M(18)[31],=UE14TS(18)[31],=UE9FDA/9(18)[31], + RJ8H(18)[31],RJ8I(18)[31],RJ9H(18)[31],RJ9I(18)[31],RK8H(18)[31],RK8I(18)[31],RK9H(18)[31], + RK9I(18)[31],RL8H(18)[31],RL8I(18)[31],RL9H(18)[31],RL9I(18)[31],RM8H(18)[31],RM8I(18)[31], + RM9H(18)[31],RM9I(18)[31],RN8H(18)[31],RN8I(18)[31],RN9H(18)[31],RN9I(18)[31],RO8H(18)[31], + RO8I(18)[31],RO9H(18)[31],RO9I(18)[31],RQ8H(18)[31],RQ8I(18)[31],RQ9H(18)[31],RQ9I(18)[31], + RT8H(18)[31],RT8I(18)[31],RT9H(18)[31],RT9I(18)[31],RU8H(18)[31],RU8I(18)[31],RU9H(18)[31], + RU9I(18)[31],RV8H(18)[31],RV8I(18)[31],RV9H(18)[31],RV9I(18)[31],RW8H(18)[31],RW8I(18)[31], + RW9H(18)[31],RW9I(18)[31],RX8H(18)[31],RX8I(18)[31],RX9H(18)[31],RX9I(18)[31],RY8H(18)[31], + RY8I(18)[31],RY9H(18)[31],RY9I(18)[31],RZ8H(18)[31],RZ8I(18)[31],RZ9H(18)[31],RZ9I(18)[31], + U8H(18)[31],U8I(18)[31],U9H(18)[31],U9I(18)[31],UA8H(18)[31],UA8I(18)[31],UA9H(18)[31], + UA9I(18)[31],UB8H(18)[31],UB8I(18)[31],UB9H(18)[31],UB9I(18)[31],UC8H(18)[31],UC8I(18)[31], + UC9H(18)[31],UC9I(18)[31],UD8H(18)[31],UD8I(18)[31],UD9H(18)[31],UD9I(18)[31],UE8H(18)[31], + UE8I(18)[31],UE9H(18)[31],UE9I(18)[31],UF8H(18)[31],UF8I(18)[31],UF9H(18)[31],UF9I(18)[31], + UG8H(18)[31],UG8I(18)[31],UG9H(18)[31],UG9I(18)[31],UH8H(18)[31],UH8I(18)[31],UH9H(18)[31], + UH9I(18)[31],UI8H(18)[31],UI8I(18)[31],UI9H(18)[31],UI9I(18)[31],=R135TU(18)[31],=R9/UN0C(18)[31], + =R9MJ/9(18)[31],=RA9JG/9/P(18)[31],=RA9ODR/9/M(18)[31],=RAEM(18)[31],=RN9HM/A(18)[31], + =RN9HM/P(18)[31],=RP9H(18)[31],=RQ110RAEM(18)[31],=RQ9I(18)[31],=RU9AZ/9(18)[31],=RV3LO/9(18)[31], + =RZ9HK/FF(18)[31],=RZ9HX/FF(18)[31],=UA9JFN/9/M(18)[31],=UA9MUY/9(18)[31],=UA9OAP/9/P(18)[31], + =UA9UAX/9/M(18)[31],=UE14TS(18)[31],=UE9FDA/9(18)[31], R8J[20],R9J[20],RA8J[20],RA9J[20],RC8J[20],RC9J[20],RD8J[20],RD9J[20],RE8J[20],RE9J[20],RF8J[20], - RF9J[20],RG8J[20],RG9J[20],RI8J[20],RI9J[20],RJ8J[20],RJ9J[20],RK8J[20],RK9J[20],RL8J[20], - RL9J[20],RM8J[20],RM9J[20],RN8J[20],RN9J[20],RO8J[20],RO9J[20],RQ8J[20],RQ9J[20],RT8J[20], - RT9J[20],RU8J[20],RU9J[20],RV8J[20],RV9J[20],RW8J[20],RW9J[20],RX8J[20],RX9J[20],RY8J[20], - RY9J[20],RZ8J[20],RZ9J[20],U8J[20],U9J[20],UA8J[20],UA9J[20],UB8J[20],UB9J[20],UC8J[20],UC9J[20], - UD8J[20],UD9J[20],UE8J[20],UE9J[20],UF8J[20],UF9J[20],UG8J[20],UG9J[20],UH8J[20],UH9J[20], - UI8J[20],UI9J[20],=R120RJ[20],=R15UGRA[20],=R25ARCK/8[20],=R2AEA/9[20],=R4YAC/9[20],=RA/UR8IF[20], - =RA/UT2LA[20],=RA1QBH/9[20],=RA3ARS/9[20],=RA3ARS/9/M[20],=RA3QQI/8[20],=RA4FCJ/9[20], - =RA4HRM/9[20],=RA4RU/9/P[20],=RA9WN/9[20],=RD4HM/9[20],=RK4PA/9[20],=RK6ANP/9[20],=RK6YM/8[20], + RF9J[20],RG8J[20],RG9J[20],RJ8J[20],RJ9J[20],RK8J[20],RK9J[20],RL8J[20],RL9J[20],RM8J[20], + RM9J[20],RN8J[20],RN9J[20],RO8J[20],RO9J[20],RQ8J[20],RQ9J[20],RT8J[20],RT9J[20],RU8J[20], + RU9J[20],RV8J[20],RV9J[20],RW8J[20],RW9J[20],RX8J[20],RX9J[20],RY8J[20],RY9J[20],RZ8J[20], + RZ9J[20],U8J[20],U9J[20],UA8J[20],UA9J[20],UB8J[20],UB9J[20],UC8J[20],UC9J[20],UD8J[20],UD9J[20], + UE8J[20],UE9J[20],UF8J[20],UF9J[20],UG8J[20],UG9J[20],UH8J[20],UH9J[20],UI8J[20],UI9J[20], + =R120RJ[20],=R15UGRA[20],=R25ARCK/8[20],=R2AEA/9[20],=R4YAC/9[20],=RA/UR8IF[20],=RA/UT2LA[20], + =RA1QBH/9[20],=RA3ARS/9[20],=RA3ARS/9/M[20],=RA3QQI/8[20],=RA4FCJ/9[20],=RA4HRM/9[20], + =RA4RU/9/P[20],=RA9WN/9[20],=RD4HM/9[20],=RJ9J[20],=RK4PA/9[20],=RK6ANP/9[20],=RK6YM/8[20], =RK6YM/9[20],=RP67GS[20],=RP68GS[20],=RP68J[20],=RP68LK[20],=RP69GS[20],=RP69SF[20],=RP70GS[20], =RP70LF[20],=RP70SF[20],=RP70SU[20],=RP70YF[20],=RP71GS[20],=RP71LF[20],=RP71SF[20],=RP72DS[20], =RP72GS[20],=RP72SF[20],=RP72YF[20],=RU6YD/9[20],=RV6YM/9[20],=RW4HOH/9[20],=RW4LX/9[20], =RW6AHV/9[20],=RW9WX/9[20],=RX3BP/9[20],=RX3BP/9/MM[20],=RZ9WF/8[20],=RZ9WF/9[20],=UA3ZAF/9[20], =UA6WIO/9[20],=UA9JFN/M[20], R8K[20],R9K[20],RA8K[20],RA9K[20],RC8K[20],RC9K[20],RD8K[20],RD9K[20],RE8K[20],RE9K[20],RF8K[20], - RF9K[20],RG8K[20],RG9K[20],RI8K[20],RI9K[20],RJ8K[20],RJ9K[20],RK8K[20],RK9K[20],RL8K[20], - RL9K[20],RM8K[20],RM9K[20],RN8K[20],RN9K[20],RO8K[20],RO9K[20],RQ8K[20],RQ9K[20],RT8K[20], - RT9K[20],RU8K[20],RU9K[20],RV8K[20],RV9K[20],RW8K[20],RW9K[20],RX8K[20],RX9K[20],RY8K[20], - RY9K[20],RZ8K[20],RZ9K[20],U8K[20],U9K[20],UA8K[20],UA9K[20],UB8K[20],UB9K[20],UC8K[20],UC9K[20], - UD8K[20],UD9K[20],UE8K[20],UE9K[20],UF8K[20],UF9K[20],UG8K[20],UG9K[20],UH8K[20],UH9K[20], - UI8K[20],UI9K[20],=R120RU[20],=R16LEV[20],=R1ZY/8[20],=R1ZY/9[20],=R20RRC/8[20],=R3CA/8[20], - =R8XW/8[20],=R9XC/9[20],=R9XT/9[20],=RA/EW1RR[20],=RA/EW2R[20],=RA4RU/9[20],=RC8X/9[20], - =RC9XM/8[20],=RK6CT/9[20],=RN0CF/9[20],=RN3OF/9[20],=RU6UR/9[20],=RV6ARQ/9[20],=RV6LFE/9[20], + RF9K[20],RG8K[20],RG9K[20],RI9K[20],RJ8K[20],RJ9K[20],RK8K[20],RK9K[20],RL8K[20],RL9K[20], + RM8K[20],RM9K[20],RN8K[20],RN9K[20],RO8K[20],RO9K[20],RQ8K[20],RQ9K[20],RT8K[20],RT9K[20], + RU8K[20],RU9K[20],RV8K[20],RV9K[20],RW8K[20],RW9K[20],RX8K[20],RX9K[20],RY8K[20],RY9K[20], + RZ8K[20],RZ9K[20],U8K[20],U9K[20],UA8K[20],UA9K[20],UB8K[20],UB9K[20],UC8K[20],UC9K[20],UD8K[20], + UD9K[20],UE8K[20],UE9K[20],UF8K[20],UF9K[20],UG8K[20],UG9K[20],UH8K[20],UH9K[20],UI8K[20], + UI9K[20],=R120RU[20],=R16LEV[20],=R1ZY/8[20],=R1ZY/9[20],=R20RRC/8[20],=R3CA/8[20],=R8XW/8[20], + =R9XC/9[20],=R9XT/9[20],=RA/EW1RR[20],=RA/EW2R[20],=RA4RU/9[20],=RC8X/9[20],=RC9XM/8[20], + =RI9K[20],=RK6CT/9[20],=RN0CF/9[20],=RN3OF/9[20],=RU6UR/9[20],=RV6ARQ/9[20],=RV6LFE/9[20], =RW0BB/9[20],=RW0BB/9/LH[20],=RW4AA/9[20],=RW4HIF/9[20],=RW4HIH/9[20],=RW6BA/9[20],=RW9XU/9[20], =RX6CP/8[20],=RX6LMA/9[20],=RX9SN/8[20],=RZ5D/8[20],=UA0KY/9[20],=UA0QMU/0[20],=UA0QQO/9/P[20], =UA1FBP/9[20],=UA1PBA/9[20],=UA1PBP/9[20],=UA3DFM/8[20],=UA3DFM/9[20],=UA3MGA/9[20],=UA6BTN/9[20], @@ -2341,134 +2348,134 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =RP70LL,=RP70LM,=RP70P,=RP70TM,=RP71GP,=RP71LL,=RP71P,=RP72GP,=RP72LL,=RP72P,=RP72PJ,=RR110RAEM, =RU22LR,=RW0QJ/9,=RX4W/8,=RX6DL/8,=RX6DL/8/P,=RX6DL/8/P/QRP,=RX6DL/9/P,=RZ9MXM/9/M,=UE44Y/8, =UE9FDA/9/M,=UE9MDA/9, - =R16CAN,=R1716K,=R1716M,=R1716O,=R1716S,=RA22MX,=RA4CQ/9/M,=RA9MR/0,=RA9MX/P,=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,=RP8M,=RT22MC,=RT22MD, - =RV0SR/9,=RW22MW,=RY22MC,=UA1ZGD/9,=UA3AKO/9,=UB5O/9,=UE55OM,=UE70KRM/9,=UE70KRM/9/M,=UE9OFF/9, + =R16CAN,=R1716K,=R1716M,=R1716O,=R1716S,=RA22MX,=RA4CQ/9/M,=RA9MR/0,=RA9MX/P,=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,=RP8M,=RT22MC, + =RT22MD,=RV0SR/9,=RW22MW,=RY22MC,=UA1ZGD/9,=UA3AKO/9,=UB5O/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], RD9O(18)[31],RD9P(18)[31],RE8O(18)[31],RE8P(18)[31],RE9O(18)[31],RE9P(18)[31],RF8O(18)[31], RF8P(18)[31],RF9O(18)[31],RF9P(18)[31],RG8O(18)[31],RG8P(18)[31],RG9O(18)[31],RG9P(18)[31], - RI8O(18)[31],RI8P(18)[31],RI9O(18)[31],RI9P(18)[31],RJ8O(18)[31],RJ8P(18)[31],RJ9O(18)[31], - RJ9P(18)[31],RK8O(18)[31],RK8P(18)[31],RK9O(18)[31],RK9P(18)[31],RL8O(18)[31],RL8P(18)[31], - RL9O(18)[31],RL9P(18)[31],RM8O(18)[31],RM8P(18)[31],RM9O(18)[31],RM9P(18)[31],RN8O(18)[31], - RN8P(18)[31],RN9O(18)[31],RN9P(18)[31],RO8O(18)[31],RO8P(18)[31],RO9O(18)[31],RO9P(18)[31], - RQ8O(18)[31],RQ8P(18)[31],RQ9O(18)[31],RQ9P(18)[31],RT8O(18)[31],RT8P(18)[31],RT9O(18)[31], - RT9P(18)[31],RU8O(18)[31],RU8P(18)[31],RU9O(18)[31],RU9P(18)[31],RV8O(18)[31],RV8P(18)[31], - RV9O(18)[31],RV9P(18)[31],RW8O(18)[31],RW8P(18)[31],RW9O(18)[31],RW9P(18)[31],RX8O(18)[31], - RX8P(18)[31],RX9O(18)[31],RX9P(18)[31],RY8O(18)[31],RY8P(18)[31],RY9O(18)[31],RY9P(18)[31], - RZ8O(18)[31],RZ8P(18)[31],RZ9O(18)[31],RZ9P(18)[31],U8O(18)[31],U8P(18)[31],U9O(18)[31], - U9P(18)[31],UA8O(18)[31],UA8P(18)[31],UA9O(18)[31],UA9P(18)[31],UB8O(18)[31],UB8P(18)[31], - UB9O(18)[31],UB9P(18)[31],UC8O(18)[31],UC8P(18)[31],UC9O(18)[31],UC9P(18)[31],UD8O(18)[31], - UD8P(18)[31],UD9O(18)[31],UD9P(18)[31],UE8O(18)[31],UE8P(18)[31],UE9O(18)[31],UE9P(18)[31], - UF8O(18)[31],UF8P(18)[31],UF9O(18)[31],UF9P(18)[31],UG8O(18)[31],UG8P(18)[31],UG9O(18)[31], - UG9P(18)[31],UH8O(18)[31],UH8P(18)[31],UH9O(18)[31],UH9P(18)[31],UI8O(18)[31],UI8P(18)[31], - UI9O(18)[31],UI9P(18)[31],=R0LY/9(18)[31],=R0QA/9(18)[31],=R100MP(18)[31],=R110RAEM(18)[31], - =R111EK(18)[31],=R120RW(18)[31],=R15CWC/9(18)[31],=R2013T(18)[31],=R2013TP(18)[31], - =R2017T(18)[31],=R27ODR(18)[31],=R27ODR/M(18)[31],=R27ODW(18)[31],=R27OGA(18)[31],=R27OGF(18)[31], - =R27OSN(18)[31],=R27OUO(18)[31],=R8OA/9/P(18)[31],=R8SRR(18)[31],=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],=RA4FRH/0/P(18)[31],=RA9JJ/9/M(18)[31],=RA9MX/9(18)[31],=RC1M/9(18)[31], - =RC1M/9/M(18)[31],=RN9N/9/M(18)[31],=RP67MP(18)[31],=RP68MP(18)[31],=RP70MP(18)[31], - =RP71MP(18)[31],=RP72MP(18)[31],=RP9OMP(18)[31],=RP9OW(18)[31],=RQ16CW(18)[31],=RQ17CW(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],=UE80NSO(18)[31], - =R110RP,=R120RDP,=R120RZ,=R120TM,=R150RP,=R155RP,=RA22QF,=RP65R,=RP67KE,=RP67R,=RP68KE,=RP68R, - =RP69KE,=RP69R,=RP70KE,=RP70R,=RP71R,=RP72KE,=RP72R,=RT73CW,=RT73JH,=RV3MN/9,=RW22QA,=RW22QA/8, - =RW22QC,=RW22QC/8,=RW4NW/9,=RY22RZ,=RZ9WM/9/M,=UE4WFF/9,=UE4WFF/9/P,=UE70KRM/8/M, + RJ8O(18)[31],RJ8P(18)[31],RJ9O(18)[31],RJ9P(18)[31],RK8O(18)[31],RK8P(18)[31],RK9O(18)[31], + RK9P(18)[31],RL8O(18)[31],RL8P(18)[31],RL9O(18)[31],RL9P(18)[31],RM8O(18)[31],RM8P(18)[31], + RM9O(18)[31],RM9P(18)[31],RN8O(18)[31],RN8P(18)[31],RN9O(18)[31],RN9P(18)[31],RO8O(18)[31], + RO8P(18)[31],RO9O(18)[31],RO9P(18)[31],RQ8O(18)[31],RQ8P(18)[31],RQ9O(18)[31],RQ9P(18)[31], + RT8O(18)[31],RT8P(18)[31],RT9O(18)[31],RT9P(18)[31],RU8O(18)[31],RU8P(18)[31],RU9O(18)[31], + RU9P(18)[31],RV8O(18)[31],RV8P(18)[31],RV9O(18)[31],RV9P(18)[31],RW8O(18)[31],RW8P(18)[31], + RW9O(18)[31],RW9P(18)[31],RX8O(18)[31],RX8P(18)[31],RX9O(18)[31],RX9P(18)[31],RY8O(18)[31], + RY8P(18)[31],RY9O(18)[31],RY9P(18)[31],RZ8O(18)[31],RZ8P(18)[31],RZ9O(18)[31],RZ9P(18)[31], + U8O(18)[31],U8P(18)[31],U9O(18)[31],U9P(18)[31],UA8O(18)[31],UA8P(18)[31],UA9O(18)[31], + UA9P(18)[31],UB8O(18)[31],UB8P(18)[31],UB9O(18)[31],UB9P(18)[31],UC8O(18)[31],UC8P(18)[31], + UC9O(18)[31],UC9P(18)[31],UD8O(18)[31],UD8P(18)[31],UD9O(18)[31],UD9P(18)[31],UE8O(18)[31], + UE8P(18)[31],UE9O(18)[31],UE9P(18)[31],UF8O(18)[31],UF8P(18)[31],UF9O(18)[31],UF9P(18)[31], + UG8O(18)[31],UG8P(18)[31],UG9O(18)[31],UG9P(18)[31],UH8O(18)[31],UH8P(18)[31],UH9O(18)[31], + UH9P(18)[31],UI8O(18)[31],UI8P(18)[31],UI9O(18)[31],UI9P(18)[31],=R0LY/9(18)[31],=R0QA/9(18)[31], + =R100MP(18)[31],=R110RAEM(18)[31],=R111EK(18)[31],=R120RW(18)[31],=R15CWC/9(18)[31], + =R2013T(18)[31],=R2013TP(18)[31],=R2017T(18)[31],=R20NSK(18)[31],=R27ODR(18)[31], + =R27ODR/M(18)[31],=R27ODW(18)[31],=R27OGA(18)[31],=R27OGF(18)[31],=R27OSN(18)[31],=R27OUO(18)[31], + =R8OA/9/P(18)[31],=R8SRR(18)[31],=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],=RA4FRH/0/P(18)[31], + =RA9JJ/9/M(18)[31],=RA9MX/9(18)[31],=RC1M/9(18)[31],=RC1M/9/M(18)[31],=RG9O(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],=RP9OMP(18)[31],=RP9OW(18)[31],=RQ16CW(18)[31],=RQ17CW(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],=UE80NSO(18)[31], + =R110RP,=R120RDP,=R120RZ,=R120TM,=R150RP,=R155RP,=RA22QF,=RC20QA,=RC20QC,=RC20QF,=RM20CC,=RP65R, + =RP67KE,=RP67R,=RP68KE,=RP68R,=RP69KE,=RP69R,=RP70KE,=RP70R,=RP71R,=RP72KE,=RP72R,=RT73CW,=RT73JH, + =RV3MN/9,=RW22QA,=RW22QA/8,=RW22QC,=RW22QC/8,=RW4NW/9,=RY22RZ,=RZ9WM/9/M,=UE4WFF/9,=UE4WFF/9/P, + =UE70KRM/8/M, R8S(16),R8T(16),R9S(16),R9T(16),RA8S(16),RA8T(16),RA9S(16),RA9T(16),RC8S(16),RC8T(16),RC9S(16), RC9T(16),RD8S(16),RD8T(16),RD9S(16),RD9T(16),RE8S(16),RE8T(16),RE9S(16),RE9T(16),RF8S(16), - RF8T(16),RF9S(16),RF9T(16),RG8S(16),RG8T(16),RG9S(16),RG9T(16),RI8S(16),RI8T(16),RI9S(16), - RI9T(16),RJ8S(16),RJ8T(16),RJ9S(16),RJ9T(16),RK8S(16),RK8T(16),RK9S(16),RK9T(16),RL8S(16), - RL8T(16),RL9S(16),RL9T(16),RM8S(16),RM8T(16),RM9S(16),RM9T(16),RN8S(16),RN8T(16),RN9S(16), - RN9T(16),RO8S(16),RO8T(16),RO9S(16),RO9T(16),RQ8S(16),RQ8T(16),RQ9S(16),RQ9T(16),RT8S(16), - RT8T(16),RT9S(16),RT9T(16),RU8S(16),RU8T(16),RU9S(16),RU9T(16),RV8S(16),RV8T(16),RV9S(16), - RV9T(16),RW8S(16),RW8T(16),RW9S(16),RW9T(16),RX8S(16),RX8T(16),RX9S(16),RX9T(16),RY8S(16), - RY8T(16),RY9S(16),RY9T(16),RZ8S(16),RZ8T(16),RZ9S(16),RZ9T(16),U8S(16),U8T(16),U9S(16),U9T(16), - UA8S(16),UA8T(16),UA9S(16),UA9T(16),UB8S(16),UB8T(16),UB9S(16),UB9T(16),UC8S(16),UC8T(16), - UC9S(16),UC9T(16),UD8S(16),UD8T(16),UD9S(16),UD9T(16),UE8S(16),UE8T(16),UE9S(16),UE9T(16), - UF8S(16),UF8T(16),UF9S(16),UF9T(16),UG8S(16),UG8T(16),UG9S(16),UG9T(16),UH8S(16),UH8T(16), - UH9S(16),UH9T(16),UI8S(16),UI8T(16),UI9S(16),UI9T(16),=R2014FX(16),=R2015DM(16),=R270A(16), - =R270E(16),=R270SR(16),=R3ARS/9(16),=R40WK(16),=R8CZ/4(16),=R9JBN/8/M(16),=RA/UY7IQ(16), - =RA27TR(16),=RA4HMT/9/M(16),=RA4HT/9(16),=RA4PKR/9(16),=RA9CS/P(16),=RN3DHB/9(16),=RN3DHB/9/P(16), - =RN3GW/8(16),=RN3GW/8/QRP(16),=RN3GW/9(16),=RN3GW/9/QRP(16),=RN9WWW/9(16),=RP65TT(16),=RP68GR(16), - =RP69NB(16),=RP71TK(16),=RP9SBO(16),=RP9SBR(16),=RP9SNK(16),=RT22TK(16),=RT73OA(16),=RT8T(16), - =RT9S(16),=RT9T(16),=RU22TU(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),=UA4HIP/M(16),=UA4LCQ/9(16),=UA9SIV/9(16), - =UB9JBN/9/M(16),=UE1RFF/9(16),=UE25ST(16),=UE55OB(16),=UE60TDP(16),=UE60TDP/P(16),=UE9WDA/9/M(16), + RF8T(16),RF9S(16),RF9T(16),RG8S(16),RG8T(16),RG9S(16),RG9T(16),RJ8S(16),RJ8T(16),RJ9S(16), + RJ9T(16),RK8S(16),RK8T(16),RK9S(16),RK9T(16),RL8S(16),RL8T(16),RL9S(16),RL9T(16),RM8S(16), + RM8T(16),RM9S(16),RM9T(16),RN8S(16),RN8T(16),RN9S(16),RN9T(16),RO8S(16),RO8T(16),RO9S(16), + RO9T(16),RQ8S(16),RQ8T(16),RQ9S(16),RQ9T(16),RT8S(16),RT8T(16),RT9S(16),RT9T(16),RU8S(16), + RU8T(16),RU9S(16),RU9T(16),RV8S(16),RV8T(16),RV9S(16),RV9T(16),RW8S(16),RW8T(16),RW9S(16), + RW9T(16),RX8S(16),RX8T(16),RX9S(16),RX9T(16),RY8S(16),RY8T(16),RY9S(16),RY9T(16),RZ8S(16), + RZ8T(16),RZ9S(16),RZ9T(16),U8S(16),U8T(16),U9S(16),U9T(16),UA8S(16),UA8T(16),UA9S(16),UA9T(16), + UB8S(16),UB8T(16),UB9S(16),UB9T(16),UC8S(16),UC8T(16),UC9S(16),UC9T(16),UD8S(16),UD8T(16), + UD9S(16),UD9T(16),UE8S(16),UE8T(16),UE9S(16),UE9T(16),UF8S(16),UF8T(16),UF9S(16),UF9T(16), + UG8S(16),UG8T(16),UG9S(16),UG9T(16),UH8S(16),UH8T(16),UH9S(16),UH9T(16),UI8S(16),UI8T(16), + UI9S(16),UI9T(16),=R2014FX(16),=R2015DM(16),=R270A(16),=R270E(16),=R270SR(16),=R3ARS/9(16), + =R40WK(16),=R9JBN/8/M(16),=RA/UY7IQ(16),=RA27TR(16),=RA4HMT/9/M(16),=RA4HT/9(16),=RA4PKR/9(16), + =RA9CS/P(16),=RC20OB(16),=RC20TT(16),=RN3DHB/9(16),=RN3DHB/9/P(16),=RN3GW/8(16),=RN3GW/8/QRP(16), + =RN3GW/9(16),=RN3GW/9/QRP(16),=RN9S(16),=RN9SM/P(16),=RN9WWW/9(16),=RO9S(16),=RP65TT(16), + =RP68GR(16),=RP69NB(16),=RP71TK(16),=RP9SBO(16),=RP9SBR(16),=RP9SNK(16),=RT22TK(16),=RT73OA(16), + =RT8T(16),=RT9S(16),=RT9T(16),=RU22TU(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),=UA4HIP/M(16),=UA4LCQ/9(16), + =UA9SIV/9(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], RD9U(18)[31],RD9V(18)[31],RE8U(18)[31],RE8V(18)[31],RE9U(18)[31],RE9V(18)[31],RF8U(18)[31], RF8V(18)[31],RF9U(18)[31],RF9V(18)[31],RG8U(18)[31],RG8V(18)[31],RG9U(18)[31],RG9V(18)[31], - RI8U(18)[31],RI8V(18)[31],RI9U(18)[31],RI9V(18)[31],RJ8U(18)[31],RJ8V(18)[31],RJ9U(18)[31], - RJ9V(18)[31],RK8U(18)[31],RK8V(18)[31],RK9U(18)[31],RK9V(18)[31],RL8U(18)[31],RL8V(18)[31], - RL9U(18)[31],RL9V(18)[31],RM8U(18)[31],RM8V(18)[31],RM9U(18)[31],RM9V(18)[31],RN8U(18)[31], - RN8V(18)[31],RN9U(18)[31],RN9V(18)[31],RO8U(18)[31],RO8V(18)[31],RO9U(18)[31],RO9V(18)[31], - RQ8U(18)[31],RQ8V(18)[31],RQ9U(18)[31],RQ9V(18)[31],RT8U(18)[31],RT8V(18)[31],RT9U(18)[31], - RT9V(18)[31],RU8U(18)[31],RU8V(18)[31],RU9U(18)[31],RU9V(18)[31],RV8U(18)[31],RV8V(18)[31], - RV9U(18)[31],RV9V(18)[31],RW8U(18)[31],RW8V(18)[31],RW9U(18)[31],RW9V(18)[31],RX8U(18)[31], - RX8V(18)[31],RX9U(18)[31],RX9V(18)[31],RY8U(18)[31],RY8V(18)[31],RY9U(18)[31],RY9V(18)[31], - RZ8U(18)[31],RZ8V(18)[31],RZ9U(18)[31],RZ9V(18)[31],U8U(18)[31],U8V(18)[31],U9U(18)[31], - U9V(18)[31],UA8U(18)[31],UA8V(18)[31],UA9U(18)[31],UA9V(18)[31],UB8U(18)[31],UB8V(18)[31], - UB9U(18)[31],UB9V(18)[31],UC8U(18)[31],UC8V(18)[31],UC9U(18)[31],UC9V(18)[31],UD8U(18)[31], - UD8V(18)[31],UD9U(18)[31],UD9V(18)[31],UE8U(18)[31],UE8V(18)[31],UE9U(18)[31],UE9V(18)[31], - UF8U(18)[31],UF8V(18)[31],UF9U(18)[31],UF9V(18)[31],UG8U(18)[31],UG8V(18)[31],UG9U(18)[31], - UG9V(18)[31],UH8U(18)[31],UH8V(18)[31],UH9U(18)[31],UH9V(18)[31],UI8U(18)[31],UI8V(18)[31], - UI9U(18)[31],UI9V(18)[31],=R10NRC(18)[31],=R1991A(18)[31],=R22ULM(18)[31],=R70B(18)[31], - =R9UAG/N(18)[31],=RA4CQ/9(18)[31],=RC4W/9(18)[31],=RK6CG/9(18)[31],=RP65UMF(18)[31], - =RP67KM(18)[31],=RP68KM(18)[31],=RP69KM(18)[31],=RP70KM(18)[31],=RP70NM(18)[31],=RP70UK(18)[31], - =RP70ZF(18)[31],=RP71KM(18)[31],=RP72KM(18)[31],=RP72NM(18)[31],=RT22UA(18)[31],=RT77VV(18)[31], - =RW4CG/9(18)[31],=RZ5D/9(18)[31],=UA9JFE/9/P(18)[31],=UE3ATV/9(18)[31], + RJ8U(18)[31],RJ8V(18)[31],RJ9U(18)[31],RJ9V(18)[31],RK8U(18)[31],RK8V(18)[31],RK9U(18)[31], + RK9V(18)[31],RL8U(18)[31],RL8V(18)[31],RL9U(18)[31],RL9V(18)[31],RM8U(18)[31],RM8V(18)[31], + RM9U(18)[31],RM9V(18)[31],RN8U(18)[31],RN8V(18)[31],RN9U(18)[31],RN9V(18)[31],RO8U(18)[31], + RO8V(18)[31],RO9U(18)[31],RO9V(18)[31],RQ8U(18)[31],RQ8V(18)[31],RQ9U(18)[31],RQ9V(18)[31], + RT8U(18)[31],RT8V(18)[31],RT9U(18)[31],RT9V(18)[31],RU8U(18)[31],RU8V(18)[31],RU9U(18)[31], + RU9V(18)[31],RV8U(18)[31],RV8V(18)[31],RV9U(18)[31],RV9V(18)[31],RW8U(18)[31],RW8V(18)[31], + RW9U(18)[31],RW9V(18)[31],RX8U(18)[31],RX8V(18)[31],RX9U(18)[31],RX9V(18)[31],RY8U(18)[31], + RY8V(18)[31],RY9U(18)[31],RY9V(18)[31],RZ8U(18)[31],RZ8V(18)[31],RZ9U(18)[31],RZ9V(18)[31], + U8U(18)[31],U8V(18)[31],U9U(18)[31],U9V(18)[31],UA8U(18)[31],UA8V(18)[31],UA9U(18)[31], + UA9V(18)[31],UB8U(18)[31],UB8V(18)[31],UB9U(18)[31],UB9V(18)[31],UC8U(18)[31],UC8V(18)[31], + UC9U(18)[31],UC9V(18)[31],UD8U(18)[31],UD8V(18)[31],UD9U(18)[31],UD9V(18)[31],UE8U(18)[31], + UE8V(18)[31],UE9U(18)[31],UE9V(18)[31],UF8U(18)[31],UF8V(18)[31],UF9U(18)[31],UF9V(18)[31], + UG8U(18)[31],UG8V(18)[31],UG9U(18)[31],UG9V(18)[31],UH8U(18)[31],UH8V(18)[31],UH9U(18)[31], + UH9V(18)[31],UI8U(18)[31],UI8V(18)[31],UI9U(18)[31],UI9V(18)[31],=R10NRC(18)[31],=R1991A(18)[31], + =R22ULM(18)[31],=R70B(18)[31],=R9UAG/N(18)[31],=RA4CQ/9(18)[31],=RC4W/9(18)[31],=RK6CG/9(18)[31], + =RP65UMF(18)[31],=RP67KM(18)[31],=RP68KM(18)[31],=RP69KM(18)[31],=RP70KM(18)[31],=RP70NM(18)[31], + =RP70UK(18)[31],=RP70ZF(18)[31],=RP71KM(18)[31],=RP72KM(18)[31],=RP72NM(18)[31],=RT22UA(18)[31], + =RT77VV(18)[31],=RW4CG/9(18)[31],=RZ5D/9(18)[31],=UA9JFE/9/P(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),RI8W(16),RI9W(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),RU9W(16),RV8W(16),RV9W(16),RW8W(16),RW9W(16),RX8W(16),RX9W(16),RY8W(16), - RY9W(16),RZ8W(16),RZ9W(16),U8W(16),U9W(16),UA8W(16),UA9W(16),UB8W(16),UB9W(16),UC8W(16),UC9W(16), - UD8W(16),UD9W(16),UE8W(16),UE9W(16),UF8W(16),UF9W(16),UG8W(16),UG9W(16),UH8W(16),UH9W(16), - UI8W(16),UI9W(16),=R100W(16),=R10RTRS/9(16),=R18KDR/4(16),=R2013CG(16),=R2015AS(16),=R2015DS(16), - =R2015KM(16),=R2017F/P(16),=R20BIS(16),=R25ARCK/4(16),=R25MSB(16),=R25WPW(16),=R27UFA(16), - =R3XX/9(16),=R44WFF(16),=R7378TM(16),=R90WGM(16),=R90WJV(16),=R90WOB(16),=R90WXK(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), + RU9W(16),RV8W(16),RV9W(16),RW8W(16),RW9W(16),RX8W(16),RX9W(16),RY8W(16),RY9W(16),RZ8W(16), + RZ9W(16),U8W(16),U9W(16),UA8W(16),UA9W(16),UB8W(16),UB9W(16),UC8W(16),UC9W(16),UD8W(16),UD9W(16), + UE8W(16),UE9W(16),UF8W(16),UF9W(16),UG8W(16),UG9W(16),UH8W(16),UH9W(16),UI8W(16),UI9W(16), + =R100W(16),=R10RTRS/9(16),=R18KDR/4(16),=R2013CG(16),=R2015AS(16),=R2015DS(16),=R2015KM(16), + =R2017F/P(16),=R20BIS(16),=R20UFA(16),=R25ARCK/4(16),=R25MSB(16),=R25WPW(16),=R27UFA(16), + =R3XX/9(16),=R44WFF(16),=R7378TM(16),=R90WGM(16),=R90WJV(16),=R90WOB(16),=R90WXK(16),=R9LY/4(16), =RA1ZPC/9(16),=RA3AUU/9(16),=RA4POX/9(16),=RA9KDX/8/M(16),=RF9W(16),=RG5A/8(16),=RK3PWJ/9(16), =RK6YYA/9/M(16),=RK9KWI/9(16),=RK9KWI/9/P(16),=RL3DX/9(16),=RL5G/8(16),=RM90WF(16),=RM9RZ/9/P(16), - =RO17CW(16),=RP67GI(16),=RP67MG(16),=RP67NG(16),=RP67RK(16),=RP67SW(16),=RP67UF(16),=RP68GM(16), - =RP68NK(16),=RP68UF(16),=RP69GI(16),=RP69PW(16),=RP69UF(16),=RP70GI(16),=RP70GM(16),=RP70LS(16), - =RP70NK(16),=RP70UF(16),=RP70ZO(16),=RP71GI(16),=RP71GM(16),=RP71UF(16),=RP72AR(16),=RP72GI(16), - =RP72GM(16),=RP72UF(16),=RP72WU(16),=RT22WF(16),=RT2F/9/M(16),=RT73EA(16),=RT73EL(16),=RT8A/4(16), - =RT9W(16),=RT9W/P(16),=RU110RAEM(16),=RU20WC(16),=RU22WZ(16),=RU27WB(16),=RU27WF(16),=RU27WN(16), - =RU27WO(16),=RU3HD/9/P(16),=RU90WZ(16),=RU9CK/4/M(16),=RU9SO/4/P(16),=RV22WB(16),=RV2FZ/9(16), - =RV90WB(16),=RV9CHB/4(16),=RW3SN/9(16),=RW3XX/9(16),=RW4WA/9/P(16),=RW90WC(16),=RW9FWR/9/M(16), - =RX22WN(16),=RZ16WF(16),=RZ5D/4(16),=RZ90W(16),=RZ90WU(16),=UA0AZA/9(16),=UA1AAE/9(16), - =UA1ZPC/9(16),=UA4LU/9/P(16),=UA4PIE/9(16),=UA4PIE/9/M(16),=UA4PIE/9/P(16),=UA4PJM/9(16), - =UA4PJM/9/M(16),=UA4PJM/9/P(16),=UA4PXR/9/M(16),=UA9KAA/4(16),=UA9KAA/9(16),=UE10RFF/4(16), - =UE90W(16), + =RN9WWW/9/M(16),=RN9WWW/P(16),=RO17CW(16),=RP67GI(16),=RP67MG(16),=RP67NG(16),=RP67RK(16), + =RP67SW(16),=RP67UF(16),=RP68GM(16),=RP68NK(16),=RP68UF(16),=RP69GI(16),=RP69PW(16),=RP69UF(16), + =RP70GI(16),=RP70GM(16),=RP70LS(16),=RP70NK(16),=RP70UF(16),=RP70ZO(16),=RP71GI(16),=RP71GM(16), + =RP71UF(16),=RP72AR(16),=RP72GI(16),=RP72GM(16),=RP72UF(16),=RP72WU(16),=RT22WF(16),=RT2F/9/M(16), + =RT73EA(16),=RT73EL(16),=RT8A/4(16),=RT9W(16),=RT9W/P(16),=RU110RAEM(16),=RU20WC(16),=RU22WZ(16), + =RU27WB(16),=RU27WF(16),=RU27WN(16),=RU27WO(16),=RU3HD/9/P(16),=RU90WZ(16),=RU9KC/4/M(16), + =RU9SO/4/P(16),=RV22WB(16),=RV2FZ/9(16),=RV90WB(16),=RV9CHB/4(16),=RW3SN/9(16),=RW3XX/9(16), + =RW4WA/9/P(16),=RW90WC(16),=RW9FWR/9/M(16),=RX22WN(16),=RZ16WF(16),=RZ5D/4(16),=RZ90W(16), + =RZ90WU(16),=UA0AZA/9(16),=UA1AAE/9(16),=UA1ZPC/9(16),=UA4LU/9/P(16),=UA4PIE/9(16), + =UA4PIE/9/M(16),=UA4PIE/9/P(16),=UA4PJM/9(16),=UA4PJM/9/M(16),=UA4PJM/9/P(16),=UA4PXR/9/M(16), + =UA9KAA/4(16),=UA9KAA/9(16),=UE10RFF/4(16),=UE90W(16), R8Y(18)[31],R9Y(18)[31],RA8Y(18)[31],RA9Y(18)[31],RC8Y(18)[31],RC9Y(18)[31],RD8Y(18)[31], RD9Y(18)[31],RE8Y(18)[31],RE9Y(18)[31],RF8Y(18)[31],RF9Y(18)[31],RG8Y(18)[31],RG9Y(18)[31], - RI8Y(18)[31],RI9Y(18)[31],RJ8Y(18)[31],RJ9Y(18)[31],RK8Y(18)[31],RK9Y(18)[31],RL8Y(18)[31], - RL9Y(18)[31],RM8Y(18)[31],RM9Y(18)[31],RN8Y(18)[31],RN9Y(18)[31],RO8Y(18)[31],RO9Y(18)[31], - RQ8Y(18)[31],RQ9Y(18)[31],RT8Y(18)[31],RT9Y(18)[31],RU8Y(18)[31],RU9Y(18)[31],RV8Y(18)[31], - RV9Y(18)[31],RW8Y(18)[31],RW9Y(18)[31],RX8Y(18)[31],RX9Y(18)[31],RY8Y(18)[31],RY9Y(18)[31], - RZ8Y(18)[31],RZ9Y(18)[31],U8Y(18)[31],U9Y(18)[31],UA8Y(18)[31],UA9Y(18)[31],UB8Y(18)[31], - UB9Y(18)[31],UC8Y(18)[31],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],=R2015RR(18)[31],=R2015SV(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], - =RN9N/M(18)[31],=RP68BP(18)[31],=RP68TZ(18)[31],=RP70AF(18)[31],=RP70BP(18)[31],=RP70GA(18)[31], - =RP71BP(18)[31],=RP72BP(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],=UA9MA/M(18)[31],=UA9UAX/9/P(18)[31], - =UE0ZOO/9(18)[31],=UE44R/9(18)[31], + RJ8Y(18)[31],RJ9Y(18)[31],RK8Y(18)[31],RK9Y(18)[31],RL8Y(18)[31],RL9Y(18)[31],RM8Y(18)[31], + RM9Y(18)[31],RN8Y(18)[31],RN9Y(18)[31],RO8Y(18)[31],RO9Y(18)[31],RQ8Y(18)[31],RQ9Y(18)[31], + RT8Y(18)[31],RT9Y(18)[31],RU8Y(18)[31],RU9Y(18)[31],RV8Y(18)[31],RV9Y(18)[31],RW8Y(18)[31], + RW9Y(18)[31],RX8Y(18)[31],RX9Y(18)[31],RY8Y(18)[31],RY9Y(18)[31],RZ8Y(18)[31],RZ9Y(18)[31], + U8Y(18)[31],U9Y(18)[31],UA8Y(18)[31],UA9Y(18)[31],UB8Y(18)[31],UB9Y(18)[31],UC8Y(18)[31], + 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],=R2015RR(18)[31], + =R2015SV(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],=RN9N/M(18)[31],=RP68BP(18)[31],=RP68TZ(18)[31], + =RP70AF(18)[31],=RP70BP(18)[31],=RP70GA(18)[31],=RP71BP(18)[31],=RP72BP(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],=UA9MA/M(18)[31],=UA9UAX/9/P(18)[31],=UE0ZOO/9(18)[31],=UE44R/9(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], - RI8Z(18)[31],RI9Z(18)[31],RJ8Z(18)[31],RJ9Z(18)[31],RK8Z(18)[31],RK9Z(18)[31],RL8Z(18)[31], - RL9Z(18)[31],RM8Z(18)[31],RM9Z(18)[31],RN8Z(18)[31],RN9Z(18)[31],RO8Z(18)[31],RO9Z(18)[31], - RQ8Z(18)[31],RQ9Z(18)[31],RT8Z(18)[31],RT9Z(18)[31],RU8Z(18)[31],RU9Z(18)[31],RV8Z(18)[31], - RV9Z(18)[31],RW8Z(18)[31],RW9Z(18)[31],RX8Z(18)[31],RX9Z(18)[31],RY8Z(18)[31],RY9Z(18)[31], - RZ8Z(18)[31],RZ9Z(18)[31],U8Z(18)[31],U9Z(18)[31],UA8Z(18)[31],UA9Z(18)[31],UB8Z(18)[31], - UB9Z(18)[31],UC8Z(18)[31],UC9Z(18)[31],UD8Z(18)[31],UD9Z(18)[31],UE8Z(18)[31],UE9Z(18)[31], - UF8Z(18)[31],UF9Z(18)[31],UG8Z(18)[31],UG9Z(18)[31],UH8Z(18)[31],UH9Z(18)[31],UI8Z(18)[31], - UI9Z(18)[31],=RA/IK5MIC/P(18)[31],=RC9YA/9/M(18)[31],=RW9MD/9/P(18)[31],=UA0KBG/9/P(18)[31], - =UA9MAC/9(18)[31], + RJ8Z(18)[31],RJ9Z(18)[31],RK8Z(18)[31],RK9Z(18)[31],RL8Z(18)[31],RL9Z(18)[31],RM8Z(18)[31], + RM9Z(18)[31],RN8Z(18)[31],RN9Z(18)[31],RO8Z(18)[31],RO9Z(18)[31],RQ8Z(18)[31],RQ9Z(18)[31], + RT8Z(18)[31],RT9Z(18)[31],RU8Z(18)[31],RU9Z(18)[31],RV8Z(18)[31],RV9Z(18)[31],RW8Z(18)[31], + RW9Z(18)[31],RX8Z(18)[31],RX9Z(18)[31],RY8Z(18)[31],RY9Z(18)[31],RZ8Z(18)[31],RZ9Z(18)[31], + U8Z(18)[31],U9Z(18)[31],UA8Z(18)[31],UA9Z(18)[31],UB8Z(18)[31],UB9Z(18)[31],UC8Z(18)[31], + UC9Z(18)[31],UD8Z(18)[31],UD9Z(18)[31],UE8Z(18)[31],UE9Z(18)[31],UF8Z(18)[31],UF9Z(18)[31], + UG8Z(18)[31],UG9Z(18)[31],UH8Z(18)[31],UH9Z(18)[31],UI8Z(18)[31],UI9Z(18)[31], + =RA/IK5MIC/P(18)[31],=RC9YA/9/M(18)[31],=RW9MD/9/P(18)[31],=UA0KBG/9/P(18)[31],=UA9MAC/9(18)[31], R0A(18)[32],R0B(18)[32],R0H(18)[32],RA0A(18)[32],RA0B(18)[32],RA0H(18)[32],RC0A(18)[32], RC0B(18)[32],RC0H(18)[32],RD0A(18)[32],RD0B(18)[32],RD0H(18)[32],RE0A(18)[32],RE0B(18)[32], RE0H(18)[32],RF0A(18)[32],RF0B(18)[32],RF0H(18)[32],RG0A(18)[32],RG0B(18)[32],RG0H(18)[32], @@ -2483,58 +2490,60 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UC0H(18)[32],UD0A(18)[32],UD0B(18)[32],UD0H(18)[32],UE0A(18)[32],UE0B(18)[32],UE0H(18)[32], UF0A(18)[32],UF0B(18)[32],UF0H(18)[32],UG0A(18)[32],UG0B(18)[32],UG0H(18)[32],UH0A(18)[32], UH0B(18)[32],UH0H(18)[32],UI0A(18)[32],UI0B(18)[32],UI0H(18)[32],=R00BVB(18)[32],=R100RW(18)[32], - =R120RB(18)[32],=R170GS(18)[32],=R18KDR/9(18)[32],=R2016A(18)[32],=R44YETI/9(18)[32], - =R50CQM(18)[32],=R9PS/9(18)[32],=RA/UR5HVR(18)[32],=RA0/UR5HVR(18)[32],=RA1AMW/0(18)[32], - =RA3AUU/0(18)[32],=RA3BB/0(18)[32],=RA3DA/0(18)[32],=RA3DA/9(18)[32],=RA4CQ/0(18)[32], - =RA4CSX/0(18)[32],=RA4RU/0(18)[32],=RA9UT/0(18)[32],=RD110RAEM(18)[32],=RI0BV/0(18)[32], - =RK56GC(18)[32],=RK80KEDR(18)[32],=RM2D/9(18)[32],=RM9RZ/0(18)[32],=RN110RAEM(18)[32], - =RN110RAEM/P(18)[32],=RP70KV(18)[32],=RP70RS(18)[32],=RT22SA(18)[32],=RT9K/9(18)[32], - =RU3FF/0(18)[32],=RU4CO/0(18)[32],=RV3DHC/0(18)[32],=RV3DHC/0/P(18)[32],=RV9WP/9(18)[32], - =RW3XN/0(18)[32],=RW3YC/0(18)[32],=RW3YC/9(18)[32],=RY1AAB/9(18)[32],=RY1AAB/9/M(18)[32], - =RZ3DSA/0(18)[32],=RZ3DZS/0(18)[32],=RZ9ON/9(18)[32],=UA0ACG/0(18)[32],=UA0FCB/0(18)[32], - =UA0FCB/0/P(18)[32],=UA0WG/0(18)[32],=UA0WW/0(18)[32],=UA0WY/0(18)[32],=UA3ADN/0(18)[32], - =UA4LU/0(18)[32],=UA4PT/0(18)[32],=UA6BTN/0(18)[32],=UA9UAX/9(18)[32],=UA9WDK/0(18)[32], - =UB1AJQ/0(18)[32],=UE1WFF/0(18)[32], + =R120RB(18)[32],=R170GS(18)[32],=R18KDR/9(18)[32],=R2016A(18)[32],=R20KRK(18)[32], + =R44YETI/9(18)[32],=R50CQM(18)[32],=R9PS/9(18)[32],=RA/UR5HVR(18)[32],=RA0/UR5HVR(18)[32], + =RA1AMW/0(18)[32],=RA3AUU/0(18)[32],=RA3BB/0(18)[32],=RA3DA/0(18)[32],=RA3DA/9(18)[32], + =RA4CQ/0(18)[32],=RA4CSX/0(18)[32],=RA4RU/0(18)[32],=RA9UT/0(18)[32],=RD110RAEM(18)[32], + =RI0BV/0(18)[32],=RK56GC(18)[32],=RK80KEDR(18)[32],=RM0A(18)[32],=RM2D/9(18)[32],=RM9RZ/0(18)[32], + =RN0A(18)[32],=RN110RAEM(18)[32],=RN110RAEM/P(18)[32],=RP70KV(18)[32],=RP70RS(18)[32], + =RT22SA(18)[32],=RT9K/9(18)[32],=RU3FF/0(18)[32],=RU4CO/0(18)[32],=RV3DHC/0(18)[32], + =RV3DHC/0/P(18)[32],=RV9WP/9(18)[32],=RW3XN/0(18)[32],=RW3YC/0(18)[32],=RW3YC/9(18)[32], + =RY1AAB/9(18)[32],=RY1AAB/9/M(18)[32],=RZ3DSA/0(18)[32],=RZ3DZS/0(18)[32],=RZ9ON/9(18)[32], + =UA0ACG/0(18)[32],=UA0FCB/0(18)[32],=UA0FCB/0/P(18)[32],=UA0WG/0(18)[32],=UA0WW/0(18)[32], + =UA0WW/M(18)[32],=UA0WY/0(18)[32],=UA3ADN/0(18)[32],=UA4LU/0(18)[32],=UA4PT/0(18)[32], + =UA6BTN/0(18)[32],=UA9UAX/9(18)[32],=UA9WDK/0(18)[32],=UB1AJQ/0(18)[32],=UE1WFF/0(18)[32], =R0/UR8LV(18)[22],=R100D(18)[22],=R100DI(18)[22],=R3CA/9(18)[22],=RA3TND/0(18)[22], - =RA3XR/0(18)[22],=RA9LI/0(18)[22],=RS0B(18)[22],=RS0B/P(18)[22],=RV3EFH/0(18)[22], - =RW3GW/0(18)[22],=RX6LMQ/0(18)[22],=RZ9DX/0(18)[22],=RZ9DX/0/A(18)[22],=RZ9DX/0/P(18)[22], - =RZ9DX/9(18)[22],=RZ9DX/9/P(18)[22],=RZ9OO/0(18)[22],=UA1ADQ/0(18)[22],=UA3HY/0(18)[22], - =UA3YH/0(18)[22],=UA4RX/0(18)[22],=UA9FL/0(18)[22],=UE0BFF(18)[22],=UE44POL(18)[22], - =UE44POL/P(18)[22],=UE73D(18)[22],=UE73DI(18)[22], + =RA3XR/0(18)[22],=RA9LI/0(18)[22],=RI0B(18)[22],=RI0BDI(18)[22],=RS0B(18)[22],=RS0B/P(18)[22], + =RV3EFH/0(18)[22],=RW3GW/0(18)[22],=RX6LMQ/0(18)[22],=RZ9DX/0(18)[22],=RZ9DX/0/A(18)[22], + =RZ9DX/0/P(18)[22],=RZ9DX/9(18)[22],=RZ9DX/9/P(18)[22],=RZ9OO/0(18)[22],=UA1ADQ/0(18)[22], + =UA3HY/0(18)[22],=UA3YH/0(18)[22],=UA4RX/0(18)[22],=UA9FL/0(18)[22],=UE0BFF(18)[22], + =UE44POL(18)[22],=UE44POL/P(18)[22],=UE73D(18)[22],=UE73DI(18)[22], R0C(19)[34],RA0C(19)[34],RC0C(19)[34],RD0C(19)[34],RE0C(19)[34],RF0C(19)[34],RG0C(19)[34], RI0C(19)[34],RJ0C(19)[34],RK0C(19)[34],RL0C(19)[34],RM0C(19)[34],RN0C(19)[34],RO0C(19)[34], RQ0C(19)[34],RT0C(19)[34],RU0C(19)[34],RV0C(19)[34],RW0C(19)[34],RX0C(19)[34],RY0C(19)[34], RZ0C(19)[34],U0C(19)[34],UA0C(19)[34],UB0C(19)[34],UC0C(19)[34],UD0C(19)[34],UE0C(19)[34], UF0C(19)[34],UG0C(19)[34],UH0C(19)[34],UI0C(19)[34],=R120RN(19)[34],=R150C(19)[34],=R155C(19)[34], - =R15CWC/0(19)[34],=R15CWC/0/QRP(19)[34],=R160NA(19)[34],=R170GS/0(19)[34],=R24RRC(19)[34], - =R25ARCK/0(19)[34],=R27CGY(19)[34],=R44YETI/0(19)[34],=R7AL/0(19)[34],=R7AL/0/M(19)[34], - =R7AL/0/P(19)[34],=RA/JA8BMK(19)[34],=RA/N6TR(19)[34],=RA/VE7MID(19)[34],=RA1QD/0(19)[34], - =RA1ZZ/0(19)[34],=RA1ZZ/0/M(19)[34],=RA3NAN/0(19)[34],=RA6GW/0(19)[34],=RA6XPL/0(19)[34], - =RC110RAEM(19)[34],=RD0C(19)[34],=RD16CW(19)[34],=RD17CW(19)[34],=RL3AA/0(19)[34],=RL5G/0(19)[34], - =RM2D/0(19)[34],=RP0CZA(19)[34],=RP68H(19)[34],=RP70H(19)[34],=RP71H(19)[34],=RP72H(19)[34], - =RT22CT(19)[34],=RU3DX/0(19)[34],=RW3DTB/0(19)[34],=RZ3EC/0(19)[34],=UA0AOZ/0(19)[34], - =UA3DX/0(19)[34],=UA6CW/0(19)[34],=UE150C(19)[34],=UE70VSV(19)[34],=UE80C(19)[34], + =R15CWC/0(19)[34],=R15CWC/0/QRP(19)[34],=R160NA(19)[34],=R170GS/0(19)[34],=R20DFO(19)[34], + =R24RRC(19)[34],=R25ARCK/0(19)[34],=R27CGY(19)[34],=R44YETI/0(19)[34],=R7AL/0(19)[34], + =R7AL/0/M(19)[34],=R7AL/0/P(19)[34],=RA/JA8BMK(19)[34],=RA/N6TR(19)[34],=RA/VE7MID(19)[34], + =RA1QD/0(19)[34],=RA1ZZ/0(19)[34],=RA1ZZ/0/M(19)[34],=RA3NAN/0(19)[34],=RA6GW/0(19)[34], + =RA6XPL/0(19)[34],=RC110RAEM(19)[34],=RC20CD(19)[34],=RD0C(19)[34],=RD16CW(19)[34], + =RD17CW(19)[34],=RL3AA/0(19)[34],=RM2D/0(19)[34],=RP0CZA(19)[34],=RP68H(19)[34],=RP70H(19)[34], + =RP71H(19)[34],=RP72H(19)[34],=RT22CT(19)[34],=RU3DX/0(19)[34],=RW3DTB/0(19)[34],=RZ3EC/0(19)[34], + =UA0AOZ/0(19)[34],=UA3DX/0(19)[34],=UA6CW/0(19)[34],=UE150C(19)[34],=UE70VSV(19)[34], + =UE80C(19)[34], R0E(19)[34],R0F(19)[34],RA0E(19)[34],RA0F(19)[34],RC0E(19)[34],RC0F(19)[34],RD0E(19)[34], RD0F(19)[34],RE0E(19)[34],RE0F(19)[34],RF0E(19)[34],RF0F(19)[34],RG0E(19)[34],RG0F(19)[34], - RI0E(19)[34],RI0F(19)[34],RJ0E(19)[34],RJ0F(19)[34],RK0E(19)[34],RK0F(19)[34],RL0E(19)[34], - RL0F(19)[34],RM0E(19)[34],RM0F(19)[34],RN0E(19)[34],RN0F(19)[34],RO0E(19)[34],RO0F(19)[34], - RQ0E(19)[34],RQ0F(19)[34],RT0E(19)[34],RT0F(19)[34],RU0E(19)[34],RU0F(19)[34],RV0E(19)[34], - RV0F(19)[34],RW0E(19)[34],RW0F(19)[34],RX0E(19)[34],RX0F(19)[34],RY0E(19)[34],RY0F(19)[34], - RZ0E(19)[34],RZ0F(19)[34],U0E(19)[34],U0F(19)[34],UA0E(19)[34],UA0F(19)[34],UB0E(19)[34], - UB0F(19)[34],UC0E(19)[34],UC0F(19)[34],UD0E(19)[34],UD0F(19)[34],UE0E(19)[34],UE0F(19)[34], - UF0E(19)[34],UF0F(19)[34],UG0E(19)[34],UG0F(19)[34],UH0E(19)[34],UH0F(19)[34],UI0E(19)[34], - UI0F(19)[34],=R10RLHA/0(19)[34],=R7AA/0(19)[34],=R7LP/0(19)[34],=R7MR/0(19)[34],=RA/KE5JA(19)[34], + RI0F(19)[34],RJ0E(19)[34],RJ0F(19)[34],RK0E(19)[34],RK0F(19)[34],RL0E(19)[34],RL0F(19)[34], + RM0E(19)[34],RM0F(19)[34],RN0E(19)[34],RN0F(19)[34],RO0E(19)[34],RO0F(19)[34],RQ0E(19)[34], + RQ0F(19)[34],RT0E(19)[34],RT0F(19)[34],RU0E(19)[34],RU0F(19)[34],RV0E(19)[34],RV0F(19)[34], + RW0E(19)[34],RW0F(19)[34],RX0E(19)[34],RX0F(19)[34],RY0E(19)[34],RY0F(19)[34],RZ0E(19)[34], + RZ0F(19)[34],U0E(19)[34],U0F(19)[34],UA0E(19)[34],UA0F(19)[34],UB0E(19)[34],UB0F(19)[34], + UC0E(19)[34],UC0F(19)[34],UD0E(19)[34],UD0F(19)[34],UE0E(19)[34],UE0F(19)[34],UF0E(19)[34], + UF0F(19)[34],UG0E(19)[34],UG0F(19)[34],UH0E(19)[34],UH0F(19)[34],UI0E(19)[34],UI0F(19)[34], + =R10RLHA/0(19)[34],=R7AA/0(19)[34],=R7LP/0(19)[34],=R7MR/0(19)[34],=RA/KE5JA(19)[34], =RA/OG2K(19)[34],=RA0SS/0(19)[34],=RA1ALA/0(19)[34],=RA4HKM/0(19)[34],=RA4HKM/0/P(19)[34], - =RA6ABC/0(19)[34],=RN1CR/0(19)[34],=RS0F(19)[34],=RT6A/0(19)[34],=RV1CC/0(19)[34], - =RV3ACA/0(19)[34],=RZ3DW/0(19)[34],=RZ4HD/0(19)[34],=RZ55YG(19)[34],=RZ9ODD/0(19)[34], - =RZ9OWE/0(19)[34],=UA1ANA/0(19)[34],=UA3EDP/0(19)[34],=UB40FSU(19)[34],=UE1AAA/0(19)[34], + =RA6ABC/0(19)[34],=RM0F(19)[34],=RN0F(19)[34],=RN1CR/0(19)[34],=RS0F(19)[34],=RT6A/0(19)[34], + =RV1CC/0(19)[34],=RV3ACA/0(19)[34],=RZ3DW/0(19)[34],=RZ4HD/0(19)[34],=RZ55YG(19)[34], + =RZ9ODD/0(19)[34],=RZ9OWE/0(19)[34],=UA1ANA/0(19)[34],=UA3EDP/0(19)[34],=UB40FSU(19)[34], + =UE1AAA/0(19)[34], =RV9WP/0(18)[22],=U0H/UA0AGQ(18)[22], R0I(19)[24],RA0I(19)[24],RC0I(19)[24],RD0I(19)[24],RE0I(19)[24],RF0I(19)[24],RG0I(19)[24], RI0I(19)[24],RJ0I(19)[24],RK0I(19)[24],RL0I(19)[24],RM0I(19)[24],RN0I(19)[24],RO0I(19)[24], RQ0I(19)[24],RT0I(19)[24],RU0I(19)[24],RV0I(19)[24],RW0I(19)[24],RX0I(19)[24],RY0I(19)[24], RZ0I(19)[24],U0I(19)[24],UA0I(19)[24],UB0I(19)[24],UC0I(19)[24],UD0I(19)[24],UE0I(19)[24], UF0I(19)[24],UG0I(19)[24],UH0I(19)[24],UI0I(19)[24],=RA/IK0PRH(19)[24],=RA/IK0PRH/P(19)[24], - =RA4CF/0(19)[24],=RX6CM/0(19)[24],=RZ9ON/0(19)[24], + =RA4CF/0(19)[24],=RM0I(19)[24],=RX6CM/0(19)[24],=RZ9ON/0(19)[24], =R11QRP/0(19)[33],=R2016KW(19)[33],=R4AK/0(19)[33],=R4AK/0/P(19)[33],=RA3AN/0(19)[33], =RQ0J/QRP(19)[33],=RU3HD/0(19)[33],=RW80KEDR(19)[33],=UA9MUY/0(19)[33],=UE75OJ(19)[33], R0K(19)[25],RA0K(19)[25],RC0K(19)[25],RD0K(19)[25],RE0K(19)[25],RF0K(19)[25],RG0K(19)[25], @@ -2547,33 +2556,33 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: R0L(19)[34],R0M(19)[34],R0N(19)[34],RA0L(19)[34],RA0M(19)[34],RA0N(19)[34],RC0L(19)[34], RC0M(19)[34],RC0N(19)[34],RD0L(19)[34],RD0M(19)[34],RD0N(19)[34],RE0L(19)[34],RE0M(19)[34], RE0N(19)[34],RF0L(19)[34],RF0M(19)[34],RF0N(19)[34],RG0L(19)[34],RG0M(19)[34],RG0N(19)[34], - RI0L(19)[34],RI0M(19)[34],RI0N(19)[34],RJ0L(19)[34],RJ0M(19)[34],RJ0N(19)[34],RK0L(19)[34], - RK0M(19)[34],RK0N(19)[34],RL0L(19)[34],RL0M(19)[34],RL0N(19)[34],RM0L(19)[34],RM0M(19)[34], - RM0N(19)[34],RN0L(19)[34],RN0M(19)[34],RN0N(19)[34],RO0L(19)[34],RO0M(19)[34],RO0N(19)[34], - RQ0L(19)[34],RQ0M(19)[34],RQ0N(19)[34],RT0L(19)[34],RT0M(19)[34],RT0N(19)[34],RU0L(19)[34], - RU0M(19)[34],RU0N(19)[34],RV0L(19)[34],RV0M(19)[34],RV0N(19)[34],RW0L(19)[34],RW0M(19)[34], - RW0N(19)[34],RX0L(19)[34],RX0M(19)[34],RX0N(19)[34],RY0L(19)[34],RY0M(19)[34],RY0N(19)[34], - RZ0L(19)[34],RZ0M(19)[34],RZ0N(19)[34],U0L(19)[34],U0M(19)[34],U0N(19)[34],UA0L(19)[34], - UA0M(19)[34],UA0N(19)[34],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],=R9XT/0(19)[34],=RD3BN/0(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], - =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],=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], + RI0L(19)[34],RJ0L(19)[34],RJ0M(19)[34],RJ0N(19)[34],RK0L(19)[34],RK0M(19)[34],RK0N(19)[34], + RL0L(19)[34],RL0M(19)[34],RL0N(19)[34],RM0L(19)[34],RM0M(19)[34],RM0N(19)[34],RN0L(19)[34], + RN0M(19)[34],RN0N(19)[34],RO0L(19)[34],RO0M(19)[34],RO0N(19)[34],RQ0L(19)[34],RQ0M(19)[34], + RQ0N(19)[34],RT0L(19)[34],RT0M(19)[34],RT0N(19)[34],RU0L(19)[34],RU0M(19)[34],RU0N(19)[34], + RV0L(19)[34],RV0M(19)[34],RV0N(19)[34],RW0L(19)[34],RW0M(19)[34],RW0N(19)[34],RX0L(19)[34], + RX0M(19)[34],RX0N(19)[34],RY0L(19)[34],RY0M(19)[34],RY0N(19)[34],RZ0L(19)[34],RZ0M(19)[34], + RZ0N(19)[34],U0L(19)[34],U0M(19)[34],U0N(19)[34],UA0L(19)[34],UA0M(19)[34],UA0N(19)[34], + 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],=R9XT/0(19)[34],=RD3BN/0(19)[34],=RL5G/0/P(19)[34],=RM0M(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],=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],=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], - RI0O(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],U0O(18)[32],UA0O(18)[32],UB0O(18)[32],UC0O(18)[32],UD0O(18)[32],UE0O(18)[32], - UF0O(18)[32],UG0O(18)[32],UH0O(18)[32],UI0O(18)[32],=R100FNR(18)[32],=RA0CGI/0(18)[32], - =RA9FTM/0(18)[32],=RA9JJ/0(18)[32],=RK3RB/0(18)[32],=RK4HM/0(18)[32],=RU0UA/0(18)[32], - =RW4CG/0(18)[32],=RW4CG/0/P(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], + U0O(18)[32],UA0O(18)[32],UB0O(18)[32],UC0O(18)[32],UD0O(18)[32],UE0O(18)[32],UF0O(18)[32], + UG0O(18)[32],UH0O(18)[32],UI0O(18)[32],=R100FNR(18)[32],=RA0CGI/0(18)[32],=RA9FTM/0(18)[32], + =RA9JJ/0(18)[32],=RK3RB/0(18)[32],=RK4HM/0(18)[32],=RU0UA/0(18)[32],=RW4CG/0(18)[32], + =RW4CG/0/P(18)[32], R0Q(19)[23],RA0Q(19)[23],RC0Q(19)[23],RD0Q(19)[23],RE0Q(19)[23],RF0Q(19)[23],RG0Q(19)[23], RI0Q(19)[23],RJ0Q(19)[23],RK0Q(19)[23],RL0Q(19)[23],RM0Q(19)[23],RN0Q(19)[23],RO0Q(19)[23], RQ0Q(19)[23],RT0Q(19)[23],RU0Q(19)[23],RV0Q(19)[23],RW0Q(19)[23],RX0Q(19)[23],RY0Q(19)[23], @@ -2581,52 +2590,51 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UF0Q(19)[23],UG0Q(19)[23],UH0Q(19)[23],UI0Q(19)[23],=R1ZBH/0(19)[23],=R2DG/0(19)[23], =R3CA/0(19)[23],=R3CA/0/M(19)[23],=R3RRC/0(19)[23],=R70ASIA(19)[23],=R73EPC/P(19)[23], =R9OOO/0(19)[23],=RA/UT5IA(19)[23],=RA0STT/0/M(19)[23],=RA6UAH/0(19)[23],=RA70AA(19)[23], - =RA9DA/0(19)[23],=RD3QA/0(19)[23],=RF3A/0(19)[23],=RK6YYA/0/P(19)[23],=RN6LFF/0(19)[23], - =RP0Q(19)[23],=RP70AY(19)[23],=RP71AS(19)[23],=RT0Q(19)[23],=RW110RAEM(19)[23],=RW22WR(19)[23], - =RZ3BY/0(19)[23],=UA0SVD/0(19)[23],=UA1PBA/0(19)[23],=UA9CTT/0(19)[23],=UA9KW/0(19)[23], - =UB5O/0(19)[23],=UE60QA(19)[23],=UE6MAC/0(19)[23], + =RA9DA/0(19)[23],=RD3QA/0(19)[23],=RF3A/0(19)[23],=RK6YYA/0/P(19)[23],=RL5G/0(19)[23], + =RN6LFF/0(19)[23],=RP0Q(19)[23],=RP70AY(19)[23],=RP71AS(19)[23],=RT0Q(19)[23],=RW110RAEM(19)[23], + =RW22WR(19)[23],=RZ3BY/0(19)[23],=UA0SVD/0(19)[23],=UA1PBA/0(19)[23],=UA9CTT/0(19)[23], + =UA9KW/0(19)[23],=UB5O/0(19)[23],=UE60QA(19)[23],=UE6MAC/0(19)[23], R0R(18)[32],R0S(18)[32],R0T(18)[32],RA0R(18)[32],RA0S(18)[32],RA0T(18)[32],RC0R(18)[32], RC0S(18)[32],RC0T(18)[32],RD0R(18)[32],RD0S(18)[32],RD0T(18)[32],RE0R(18)[32],RE0S(18)[32], RE0T(18)[32],RF0R(18)[32],RF0S(18)[32],RF0T(18)[32],RG0R(18)[32],RG0S(18)[32],RG0T(18)[32], - RI0R(18)[32],RI0S(18)[32],RI0T(18)[32],RJ0R(18)[32],RJ0S(18)[32],RJ0T(18)[32],RK0R(18)[32], - RK0S(18)[32],RK0T(18)[32],RL0R(18)[32],RL0S(18)[32],RL0T(18)[32],RM0R(18)[32],RM0S(18)[32], - RM0T(18)[32],RN0R(18)[32],RN0S(18)[32],RN0T(18)[32],RO0R(18)[32],RO0S(18)[32],RO0T(18)[32], - RQ0R(18)[32],RQ0S(18)[32],RQ0T(18)[32],RT0R(18)[32],RT0S(18)[32],RT0T(18)[32],RU0R(18)[32], - RU0S(18)[32],RU0T(18)[32],RV0R(18)[32],RV0S(18)[32],RV0T(18)[32],RW0R(18)[32],RW0S(18)[32], - RW0T(18)[32],RX0R(18)[32],RX0S(18)[32],RX0T(18)[32],RY0R(18)[32],RY0S(18)[32],RY0T(18)[32], - RZ0R(18)[32],RZ0S(18)[32],RZ0T(18)[32],U0R(18)[32],U0S(18)[32],U0T(18)[32],UA0R(18)[32], - UA0S(18)[32],UA0T(18)[32],UB0R(18)[32],UB0S(18)[32],UB0T(18)[32],UC0R(18)[32],UC0S(18)[32], - UC0T(18)[32],UD0R(18)[32],UD0S(18)[32],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],=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],=RQ0C/9(18)[32],=RV6AJ/0(18)[32], - =RV7AD/0(18)[32],=RV9JD/0(18)[32],=RW4YA/0(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],=UE80SBR(18)[32], + RJ0R(18)[32],RJ0S(18)[32],RJ0T(18)[32],RK0R(18)[32],RK0S(18)[32],RK0T(18)[32],RL0R(18)[32], + RL0S(18)[32],RL0T(18)[32],RM0R(18)[32],RM0S(18)[32],RM0T(18)[32],RN0R(18)[32],RN0S(18)[32], + RN0T(18)[32],RO0R(18)[32],RO0S(18)[32],RO0T(18)[32],RQ0R(18)[32],RQ0S(18)[32],RQ0T(18)[32], + RT0R(18)[32],RT0S(18)[32],RT0T(18)[32],RU0R(18)[32],RU0S(18)[32],RU0T(18)[32],RV0R(18)[32], + RV0S(18)[32],RV0T(18)[32],RW0R(18)[32],RW0S(18)[32],RW0T(18)[32],RX0R(18)[32],RX0S(18)[32], + RX0T(18)[32],RY0R(18)[32],RY0S(18)[32],RY0T(18)[32],RZ0R(18)[32],RZ0S(18)[32],RZ0T(18)[32], + U0R(18)[32],U0S(18)[32],U0T(18)[32],UA0R(18)[32],UA0S(18)[32],UA0T(18)[32],UB0R(18)[32], + UB0S(18)[32],UB0T(18)[32],UC0R(18)[32],UC0S(18)[32],UC0T(18)[32],UD0R(18)[32],UD0S(18)[32], + 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],=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],=RQ0C/9(18)[32],=RV6AJ/0(18)[32],=RV7AD/0(18)[32],=RV9JD/0(18)[32], + =RW4YA/0(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], - RI0W(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],U0W(18)[31],UA0W(18)[31],UB0W(18)[31],UC0W(18)[31],UD0W(18)[31],UE0W(18)[31], - UF0W(18)[31],UG0W(18)[31],UH0W(18)[31],UI0W(18)[31],=R01DTV/9(18)[31],=R10RTRS/0(18)[31], - =RA0AM/0(18)[31],=RP0W(18)[31],=RP0W/P(18)[31],=RP0WWS(18)[31],=RP70SL(18)[31],=RP72SL(18)[31], - =RV0AE/0/FF(18)[31],=RZ0AM/0(18)[31],=RZ22WW(18)[31],=UA0FCB/P(18)[31],=UA0WW/M(18)[31], - =UA9UAX/0/M(18)[31],=UE0ARD/0(18)[31],=UE10RFF/9(18)[31],=UE1RFF/0/P(18)[31],=UE9FDA/0(18)[31], - =UE9FDA/0/M(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], + U0W(18)[31],UA0W(18)[31],UB0W(18)[31],UC0W(18)[31],UD0W(18)[31],UE0W(18)[31],UF0W(18)[31], + UG0W(18)[31],UH0W(18)[31],UI0W(18)[31],=R01DTV/9(18)[31],=R10RTRS/0(18)[31],=RA0AM/0(18)[31], + =RP0W(18)[31],=RP0W/P(18)[31],=RP0WWS(18)[31],=RP70SL(18)[31],=RP72SL(18)[31],=RV0AE/0/FF(18)[31], + =RZ0AM/0(18)[31],=RZ22WW(18)[31],=UA0FCB/P(18)[31],=UA9UAX/0/M(18)[31],=UE0ARD/0(18)[31], + =UE10RFF/9(18)[31],=UE1RFF/0/P(18)[31],=UE9FDA/0(18)[31],=UE9FDA/0/M(18)[31], =R23RRC(19)[25],=UA6HMC/0(19)[25], R0Y(23)[32],RA0Y(23)[32],RC0Y(23)[32],RD0Y(23)[32],RE0Y(23)[32],RF0Y(23)[32],RG0Y(23)[32], - RI0Y(23)[32],RJ0Y(23)[32],RK0Y(23)[32],RL0Y(23)[32],RM0Y(23)[32],RN0Y(23)[32],RO0Y(23)[32], - RQ0Y(23)[32],RT0Y(23)[32],RU0Y(23)[32],RV0Y(23)[32],RW0Y(23)[32],RX0Y(23)[32],RY0Y(23)[32], - RZ0Y(23)[32],U0Y(23)[32],UA0Y(23)[32],UB0Y(23)[32],UC0Y(23)[32],UD0Y(23)[32],UE0Y(23)[32], - UF0Y(23)[32],UG0Y(23)[32],UH0Y(23)[32],UI0Y(23)[32],=R3YAB/9/P(23)[32],=R9OOO/9/M(23)[32], - =R9OOO/9/P(23)[32],=R9OY/9/P(23)[32],=RA0AJ/0/P(23)[32],=RA0WA/0/P(23)[32],=RA9YME/0(23)[32], - =RK3BY/0(23)[32],=RP0Y(23)[32],=RX0AE/0(23)[32],=RX0AT/0/P(23)[32],=UA0ADU/0(23)[32], - =UA0WGD/0(23)[32],=UA9ZZ/0/P(23)[32],=UE0OFF/0(23)[32],=UE44Y/9(23)[32],=UE70Y(23)[32], + RJ0Y(23)[32],RK0Y(23)[32],RL0Y(23)[32],RM0Y(23)[32],RN0Y(23)[32],RO0Y(23)[32],RQ0Y(23)[32], + RT0Y(23)[32],RU0Y(23)[32],RV0Y(23)[32],RW0Y(23)[32],RX0Y(23)[32],RY0Y(23)[32],RZ0Y(23)[32], + U0Y(23)[32],UA0Y(23)[32],UB0Y(23)[32],UC0Y(23)[32],UD0Y(23)[32],UE0Y(23)[32],UF0Y(23)[32], + UG0Y(23)[32],UH0Y(23)[32],UI0Y(23)[32],=R3YAB/9/P(23)[32],=R9OOO/9/M(23)[32],=R9OOO/9/P(23)[32], + =R9OY/9/P(23)[32],=RA0AJ/0/P(23)[32],=RA0WA/0/P(23)[32],=RA9YME/0(23)[32],=RK3BY/0(23)[32], + =RP0Y(23)[32],=RX0AE/0(23)[32],=RX0AT/0/P(23)[32],=UA0ADU/0(23)[32],=UA0WGD/0(23)[32], + =UA9ZZ/0/P(23)[32],=UE0OFF/0(23)[32],=UE44Y/9(23)[32],=UE70Y(23)[32], R0X(19)[35],R0Z(19)[35],RA0X(19)[35],RA0Z(19)[35],RC0X(19)[35],RC0Z(19)[35],RD0X(19)[35], RD0Z(19)[35],RE0X(19)[35],RE0Z(19)[35],RF0X(19)[35],RF0Z(19)[35],RG0X(19)[35],RG0Z(19)[35], RI0X(19)[35],RI0Z(19)[35],RJ0X(19)[35],RJ0Z(19)[35],RK0X(19)[35],RK0Z(19)[35],RL0X(19)[35], @@ -2643,19 +2651,18 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =UE3ATV/0(19)[35],=UE44V(19)[35], R0U(18)[32],R0V(18)[32],RA0U(18)[32],RA0V(18)[32],RC0U(18)[32],RC0V(18)[32],RD0U(18)[32], RD0V(18)[32],RE0U(18)[32],RE0V(18)[32],RF0U(18)[32],RF0V(18)[32],RG0U(18)[32],RG0V(18)[32], - RI0U(18)[32],RI0V(18)[32],RJ0U(18)[32],RJ0V(18)[32],RK0U(18)[32],RK0V(18)[32],RL0U(18)[32], - RL0V(18)[32],RM0U(18)[32],RM0V(18)[32],RN0U(18)[32],RN0V(18)[32],RO0U(18)[32],RO0V(18)[32], - RQ0U(18)[32],RQ0V(18)[32],RT0U(18)[32],RT0V(18)[32],RU0U(18)[32],RU0V(18)[32],RV0U(18)[32], - RV0V(18)[32],RW0U(18)[32],RW0V(18)[32],RX0U(18)[32],RX0V(18)[32],RY0U(18)[32],RY0V(18)[32], - RZ0U(18)[32],RZ0V(18)[32],U0U(18)[32],U0V(18)[32],UA0U(18)[32],UA0V(18)[32],UB0U(18)[32], - UB0V(18)[32],UC0U(18)[32],UC0V(18)[32],UD0U(18)[32],UD0V(18)[32],UE0U(18)[32],UE0V(18)[32], - UF0U(18)[32],UF0V(18)[32],UG0U(18)[32],UG0V(18)[32],UH0U(18)[32],UH0V(18)[32],UI0U(18)[32], - UI0V(18)[32],=R120RQ(18)[32],=R16FRA(18)[32],=R20RCK(18)[32],=R20RCK/0(18)[32],=R25ARCK(18)[32], - =R70BP/0(18)[32],=R7AB/9(18)[32],=R7AB/M(18)[32],=R7AB/P(18)[32],=RA/UR5WT(18)[32], - =RA77VV(18)[32],=RB110RAEM(18)[32],=RK0AXC/0(18)[32],=RK0AXC/0/M(18)[32],=RK6YYA/0(18)[32], - =RK6YYA/0/M(18)[32],=RL5G/9(18)[32],=RN4CU/0(18)[32],=RN4CU/0/P(18)[32],=RP0UWZ(18)[32], - =RP0UZF(18)[32],=RW0UM/0(18)[32],=UA3AKO/0/M(18)[32],=UE15UWC(18)[32],=UE70UVV(18)[32], - =UE70UWW(18)[32],=UE75VV(18)[32]; + RJ0U(18)[32],RJ0V(18)[32],RK0U(18)[32],RK0V(18)[32],RL0U(18)[32],RL0V(18)[32],RM0U(18)[32], + RM0V(18)[32],RN0U(18)[32],RN0V(18)[32],RO0U(18)[32],RO0V(18)[32],RQ0U(18)[32],RQ0V(18)[32], + RT0U(18)[32],RT0V(18)[32],RU0U(18)[32],RU0V(18)[32],RV0U(18)[32],RV0V(18)[32],RW0U(18)[32], + RW0V(18)[32],RX0U(18)[32],RX0V(18)[32],RY0U(18)[32],RY0V(18)[32],RZ0U(18)[32],RZ0V(18)[32], + U0U(18)[32],U0V(18)[32],UA0U(18)[32],UA0V(18)[32],UB0U(18)[32],UB0V(18)[32],UC0U(18)[32], + UC0V(18)[32],UD0U(18)[32],UD0V(18)[32],UE0U(18)[32],UE0V(18)[32],UF0U(18)[32],UF0V(18)[32], + UG0U(18)[32],UG0V(18)[32],UH0U(18)[32],UH0V(18)[32],UI0U(18)[32],UI0V(18)[32],=R120RQ(18)[32], + =R16FRA(18)[32],=R20RCK(18)[32],=R20RCK/0(18)[32],=R25ARCK(18)[32],=R70BP/0(18)[32], + =R7AB/9(18)[32],=RA/UR5WT(18)[32],=RA77VV(18)[32],=RB110RAEM(18)[32],=RK0AXC/0(18)[32], + =RK0AXC/0/M(18)[32],=RK6YYA/0(18)[32],=RK6YYA/0/M(18)[32],=RL5G/9(18)[32],=RN4CU/0(18)[32], + =RN4CU/0/P(18)[32],=RP0UWZ(18)[32],=RP0UZF(18)[32],=RW0UM/0(18)[32],=UA3AKO/0/M(18)[32], + =UE15UWC(18)[32],=UE70UVV(18)[32],=UE70UWW(18)[32],=UE75VV(18)[32]; Uzbekistan: 17: 30: AS: 41.40: -63.97: -5.0: UK: UJ,UK,UL,UM,=U8AG,=U8AH,=U8AI,=UK/DF3DS/Z; Kazakhstan: 17: 30: AS: 48.17: -65.18: -5.0: UN: @@ -2712,18 +2719,18 @@ 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,=VER20170814, + CF,CG,CJ,CK,VA,VB,VC,VE,VG,VX,VY9,XL,XM,=VE2EM/M,=VER20170921, =CF7AAW/1,=CK7IG/1,=VA3QSL/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],=VA3ELE/2[4],=VA3MPM/2[4],=VA7AQ/P[4],=VE2/G3ZAY/P[4],=VE2/M0BLF/P[4],=VE2FK[9], =VE2HAY/P[4],=VE2MAM/P[4],=VE2OV/P[4],=VE3AP/2[4],=VE3EXY/2[4],=VE3GF/2[4],=VE3GNO/2[4], =VE3IAC/2[4],=VE3ZZ/2[4],=VE6TC/2[4],=VE7IG/2[4],=XO0ICE/2[4], CF3(4)[4],CG3(4)[4],CJ3(4)[4],CK3(4)[4],VA3(4)[4],VB3(4)[4],VC3(4)[4],VE3(4)[4],VG3(4)[4], - VX3(4)[4],XL3(4)[4],XM3(4)[4],=CI0XN/P(4)[4],=CJ7EWK/3(4)[4],=VE1RM/3(4)[4],=VE2AEJ/3(4)[4], - =VE2MAM/3(4)[4],=VE2PK/3(4)[4],=VE2QLF/3(4)[4],=VE2QV/3(4)[4],=VE2XB/3(4)[4],=VE2XZ/3(4)[4], - =VE2ZQ/3(4)[4],=VE7APF/3(4)[4],=VE8HI/3(4)[4],=VX9GHD(4)[4],=VX9GHQ(4)[4],=VX9GLC(4)[4], - =VX9GLI(4)[4],=VX9SHA(4)[4],=VY2MGY/3(4)[4],=XK0XN(4)[4],=XK0XN/P(4)[4],=XO0XN(4)[4], - =XO0XN/P(4)[4], + VX3(4)[4],XL3(4)[4],XM3(4)[4],=CF7EWK/3(4)[4],=CI0XN/P(4)[4],=CJ7EWK/3(4)[4],=VA7EWK/3(4)[4], + =VE1RM/3(4)[4],=VE2AEJ/3(4)[4],=VE2MAM/3(4)[4],=VE2PK/3(4)[4],=VE2QLF/3(4)[4],=VE2QV/3(4)[4], + =VE2XB/3(4)[4],=VE2XZ/3(4)[4],=VE2ZQ/3(4)[4],=VE7APF/3(4)[4],=VE8HI/3(4)[4],=VX9GHD(4)[4], + =VX9GHQ(4)[4],=VX9GLC(4)[4],=VX9GLI(4)[4],=VX9SHA(4)[4],=VY2MGY/3(4)[4],=XK0XN(4)[4], + =XK0XN/P(4)[4],=XO0XN(4)[4],=XO0XN/P(4)[4], CF4(4)[3],CG4(4)[3],CJ4(4)[3],CK4(4)[3],VA4(4)[3],VB4(4)[3],VC4(4)[3],VE4(4)[3],VG4(4)[3], VX4(4)[3],XL4(4)[3],XM4(4)[3],=VA7MPG/4(4)[3],=VE1RM/4(4)[3], CF5(4)[3],CG5(4)[3],CJ5(4)[3],CK5(4)[3],VA5(4)[3],VB5(4)[3],VC5(4)[3],VE5(4)[3],VG5(4)[3], @@ -2746,18 +2753,17 @@ Canada: 05: 09: NA: 44.35: 78.75: 5.0: VE: CI2,CZ2,VF2,VY2,XK2,XO2, =AC8W/VE2(2)[4],=CF2RC(2)[4],=CF2VVV(2)[4],=CJ2BY(2)[4],=CJ2KCE(2)[4],=K3FMQ/VE2(2)[4], =K5YG/VE2(2)[4],=KD3RF/VE2(2)[4],=KD3TB/VE2(2)[4],=N5ZO/VE2(2)[4],=VA1CN/2(2)[4],=VA2BY(2)[4], - =VA2KCE(2)[4],=VA2PL(2)[4],=VA2RAG(2)[4],=VA2RC(2)[4],=VA2UA(2)[4],=VA2VFT(2)[4],=VA2VVV(2)[4], - =VA2ZM(2)[4],=VA3NA/2(2)[4],=VB2C(2)[4],=VB2R(2)[4],=VB2T(2)[4],=VB2V(2)[4],=VB2W(2)[4], - =VC2C(2)[4],=VC2EME(2)[4],=VC2Q(2)[4],=VC2R(2)[4],=VC2X(2)[4],=VC3W/2(2)[4],=VE2/JA8BMK(2)[4], - =VE2/K5YG(2)[4],=VE2/KD3RF(2)[4],=VE2/KD3RF/M(2)[4],=VE2/N1NK(2)[4],=VE2/W2NTJ(2)[4], - =VE2/W5GED(2)[4],=VE2A(2)[4],=VE2ACP/P(2)[4],=VE2AE(2)[4],=VE2CSI(2)[4],=VE2CVI(2)[4], - =VE2DXY(2)[4],=VE2EKA(2)[4],=VE2ENB(2)[4],=VE2EW(2)[4],=VE2FDJ/2(2)[4],=VE2GHZ/2(2)[4], - =VE2HRI(2)[4],=VE2IDX(2)[4],=VE2III(2)[4],=VE2IM(2)[4],=VE2KK(2)[4],=VE2NN(2)[4],=VE2OTT(2)[4], - =VE2PR(2)[4],=VE2PRG(2)[4],=VE2QIP/2(2)[4],=VE2SSS(2)[4],=VE2UA(2)[4],=VE2WDX(2)[4], + =VA2KCE(2)[4],=VA2RAG(2)[4],=VA2RC(2)[4],=VA2VFT(2)[4],=VA2VVV(2)[4],=VA2ZM(2)[4],=VA3NA/2(2)[4], + =VB2C(2)[4],=VB2R(2)[4],=VB2T(2)[4],=VB2V(2)[4],=VB2W(2)[4],=VC2C(2)[4],=VC2EME(2)[4],=VC2Q(2)[4], + =VC2R(2)[4],=VC2X(2)[4],=VC3W/2(2)[4],=VE2/JA8BMK(2)[4],=VE2/K5YG(2)[4],=VE2/KD3RF(2)[4], + =VE2/KD3RF/M(2)[4],=VE2/N1NK(2)[4],=VE2/W2NTJ(2)[4],=VE2/W5GED(2)[4],=VE2A(2)[4],=VE2ACP/P(2)[4], + =VE2AE(2)[4],=VE2CSI(2)[4],=VE2CVI(2)[4],=VE2DXY(2)[4],=VE2EKA(2)[4],=VE2EW(2)[4],=VE2FDJ/2(2)[4], + =VE2GHZ/2(2)[4],=VE2HRI(2)[4],=VE2IDX(2)[4],=VE2III(2)[4],=VE2IM(2)[4],=VE2KK(2)[4],=VE2NN(2)[4], + =VE2OTT(2)[4],=VE2PR(2)[4],=VE2PRG(2)[4],=VE2QIP/2(2)[4],=VE2SSS(2)[4],=VE2WDX(2)[4], =VE2XAA/2(2)[4],=VE2XB/2(2)[4],=VE2Z(2)[4],=VE3AXC/2(2)[4],=VE3CWU/2(2)[4],=VE3EXY/VE2(2)[4], =VE3EY/2(2)[4],=VE3JM/2(2)[4],=VE3NE/2(2)[4],=VE3NWA/2(2)[4],=VE3RHJ/2(2)[4],=VE3ZF/2(2)[4], - =VE7MID/VE2(2)[4],=VE8DX/2(2)[4],=W0SD/VE2(2)[4],=W2NTJ/VE2(2)[4],=W5GED/VE2(2)[4], - =WB8YTZ/VE2(2)[4],=XM3NE/2(2)[4], + =VE7MID/VE2(2)[4],=VE8DX/2(2)[4],=W0SD/VE2(2)[4],=W2NTJ/VE2(2)[4],=W4TMO/VE2(2)[4], + =W5GED/VE2(2)[4],=WB8YTZ/VE2(2)[4],=XM3NE/2(2)[4], =VY0V(4)[4]; Australia: 30: 59: OC: -23.70: -132.33: -10.0: VK: AX,VH,VI,VJ,VK,VL,VM,VN,VZ,=VK9MAV, @@ -2770,11 +2776,11 @@ Australia: 30: 59: OC: -23.70: -132.33: -10.0: VK: AX6(29)[58],VH6(29)[58],VI6(29)[58],VJ6(29)[58],VK6(29)[58],VL6(29)[58],VM6(29)[58],VN6(29)[58], VZ6(29)[58],=VI103WIA(29)[58],=VI5RAS/6(29)[58],=VI90ANZAC(29)[58],=VK1FOC/6(29)[58], =VK2015TDF(29)[58],=VK2BAA/6(29)[58],=VK2FDU/6(29)[58],=VK2IA/6(29)[58],=VK2RAS/6(29)[58], - =VK3DXI/6(29)[58],=VK3FPF/6(29)[58],=VK3FPIL/6(29)[58],=VK3JBL/6(29)[58],=VK3KG/6(29)[58], - =VK3MCD/6(29)[58],=VK3NUT/6(29)[58],=VK3YQS/6(29)[58],=VK4IXU/6(29)[58],=VK4JWG/6(29)[58], - =VK4NAI/6(29)[58],=VK4NH/6(29)[58],=VK5CC/6(29)[58],=VK5CE/6(29)[58],=VK5CE/9(29)[58], - =VK5MAV/6(29)[58],=VK5NHG/6(29)[58],=VK5PAS/6(29)[58],=VK6BV/AF(29)[58],=VK9AR(29)[58], - =VK9ZLH/6(29)[58], + =VK3DP/6(29)[58],=VK3DXI/6(29)[58],=VK3FPF/6(29)[58],=VK3FPIL/6(29)[58],=VK3JBL/6(29)[58], + =VK3KG/6(29)[58],=VK3MCD/6(29)[58],=VK3NUT/6(29)[58],=VK3YQS/6(29)[58],=VK4IXU/6(29)[58], + =VK4JWG/6(29)[58],=VK4NAI/6(29)[58],=VK4NH/6(29)[58],=VK5CC/6(29)[58],=VK5CE/6(29)[58], + =VK5CE/9(29)[58],=VK5MAV/6(29)[58],=VK5NHG/6(29)[58],=VK5PAS/6(29)[58],=VK6BV/AF(29)[58], + =VK9AR(29)[58],=VK9ZLH/6(29)[58], =VK6JON/7,=VK6KSJ/7,=VK6ZN/7,=VK7NWT/LH,=VK8XX/7, AX8(29)[55],VH8(29)[55],VI8(29)[55],VJ8(29)[55],VK8(29)[55],VL8(29)[55],VM8(29)[55],VN8(29)[55], VZ8(29)[55],=VI5RAS/8(29)[55],=VK1AHS/8(29)[55],=VK1FOC/8(29)[55],=VK2CBD/8(29)[55], @@ -2820,8 +2826,7 @@ Ducie Island: 32: 63: OC: -24.70: 124.80: 8.0: VP6/d: Falkland Islands: 13: 16: SA: -51.63: 58.72: 4.0: VP8: VP8; South Georgia Island: 13: 73: SA: -54.48: 37.08: 2.0: VP8/g: - =VP8CA,=VP8CKB,=VP8DIF,=VP8DKX,=VP8DOZ,=VP8DPK,=VP8DPK/P,=VP8DXU,=VP8GEO,=VP8GI,=VP8SGB,=VP8SGI, - =VP8SGK; + =VP8CA,=VP8CKB,=VP8DIF,=VP8DKX,=VP8DOZ,=VP8DXU,=VP8GEO,=VP8GI,=VP8SGB,=VP8SGI,=VP8SGK; South Shetland Islands: 13: 73: SA: -62.08: 58.67: 4.0: VP8/h: CE9,XR9,=BY/R1ANF,=CA8WCI/9,=CV0A,=D88S,=DP1ANF,=DT8A,=EA/FT5YK,=EA/FT5YK/P,=EA1CYK/P,=EA1CYK/VP8, =EA4FZR,=EA4FZR/P,=ED3RKL,=HC/FT5YK,=HF0/R1ANF,=HF0APAS,=HF0ARC,=HF0POL,=HF0POL/LH,=HF0QF,=HL0KSJ, @@ -2897,7 +2902,7 @@ El Salvador: 07: 11: NA: 14.00: 89.00: 6.0: YS: HU,YS; Serbia: 15: 28: EU: 44.00: -21.00: -1.0: YU: YT,YU,=4O0A,=4O5W,=4O5Z,=4U/DA1KY,=YT1S/J,=YT2A/LGT,=YT2A/LH,=YU/IZ1VUC/LH,=YU1BBA/J,=YU1CA/LH, - =YU1JF/LH,=YU7RQ/FAIR; + =YU1FW/LH,=YU1JF/LH,=YU7RQ/FAIR; Venezuela: 09: 12: SA: 8.00: 66.00: 4.5: YV: 4M,YV,YW,YX,YY; Aves Island: 08: 11: NA: 15.67: 63.60: 4.0: YV0: diff --git a/decodedtext.cpp b/decodedtext.cpp index e8a293fab..54c56e5f9 100644 --- a/decodedtext.cpp +++ b/decodedtext.cpp @@ -14,14 +14,13 @@ namespace } DecodedText::DecodedText (QString const& the_string, bool contest_mode, QString const& my_grid) - : string_ {the_string} - , padding_ {the_string.indexOf (" ") > 4 ? 2 : 0} // allow for + : string_ {the_string.left (the_string.indexOf (QChar::Nbsp))} // discard appended info + , padding_ {string_.indexOf (" ") > 4 ? 2 : 0} // allow for // seconds , contest_mode_ {contest_mode} , message_ {string_.mid (column_qsoText + padding_).trimmed ()} , is_standard_ {false} { - string_ = string_.left (column_qsoText + padding_ + 25); if (message_.length() >= 1) { message_ = message_.left (21).remove (QRegularExpression {"[<>]"}); diff --git a/displaytext.cpp b/displaytext.cpp index 096e46cfc..989e206bd 100644 --- a/displaytext.cpp +++ b/displaytext.cpp @@ -5,18 +5,39 @@ #include #include #include +#include +#include #include "qt_helpers.hpp" #include "moc_displaytext.cpp" -DisplayText::DisplayText(QWidget *parent) : - QTextEdit(parent) +DisplayText::DisplayText(QWidget *parent) + : QTextEdit(parent) + , erase_action_ {new QAction {tr ("&Erase"), this}} { setReadOnly (true); viewport ()->setCursor (Qt::ArrowCursor); setWordWrapMode (QTextOption::NoWrap); - document ()->setMaximumBlockCount (5000); // max lines to limit heap usage + + // max lines to limit heap usage + document ()->setMaximumBlockCount (5000); + + // context menu erase action + setContextMenuPolicy (Qt::CustomContextMenu); + connect (this, &DisplayText::customContextMenuRequested, [this] (QPoint const& position) { + auto * menu = createStandardContextMenu (position); + menu->addAction (erase_action_); + menu->exec (mapToGlobal (position)); + delete menu; + }); + connect (erase_action_, &QAction::triggered, this, &DisplayText::erase); +} + +void DisplayText::erase () +{ + clear (); + Q_EMIT erased (); } void DisplayText::setContentFont(QFont const& font) @@ -42,9 +63,7 @@ void DisplayText::setContentFont(QFont const& font) void DisplayText::mouseDoubleClickEvent(QMouseEvent *e) { - bool ctrl = (e->modifiers() & Qt::ControlModifier); - bool alt = (e->modifiers() & Qt::AltModifier); - emit(selectCallsign(alt,ctrl)); + Q_EMIT selectCallsign(e->modifiers ()); QTextEdit::mouseDoubleClickEvent(e); } @@ -81,12 +100,12 @@ void DisplayText::appendText(QString const& text, QColor bg) QString DisplayText::appendDXCCWorkedB4(QString message, QString const& callsign, QColor * bg, - LogBook const& logBook, QColor color_CQ, - QColor color_DXCC, - QColor color_NewCall) + LogBook const& logBook, QColor color_CQ, + QColor color_DXCC, + QColor color_NewCall) { // allow for seconds - unsigned padding {message.indexOf (" ") > 4 ? 2U : 0U}; + int padding {message.indexOf (" ") > 4 ? 2 : 0}; QString call = callsign; QString countryName; bool callWorkedBefore; @@ -102,64 +121,60 @@ QString DisplayText::appendDXCCWorkedB4(QString message, QString const& callsign if(!call.contains(QRegExp("[0-9]|[A-Z]"))) return message; logBook.match(/*in*/call,/*out*/countryName,callWorkedBefore,countryWorkedBefore); - int charsAvail = 52 + padding; - // the decoder (seems) to always generate 41 chars. For a normal CQ - // call, the last five are spaces - // - // A maximum length call is "QRZ VP2X/GM4WJS IO91" "CQ AA ..." or CQ - // nnn ..." don't allow grid squares so are not longer. Here we align - // the added info at least after the longest CQ/QRZ message plus one - // space so that it can be stripped off algorithmically later. - // - int nmin = 46 + padding; - int s3 = message.indexOf (" ", nmin); - if (s3 < nmin) s3 = nmin; // always want at least the characters to position 45 - s3 += 1; // convert the index into a character count - message = message.left(s3); // reduce trailing white space - charsAvail -= s3; - if (charsAvail > 4) + message = message.trimmed (); + QString appendage; + if (!countryWorkedBefore) // therefore not worked call either { - if (!countryWorkedBefore) // therefore not worked call either + appendage += "!"; + *bg = color_DXCC; + } + else + { + if (!callWorkedBefore) // but have worked the country { - message += "!"; - *bg = color_DXCC; + appendage += "~"; + *bg = color_NewCall; } else - if (!callWorkedBefore) // but have worked the country - { - message += "~"; - *bg = color_NewCall; - } - else - { - message += " "; // have worked this call before - *bg = color_CQ; - } - charsAvail -= 1; - - // do some obvious abbreviations - countryName.replace ("Islands", "Is."); - countryName.replace ("Island", "Is."); - countryName.replace ("North ", "N. "); - countryName.replace ("Northern ", "N. "); - countryName.replace ("South ", "S. "); - countryName.replace ("East ", "E. "); - countryName.replace ("Eastern ", "E. "); - countryName.replace ("West ", "W. "); - countryName.replace ("Western ", "W. "); - countryName.replace ("Central ", "C. "); - countryName.replace (" and ", " & "); - countryName.replace ("Republic", "Rep."); - countryName.replace ("United States", "U.S.A."); - countryName.replace ("Fed. Rep. of ", ""); - countryName.replace ("French ", "Fr."); - countryName.replace ("Asiatic", "AS"); - countryName.replace ("European", "EU"); - countryName.replace ("African", "AF"); - - message += countryName; + { + appendage += " "; // have worked this call before + *bg = color_CQ; + } } + + // do some obvious abbreviations + countryName.replace ("Islands", "Is."); + countryName.replace ("Island", "Is."); + countryName.replace ("North ", "N. "); + countryName.replace ("Northern ", "N. "); + countryName.replace ("South ", "S. "); + countryName.replace ("East ", "E. "); + countryName.replace ("Eastern ", "E. "); + countryName.replace ("West ", "W. "); + countryName.replace ("Western ", "W. "); + countryName.replace ("Central ", "C. "); + countryName.replace (" and ", " & "); + countryName.replace ("Republic", "Rep."); + countryName.replace ("United States", "U.S.A."); + countryName.replace ("Fed. Rep. of ", ""); + countryName.replace ("French ", "Fr."); + countryName.replace ("Asiatic", "AS"); + countryName.replace ("European", "EU"); + countryName.replace ("African", "AF"); + + appendage += countryName; + + // use a nbsp to save the start of appended text so we can find + // it again later, align appended data at a fixed column if + // there is space otherwise let it float to the right + int space_count {40 + padding - message.size ()}; + if (space_count > 0) + { + message += QString {space_count, QChar {' '}}; + } + message += QChar::Nbsp + appendage; + return message; } @@ -169,29 +184,30 @@ void DisplayText::displayDecodedText(DecodedText const& decodedText, QString con QColor color_DXCC, QColor color_NewCall) { QColor bg {Qt::white}; - bool CQcall = false; - if (decodedText.string ().contains (" CQ ") - || decodedText.string ().contains (" CQDX ") - || decodedText.string ().contains (" QRZ ")) + bool CQcall = false; + if (decodedText.string ().contains (" CQ ") + || decodedText.string ().contains (" CQDX ") + || decodedText.string ().contains (" QRZ ")) { - CQcall = true; - bg = color_CQ; - } - if (myCall != "" and ( - decodedText.indexOf (" " + myCall + " ") >= 0 - or decodedText.indexOf (" " + myCall + "/") >= 0 - or decodedText.indexOf ("/" + myCall + " ") >= 0 - or decodedText.indexOf ("<" + myCall + " ") >= 0 - or decodedText.indexOf (" " + myCall + ">") >= 0)) { - bg = color_MyCall; + CQcall = true; + bg = color_CQ; } + if (myCall != "" and ( + decodedText.indexOf (" " + myCall + " ") >= 0 + or decodedText.indexOf (" " + myCall + "/") >= 0 + or decodedText.indexOf ("/" + myCall + " ") >= 0 + or decodedText.indexOf ("<" + myCall + " ") >= 0 + or decodedText.indexOf (" " + myCall + ">") >= 0)) { + bg = color_MyCall; + } + auto message = decodedText.string (); + message = message.left (message.indexOf (QChar::Nbsp)); // strip appended info + if (displayDXCCEntity && CQcall) // if enabled add the DXCC entity and B4 status to the end of the // preformated text line t1 - auto message = decodedText.string (); - if (displayDXCCEntity && CQcall) - message = appendDXCCWorkedB4 (message, decodedText.CQersCall (), &bg, logBook, color_CQ, - color_DXCC, color_NewCall); - appendText (message, bg); + message = appendDXCCWorkedB4 (message, decodedText.CQersCall (), &bg, logBook, color_CQ, + color_DXCC, color_NewCall); + appendText (message.trimmed (), bg); } diff --git a/displaytext.h b/displaytext.h index f0c72a7bb..318a5d1bd 100644 --- a/displaytext.h +++ b/displaytext.h @@ -8,6 +8,8 @@ #include "logbook/logbook.h" #include "decodedtext.h" +class QAction; + class DisplayText : public QTextEdit { @@ -24,9 +26,11 @@ public: QColor color_TxMsg, bool bFastMode); void displayQSY(QString text); - Q_SIGNAL void selectCallsign (bool alt, bool ctrl); + Q_SIGNAL void selectCallsign (Qt::KeyboardModifiers); + Q_SIGNAL void erased (); Q_SLOT void appendText (QString const& text, QColor bg = Qt::white); + Q_SLOT void erase (); protected: void mouseDoubleClickEvent(QMouseEvent *e); @@ -36,6 +40,7 @@ private: QColor color_CQ, QColor color_DXCC, QColor color_NewCall); QFont char_font_; + QAction * erase_action_; }; #endif // DISPLAYTEXT_H diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 8ba6b20a9..b330f5e78 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -34,6 +34,7 @@ set (UG_SRCS protocols.adoc logging.adoc make-qso.adoc + measurement_tools.adoc new_features.adoc platform-dependencies.adoc protocols.adoc @@ -72,11 +73,15 @@ set (UG_IMGS images/decodes.png images/download_samples.png images/file-menu.png + images/FreqCal.png + images/FreqCal_Graph.png + images/FreqCal_Results.png images/freemsg.png images/ft8_decodes.png images/help-menu.png images/JT4F.png images/JT65B.png + images/keyboard-shortcuts.png images/MSK144.png images/QRA64.png images/WSPR_WideGraphControls.png @@ -109,6 +114,7 @@ set (UG_IMGS images/tools-menu.png images/traditional-msg-box.png images/tx-macros.png + images/VHF_controls.png images/view-menu.png images/wide-graph-controls.png diff --git a/doc/common/license.adoc b/doc/common/license.adoc index e96507f82..957dc5d99 100755 --- a/doc/common/license.adoc +++ b/doc/common/license.adoc @@ -12,4 +12,18 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this documentation. If not, see {gnu_gpl}. -Copyright (C) 2001-2017 Joseph H Taylor, Jr., K1JT. +Except where otherwise noted, all algorithms, protocol designs, source +code, and supporting files contained in the _{prog}_ package are the +intellectual property of the program's authors. The authors assert +*Copyright ownership* of this material, whether or not such copyright +notice appears in each individual file. Others who make fair use of +our work under terms of the GNU General Public License must display +the following copyright notice prominently: + +*The algorithms, source code, look-and-feel of _{prog}_ and related +programs, and protocol specifications for the modes FSK441, FT8, JT4, +JT6M, JT9, JT65, JTMS, QRA64, ISCAT, and MSK144 are Copyright (C) +2001-2017 by one or more of the following authors: Joseph Taylor, +K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, +IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; +Philip Karn, KA9Q; and other members of the WSJT Development Group.* diff --git a/doc/common/links.adoc b/doc/common/links.adoc index d9b84fbe5..22a674273 100644 --- a/doc/common/links.adoc +++ b/doc/common/links.adoc @@ -67,6 +67,7 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes. :fmt_group: https://groups.yahoo.com/neo/groups/FMT-nuts/info[FMT Group] :fmt_k5cm: http://www.k5cm.com/[FMT Event Info] :fmt_wspr: http://www.physics.princeton.edu/pulsar/K1JT/FMT_User.pdf[Accurate Frequency Measurements with your WSPR Setup] +:ft8_tips: http://www.physics.princeton.edu/pulsar/K1JT/FT8_Operating_Tips.pdf[here] :gnu_gpl: http://www.gnu.org/licenses/gpl-3.0.txt[GNU General Public License] :homepage: http://physics.princeton.edu/pulsar/K1JT/[WSJT Home Page] :hrd: http://www.hrdsoftwarellc.com/[Ham Radio Deluxe] @@ -76,6 +77,7 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes. :launchpadki7mt: https://launchpad.net/~ki7mt[KI7MT PPA's] :log4om: http://www.log4om.com[Log4OM] :lunarEchoes: http://physics.princeton.edu/pulsar/K1JT/LunarEchoes_QEX.pdf[QEX] +:msk144: http://physics.princeton.edu/pulsar/k1jt/MSK144_Protocol_QEX.pdf[QEX] :msys_url: http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/[MSYS Download] :ntpsetup: http://www.satsignal.eu/ntp/setup.html[Network Time Protocol Setup] :osx_instructions: http://physics.princeton.edu/pulsar/K1JT/OSX_Readme[Mac OS X Install Instructions] @@ -107,6 +109,7 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes. :QRA64_EME: http://physics.princeton.edu/pulsar/K1JT/QRA64_EME.pdf[QRA64 for microwave EME] :svn: http://subversion.apache.org/packages.html#windows[Subversion] :win32: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win32.exe[wsjtx-{VERSION}-win32.exe] +:wsjt-devel: https://lists.sourceforge.net/lists/listinfo/wsjt-devel[here] :wsjt_svn: http://sourceforge.net/p/wsjt/wsjt/HEAD/tree/[WSJT Source Repository] :wspr_code: http://physics.princeton.edu/pulsar/K1JT/WSPRcode.exe[WSPRcode.exe] :wspr_svn: http://sourceforge.net/p/wsjt/wsjt/HEAD/tree/branches/wspr/[WSPR Source Repository] diff --git a/doc/user_guide/en/controls-functions-menus.adoc b/doc/user_guide/en/controls-functions-menus.adoc index 50e8e43a2..6c2a3b26f 100644 --- a/doc/user_guide/en/controls-functions-menus.adoc +++ b/doc/user_guide/en/controls-functions-menus.adoc @@ -5,7 +5,7 @@ and operation. Most of the items are self-explanatory; a few additional details are provided below. Keyboard shortcuts for some frequently used menu items are listed at the right edge of the menu. -==== WSJT-X menu +==== _WSJT-X_ menu image::MacAppMenu.png[align="left",alt="Mac App Menu"] This menu appears on the Macintosh only. *Settings* appears here, diff --git a/doc/user_guide/en/controls-functions-wide-graph.adoc b/doc/user_guide/en/controls-functions-wide-graph.adoc index d941cd586..c237cd501 100644 --- a/doc/user_guide/en/controls-functions-wide-graph.adoc +++ b/doc/user_guide/en/controls-functions-wide-graph.adoc @@ -1,9 +1,10 @@ // Status=review The following controls appear at the bottom of the Wide Graph window. -With the exception of *JT65 nnnn JT9* (when operating in JT9+JT65 -mode), they affect only the graphical displays. They have no effect -on the decoding process. +Decoding occurs only in the displayed frequency range; otherwise, with +the exceptions of *Start NNN Hz* and of *JT65 nnnn JT9* when operating +in JT9+JT65 mode, controls on the Wide Graph window have no effect on +the decoding process. image::wide-graph-controls.png[align="center",alt="Wide Graph Controls"] diff --git a/doc/user_guide/en/decoder_notes.adoc b/doc/user_guide/en/decoder_notes.adoc index db10b3312..83e8a8b05 100644 --- a/doc/user_guide/en/decoder_notes.adoc +++ b/doc/user_guide/en/decoder_notes.adoc @@ -44,10 +44,11 @@ successful decode used MyCall as hypothetically known information. |=============================================== Table 2 lists the six possible QSO states that are tracked by the -WSJT-X auto-sequencer, along with the type of AP decoding that would +_WSJT-X_ auto-sequencer, along with the type of AP decoding that would be attempted in each state. -[[AP decoding types for each QSO state]] +[[AP_DECODING_TYPES_TABLE]] +.AP decoding types for each QSO state [width="35%",cols="h10,> dedicated to frequency calibration. -Then complete the following steps, as appropriate for your system. - -- Switch to FreqCal mode - -- In the _Working Frequencies_ box on the *Settings -> Frequencies* -tab, delete any default frequencies for *FreqCal* mode that are not -relevant for your location. You may want to replace some of them with -reliably known frequencies receivable at your location. - -TIP: We find major-city AM broadcast stations generally serve well as -frequency calibrators at the low frequency end of the spectrum. In -North America we also use the standard time-and-frequency broadcasts -of WWV at 2.500, 5.000, 10.000, 15.000, and 20.000 MHz, and CHU at -3.330, 7.850, and 14.670 MHz. Similar shortwave signals are available -in other parts of the world. - -- During the calibration procedure, the radio's USB dial frequency is -offset 1500 Hz below each *FreqCal* entry in the default frequencies -list. As shown in the screen shot below, detected signal carriers -therefore appear at about 1500 Hz in the WSJT-X waterfall. - -image::FreqCal.png[align="left",alt="FreqCal"] - -With modern synthesized radios, small measured offsets from 1500 Hz -will exhibit a straight-line dependence on frequency. You can -approximate the calibration of your radio by simply dividing the -measured frequency offset (in Hz) at the highest reliable frequency by -the nominal frequency itself (in MHz). For example, the 20 MHz -measurement for WWV shown above produced a measured tone offset of -24.6 Hz, displayed in the _WSJT-X_ decoded text window. The resulting -calibration constant is 24.6/20=1.23 parts per million. This number -may be entered as *Slope* on the *settings -> Frequencies* tab. - -A more precise calibration can be effected by fitting the intercept -and slope of a straight line to the whole sequence of calibration -measurements, as shown for these measurements in the graph plotted -below. Software tools for completing this task are included with the -_WSJT-X_ installation, and detailed instructions for their use are -available at https://physics.princeton.edu/pulsar/k1jt/FMT_User.pdf. -Using these tools and no specialized hardware beyond your -CAT-interfaced radio, you can calibrate the radio to better than 1 Hz -and compete very effectively in the ARRL's periodic Frequency -Measuring Tests. - -image::FreqCal_Graph.png[align="left",alt="FreqCal_Graph"] - -=== Reference Spectrum - -WSJT-X provides a tool that can be used to determine the detailed -shape of your receiver's passband. Disconnect your antenna or tune to -a quiet frequency with no signals. With WSJT-X running in one of the -slow modes, select *Measure reference spectrum* from the *Tools* menu. -Wait for about a minute and then hit the *Stop* button. A file named -`refspec.dat` will appear in your log directory. - - [ ... TBD ... ] - -=== Equalization - - [ ... TBD ... ] - +=== Frequency Calibration + +Many _WSJT-X_ capabilities depend on signal-detection bandwidths no +more than a few Hz. Frequency accuracy and stability are therefore +unusually important. We provide tools to enable accurate frequency +calibration of your radio, as well as precise frequency measurement of +on-the-air signals. The calibration procedure works by automatically +cycling your CAT-controlled radio through a series of preset +frequencies of carrier-based signals at reliably known frequencies, +measuring the error in dial frequency for each signal. + +You will probably find it convenient to define and use a special +<> dedicated to frequency calibration. +Then complete the following steps, as appropriate for your system. + +- Switch to FreqCal mode + +- In the _Working Frequencies_ box on the *Settings -> Frequencies* +tab, delete any default frequencies for *FreqCal* mode that are not +relevant for your location. You may want to replace some of them with +reliably known frequencies receivable at your location. + +TIP: We find major-city AM broadcast stations generally serve well as +frequency calibrators at the low frequency end of the spectrum. In +North America we also use the standard time-and-frequency broadcasts +of WWV at 2.500, 5.000, 10.000, 15.000, and 20.000 MHz, and CHU at +3.330, 7.850, and 14.670 MHz. Similar shortwave signals are available +in other parts of the world. + +- In most cases you will want to start by deleting any existing file +`fmt.all` in the directory where your log files are kept. + +- To cycle automatically through your chosen list of calibration +frequencies, check *Execute frequency calibration cycle* on the +*Tools* menu. _WSJT-X_ will spend 30 seconds at each +frequency. Initially no measurement data is saved to the `fmt.all` +file although it is displayed on screen, this allows you to check you +current calibration parameters. + +- During the calibration procedure, the radio's USB dial frequency is +offset 1500 Hz below each *FreqCal* entry in the default frequencies +list. As shown in the screen shot below, detected signal carriers +therefore appear at about 1500 Hz in the _WSJT-X_ waterfall. + +- To start a measurement session check the *Measure* option and let +the calibration cycle run for at least one complete sequence. Note +that, while measuring, any existing calibration parameters are +automatically disabled so you may have to increase the *FTol* range if +your rig is off freqeuncy by more than a few Hertz in order to capture +valid measurements. + +image::FreqCal.png[align="left",alt="FreqCal"] + +With modern synthesized radios, small measured offsets from 1500 Hz +will exhibit a straight-line dependence on frequency. You can +approximate the calibration of your radio by simply dividing the +measured frequency offset (in Hz) at the highest reliable frequency by +the nominal frequency itself (in MHz). For example, the 20 MHz +measurement for WWV shown above produced a measured tone offset of +24.6 Hz, displayed in the _WSJT-X_ decoded text window. The resulting +calibration constant is 24.6/20=1.23 parts per million. This number +may be entered as *Slope* on the *settings -> Frequencies* tab. + +A more precise calibration can be effected by fitting the intercept +and slope of a straight line to the whole sequence of calibration +measurements, as shown for these measurements in the graph plotted +below. Software tools for completing this task are included with the +_WSJT-X_ installation, and detailed instructions for their use are +available at https://physics.princeton.edu/pulsar/k1jt/FMT_User.pdf. + +Using these tools and no specialized hardware beyond your +CAT-interfaced radio, you can calibrate the radio to better than 1 Hz +and compete very effectively in the ARRL's periodic Frequency +Measuring Tests. + +image::FreqCal_Graph.png[align="left",alt="FreqCal_Graph"] + +After running *Execute frequency calibration cycle* at least once with +good results, check and edit the file `fmt.all` in the log directory +and delete any spurious or outlier measurements. The line-fitting +procedure can then be carried out automatically by clicking *Solve for +calibration parameters* on the *Tools* menu. The results will be +displayed as in the following screen shot. Estimated uncertainties +are included for slope and intercept; `N` is the number of averaged +frequency measurements included in the fit, and `StdDev` is the root +mean square deviation of averaged measurements from the fitted +straight line. If the solution seems valid you will be offered an +*Apply* button to push that will automatically set the calibration +parameters in *Settings -> Frequencies -> Frequency Calibration*. + +image::FreqCal_Results.png[align="center",alt="FreqCal_Results"] + +For a quick visual check of the resulting calibration, stay in +*FreqCal* mode with the *Measure* option cleared. _WSJT-X_ will show +the adjusted results directly on the waterfall and the displayed +records. + +=== Reference Spectrum + +_WSJT-X_ provides a tool that can be used to determine the detailed +shape of your receiver's passband. Disconnect your antenna or tune to +a quiet frequency with no signals. With _WSJT-X_ running in one of +the slow modes, select *Measure reference spectrum* from the *Tools* +menu. Wait for about a minute and then hit the *Stop* button. A file +named `refspec.dat` will appear in your log directory. + + [ ... more to come ... ] + +=== Phase Equalization + +*Measure phase response* under the *Tools* menu is for advanced MSK144 +users. Phase equalization is used to compensate for group-delay +variation across your receiver passband. Careful application of this +facility can reduce intersymbol interference, resulting in improved +decoding sensitivity. If you use a software-defined receiver with +linear-phase filters there is no need to apply phase equalization. + +After a frame of received data has been decoded, *Measure phase +response* generates an undistorted audio waveform equal to the one +generated by the transmitting station. Its Fourier transform is then +used as a frequency-dependent phase reference to compare with the +phase of the received frame's Fourier coefficients. Phase differences +between the reference spectrum and received spectrum will include +contributions from the originating station's transmit filter, the +propagation channel, and filters in the receiver. If the received +frame originates from a station known to transmit signals having +little phase distortion (say, a station known to use a properly +adjusted software-defined-transceiver) and if the received signal is +relatively free from multipath distortion so that the channel phase is +close to linear, the measured phase differences will be representative +of the local receiver's phase response. + +Complete the following steps to generate a phase equalization curve: + +- Record a number of wav files that contain decodable signals from +your chosen reference station. Best results will be obtained when the +signal-to-noise ratio of the reference signals is 10 dB or greater. + +- Enter the callsign of the reference station in the DX Call box. + +- Select *Measure phase response* from the *Tools* menu, and open each +of the wav files in turn. The mode character on decoded text lines +will change from `&` to `^` while _WSJT-X_ is measuring the phase +response, and it will change back to `&` after the measurement is +completed. The program needs to average a number of high-SNR frames to +accurately estimate the phase, so it may be necessary to process +several wav files. The measurement can be aborted at any time by +selecting *Measure phase response* again to toggle the phase +measurement off. + ++ + +When the measurement is complete _WSJT-X_ will save the measured +phase response in the *Log directory*, in a file with suffix +".pcoeff". The filename will contain the callsign of the reference +station and a timestamp, for example `K0TPP_170923_112027.pcoeff`. + +- Select *Equalization tools ...* under the *Tools* menu and click the +*Phase ...* button to view the contents of the *Log directory*. Select +the desired pcoeff file. The measured phase values will be plotted as +filled circles along with a fitted red curve labeled "Proposed". This is +the proposed phase equalization curve. It's a good idea to repeat the +phase measurement several times, using different wav files for each +measurement, to ensure that your measurements are repeatable. + +- Once you are satisfied with a fitted curve, push the *Apply* button +to save the proposed response. The red curve will be replaced with a +light green curve labeled "Current" to indicate that the phase +equalization curve is now being applied to the received data. Another +curve labeled "Group Delay" will appear. The "Group Delay" curve shows +the group delay variation across the passband, in ms. Click the +*Discard* button to remove the captured data, leaving only the applied +phase equalization curve and corresponding group delay curve. + +- To revert to no phase equalization, push the *Restore Defaults* +button followed by the *Apply* button. + +The three numbers printed at the end of each MSK144 decode line can be +used to assess the improvement provided by equalization. These numbers +are: `N` = Number of frames averaged, `H` = Number of hard bit errors +corrected, `E` = Size of MSK eye diagram opening. + +Here is a decode of K0TPP obtained while *Measure phase response* was measuring +the phase response: + + 103900 17 6.5 1493 ^ WA8CLT K0TPP +07 1 0 1.2 + +The "^" symbol indicates that a phase measurement is being accumulated +but is not yet finished. The three numbers at the end of the line +indicate that one frame was used to obtain the decode, there were no +hard bit errors, and the eye-opening was 1.2 on a -2 to +2 +scale. Here's how the same decode looks after phase equalization: + + 103900 17 6.5 1493 & WA8CLT K0TPP +07 1 0 1.6 + +In this case, equalization has increased the eye opening from 1.2 to +1.6. Larger positive eye openings are associated with reduced +likelihood of bit errors and higher likelihood that a frame will be +successfully decoded. In this case, the larger eye-opening tells us +that phase equalization was successful, but it is important to note +that this test does not by itself tell us whether the applied phase +equalization curve is going to improve decoding of signals other than +those from the reference station, K0TPP. + +It's a good idea to carry out before and after comparisons using a +large number of saved wav files with signals from many different +stations, to help decide whether your equalization curve improves +decoding for most signals. When doing such comparisons, keep in mind +that equalization may cause _WSJT-X_ to successfully decode a frame +that was not decoded before equalization was applied. For this +reason, be sure that the time "T" of the two decodes are the same +before comparing their end-of-line quality numbers. + +When comparing before and after decodes having the same "T", keep in +mind that a smaller first number means that decoding has improved, +even if the second and third numbers appear to be "worse". For +example, suppose that the end-of-line quality numbers before +equalization are `2 0 0.2` and after equalization `1 5 -0.5`. These +numbers show improved decoding because the decode was obtained using +only a single frame after equalization whereas a 2-frame average was +needed before equalization. This implies that shorter and/or weaker +pings could be decodable. + +NOTE: Further details on phase equalization and examples of fitted +phase curves and eye diagrams can be found in the article on MSK144 by +K9AN and K1JT published in {msk144}. diff --git a/doc/user_guide/en/new_features.adoc b/doc/user_guide/en/new_features.adoc index 8f413d73c..df1af6ac8 100644 --- a/doc/user_guide/en/new_features.adoc +++ b/doc/user_guide/en/new_features.adoc @@ -11,7 +11,7 @@ added to _WSJT-X_ since Version 1.7.0: - *SWL* option for third-party decoding short-format MSK144 messages -- Experimental amplitude and phase equalization for MSK144 +- Experimental phase equalization for MSK144 - Options to minimize screen space used by *Main* and *Wide Graph* windows diff --git a/doc/user_guide/en/settings-audio.adoc b/doc/user_guide/en/settings-audio.adoc index 00a6e19ef..478416836 100644 --- a/doc/user_guide/en/settings-audio.adoc +++ b/doc/user_guide/en/settings-audio.adoc @@ -1,6 +1,6 @@ // Status=review -image::settings-audio.png[align="center",alt="WSJT-X Audio Configuration Screen"] +image::settings-audio.png[align="center",alt="_WSJT-X_ Audio Configuration Screen"] Select the *Audio* tab to configure your sound system. diff --git a/doc/user_guide/en/support.adoc b/doc/user_guide/en/support.adoc index 055d79286..0a7e74b09 100644 --- a/doc/user_guide/en/support.adoc +++ b/doc/user_guide/en/support.adoc @@ -14,8 +14,10 @@ volunteer programmers to make the program better. Bugs may be reported to {wsjt_yahoo_group} (email address wsjtgroup@yahoogroups.com) or the WSJT Developers list (wsjt-devel@lists.sourceforge.net). Again, you will need to join the -group or subscribe to the list. To be useful, bug reports should -include at least the following information: +group or subscribe to the list. You can register for the list {wsjt-devel}. + +To be useful, bug reports should include at least the following +information: - Program version - Operating system diff --git a/doc/user_guide/en/tutorial-example1.adoc b/doc/user_guide/en/tutorial-example1.adoc index 843fc877d..6fd50870b 100644 --- a/doc/user_guide/en/tutorial-example1.adoc +++ b/doc/user_guide/en/tutorial-example1.adoc @@ -16,10 +16,10 @@ image::main-ui.png[align="center",alt="Main UI and Wide Graph"] Decoding takes place at the end of a receive sequence and proceeds in two steps. The first decode is done at the selected Rx frequency, -indicated by the U-shaped green marker on the waterfall scale. -Results appear in both the left (*Band Activity*) and right (*Rx -Frequency*) text windows on the main screen. The program then finds -and decodes all signals in the selected mode over the displayed +indicated by the U-shaped green marker on the waterfall frequency +scale. Results appear in both the left (*Band Activity*) and right +(*Rx Frequency*) text windows on the main screen. The program then +finds and decodes all signals in the selected mode over the displayed frequency range. The red marker on the waterfall scale indicates your Tx frequency. @@ -51,8 +51,8 @@ Call* and *DX Grid* entry fields. ** The *Tx even* box is checked or cleared appropriately, so that you will transmit in the proper (odd or even) minutes. -** The Rx and Tx frequency markers are moved to the frequency of the -CQing station. +** The Rx frequency marker is moved to the frequency of the CQing +station. ** The *Gen Msg* ("`generated message`") radio button at bottom right of the main window is selected. @@ -61,23 +61,23 @@ of the main window is selected. *Setup* menu, *Enable Tx* would be activated and a transmission would start automatically at the proper time. -- Double-click on the decoded message `K1JT N5KDV EM41`, -highlighted in red. Results will be similar to those in the -previous step, except the Tx frequency (red marker) is not -moved. Such messages are usually in response to your own CQ, or from -a tail-ender, and you probably want your Tx frequency to stay where it -was. +** You can modify the double-click behavior by holding down the +*Shift* key to move only the Tx frequency or the *Ctrl* key to move +both Rx and Tx frequencies. -- By holding down the *Ctrl* key when double-clicking on a decoded -line you can cause both Tx and Rx frequencies to be moved. This -behavior can also be forced by checking *Lock Tx=Rx*. +- Double-click on the decoded message `K1JT N5KDV EM41`, highlighted +in red. Results will be similar to those in the previous step. The Tx +frequency (red marker) is not moved unless *Shift* or *Ctrl* is held +down. Messages highlighted in red are usually in response to your own +CQ or from a tail-ender, and you probably want your Tx frequency to +stay where it was. -- Double-click on the message from KF4RWA in either window. He is -sending `73` to K1JT, signifying that the QSO is over. Most likely -you want to send 73 to him, so the message `KF4RWA K1JT 73` is -automatically generated and selected for your next transmission. -(Alternatively, you might choose to send a free-text message or to -call CQ again.) +NOTE: Double-clicking on decoded messages can be defaulted to simplex +operation by checking *Double click on call sets Tx and Rx freqs* on +the *Settings -> General* tab. + +NOTE: You can prevent your Tx frequency from being changed by checking the +box *Lock Tx Freq*. - Click somewhere on the waterfall to set Rx frequency (green marker on waterfall scale). diff --git a/doc/user_guide/en/tutorial-example2.adoc b/doc/user_guide/en/tutorial-example2.adoc index 8a285fd9b..e7aa3aeee 100644 --- a/doc/user_guide/en/tutorial-example2.adoc +++ b/doc/user_guide/en/tutorial-example2.adoc @@ -1,7 +1,7 @@ // Status=review .Main Window: - Select *JT9+JT65* on the *Mode* menu. -- Toggle the *Tx mode* button to read *Tx JT65*, and set the Tx and Rx +- Toggle the *Tx mode* button to read *Tx JT65 #*, and set the Tx and Rx frequencies to 1718 Hz. - Double-click on *Erase* to clear both text windows. @@ -75,18 +75,21 @@ JT9 message from IZ0MIT: [width="80%",align="center",cols="^10,2*^8,2*^10,54",options="header"] |=== |UTC|dB|DT|Freq|Mode|Message -|+2343+|+-7+|+0.3+|+3196+|+@+|+WB8QPG IZ0MIT -11+ +|+2343+|+-8+|+0.3+|+3196+|+@+|+WB8QPG IZ0MIT -11+ |=== - Scroll back in the *Band Activity* window and double-click on the -message `CQ DL7ACA JO40`. The program will set *Tx mode* to JT65 and Tx -and Rx frequencies to that of DL7ACA, 975 Hz. If you had checked -*Double-click on call sets Tx Enable* on the *Setup* menu, the program -would configure itself to start a QSO with DL7ACA. +message `CQ DL7ACA JO40`. The program will set *Tx mode* to JT65 and +the Rx frequency to that of DL7ACA, 975 Hz. If you hold down the +*Ctrl* key, both Rx and Tx frequencies will be moved. If you had +checked *Double-click on call sets Tx Enable* on the *Setup* menu, the +program would configure itself to begin a transmission and start a QSO +with DL7ACA. -- Double-click on the decoded JT65 message `CQ TA4A KM37`. The program -will set Tx mode to JT9 and the Rx and Tx frequencies to 3567 Hz. The -program is now configured properly for a JT9 QSO with TA4A. +- Hold *Ctrl* down and double-click on the decoded JT65 message `CQ +TA4A KM37`. The program will set Tx mode to JT9 and the Rx and Tx +frequencies to 3567 Hz. The program is now configured properly for a +JT9 QSO with TA4A. .Reopen the First Sample File: - Select *File | Open* and navigate to `...\save\samples\130418_1742.wav`. diff --git a/doc/user_guide/en/tutorial-example3.adoc b/doc/user_guide/en/tutorial-example3.adoc index f32ae3aa3..ef576e862 100644 --- a/doc/user_guide/en/tutorial-example3.adoc +++ b/doc/user_guide/en/tutorial-example3.adoc @@ -25,34 +25,36 @@ image::ft8_decodes.png[align="left"] frequency marker will jump to your selected frequency, and the Rx frequency control on the main window will be updated accordingly. -- Do the same thing with the Shift key held down. Now the red Tx +- Do the same thing with the *Shift* key held down. Now the red Tx frequency marker and its associated control on the main window will follow your frequency selections. -- Do the same thing with the Ctrl key held down. Now the both colored +- Do the same thing with the *Ctrl* key held down. Now the both colored markers and both spinner controls will follow your selections. - Double-clicking at any frequency on the waterfall does all the things just described and also invokes the decoder in a small range -around that frequency. To decode a particular signal, double-click +around the Rx frequency. To decode a particular signal, double-click near the left edge of its waterfall trace. - Now double-click on any of the the lines of decoded text in the main -window. Unless you have *My Call* set to K1JT or KY7M on the -*Settings -> General* tab, all three lines will show the same -behavior, setting both RxFreq and TxFreq to the frequency of the -selected message. However, if MyCall is set to K1JT then clicking on -a message directed to K1JT will move only the Rx frequency setting. -This behavior is desirable so that you will not inadvertently change -your Tx frequency to that of a tail-ender who called you somewhere -else in the FT8 subband. +window. All three lines will show the same behavior, setting Rx +frequency to that of the selected message and leaving Tx frequency +unchanged. To change both Rx and Tx frequencies, hold *Ctrl* down +when double-clicking. + +NOTE: To avoid QRM from competing callers, it is frequently desirable +to answer a CQ on a different frequency from that of the CQing +station. Choose a Tx frequency that appears to be not in use. The +same is true when you tail-end another QSO. NOTE: The FT8 decoder can often copy several overlapping signals at -nearly the same frequency. However, in crowded band conditions you -will often find it advantageous to move off the frequency of the -station you are calling. Keyboard shortcuts *Shift+F11* and -*Shift+F12* provide an easy way to move your Tx frequency in 60 Hz -steps. +nearly the same frequency. Keyboard shortcuts *Shift+F11* and +*Shift+F12* provide an easy way to move your Tx frequency down or up +in 60 Hz steps. + +NOTE: Further helpful tips on FT8 operating procedures are available +{ft8_tips}. Thanks to ZL2IFB! IMPORTANT: When finished with this Tutorial, don't forget to re-enter your own callsign as *My Call* on the *Settings | General* tab. diff --git a/doc/user_guide/en/tutorial-wide-graph-settings.adoc b/doc/user_guide/en/tutorial-wide-graph-settings.adoc index 164fa013f..cdef3f1e1 100644 --- a/doc/user_guide/en/tutorial-wide-graph-settings.adoc +++ b/doc/user_guide/en/tutorial-wide-graph-settings.adoc @@ -9,5 +9,5 @@ - *Gain* and *Zero* sliders for waterfall and spectrum set near midscale - *Spec* = 25% -- Use the mouse to adjust the width of the *Wide Graph* so that its -upper frequency limit is about 2400 Hz. +- Use the mouse to grab the left or right edge of the *Wide Graph*, and +adjust its width so that the upper frequency limit is about 2400 Hz. diff --git a/doc/user_guide/en/wsjtx-main.adoc b/doc/user_guide/en/wsjtx-main.adoc index b19612261..71f0e3c4a 100644 --- a/doc/user_guide/en/wsjtx-main.adoc +++ b/doc/user_guide/en/wsjtx-main.adoc @@ -1,5 +1,5 @@ // This is a comment line, anything with // is ignored at process time. -= WSJT-X User Guide += _WSJT-X_ User Guide Joseph H Taylor, Jr, K1JT :revnumber: {VERSION} // For web-pages, adding :badges: is ok, but is a security issue for diff --git a/lib/DXped_pseudo_code.txt b/lib/DXped_pseudo_code.txt index a0469a1f4..081bfda7e 100644 --- a/lib/DXped_pseudo_code.txt +++ b/lib/DXped_pseudo_code.txt @@ -1,7 +1,7 @@ Auto-Sequencing algorithm for DXpedition station: Start: - CQMsg = "CQ VK9MA" (or "CQ UP VK9MA", "CQ 116 VK9MA", etc.) + CQMsg = "CQ KH1DX" (or "CQ UP KH1DX", "CQ 116 KH1DX", etc.) TxMsg = CQMsg Ntry = 0 QCALL = "" # Callsign of current QSO partner @@ -16,7 +16,7 @@ Receive: N = number of decodes # RxMsg[i], i=1,N if(N == 0) go to Transmit - J = index of a reply from current QCALL # RxMsg[J] = "VK9MA QCALL R" + J = index of a reply from current QCALL # RxMsg[J] = "KH1DX QCALL R" if(QCALL == "") # No QSO in progress Select new QCALL # Op chooses a caller @@ -48,7 +48,7 @@ Receive: Auto-Sequencing algorithm for those calling the DXpedition: Start: - TxMsg = "VK9MA MyCall" + TxMsg = "KH1DX MyCall" InQSO = false Transmit: @@ -59,13 +59,13 @@ Receive: RX # (... takes ~14 s) if(RxMsg[i] contains "MyCall ") InQSO = true - TxMsg = "VK9MA MyCall R" + TxMsg = "KH1DX MyCall R" go to Transmit if(RxMsg[i] contains "") TxEnable = false go to Receive - if(RxMsg[i] contains "CQ VK9MA") + if(RxMsg[i] contains "CQ KH1DX") TxEnable = true go to Transmit diff --git a/lib/allsim.f90 b/lib/allsim.f90 index 591a584d6..2d948b64f 100644 --- a/lib/allsim.f90 +++ b/lib/allsim.f90 @@ -60,7 +60,8 @@ program allsim call gen4(message,0,msgsent,itone,itype) call addit(itone,11025,206,2520,1200,sig,dat) !JT4 - call genft8(message,mygrid,bcontest,msgsent,msgbits,itone) + i3bit=0 ! ### TEMPORARY ??? ### + call genft8(message,mygrid,bcontest,i3bit,msgsent,msgbits,itone) call addit(itone,12000,79,1920,1400,sig,dat) !FT8 call genqra64(message,0,msgsent,itone,itype) diff --git a/lib/calibrate.f90 b/lib/calibrate.f90 new file mode 100644 index 000000000..a27c400a0 --- /dev/null +++ b/lib/calibrate.f90 @@ -0,0 +1,96 @@ +subroutine calibrate(data_dir,iz,a,b,rms,sigmaa,sigmab,irc) + +! Average groups of frequency-calibration measurements, then fit a +! straight line for slope and intercept. + + parameter (NZ=1000) + implicit real*8 (a-h,o-z) + character*(*) data_dir + character*256 infile,outfile + character*8 cutc,cutc1 + character*1 c1 + real*8 fd(NZ),deltaf(NZ),r(NZ),rmsd(NZ) + integer nn(NZ) + + infile=trim(data_dir)//'fmt.all' + outfile=trim(data_dir)//'fcal2.out' + + open(10,file=trim(infile),status='old',err=996) + open(12,file=trim(outfile),status='unknown',err=997) + + nkhz0=0 + sum=0.d0 + sumsq=0.d0 + n=0 + j=0 + do i=1,99999 + read(10,*,end=10,err=995) cutc,nkHz,ncal,noffset,faudio,df,dblevel,snr + if((nkHz.ne.nkHz0) .and. i.ne.1) then + ave=sum/n + rms=0.d0 + if(n.gt.1) then + rms=sqrt(abs(sumsq - sum*sum/n)/(n-1.d0)) + endif + fMHz=0.001d0*nkHz0 + j=j+1 + fd(j)=fMHz + deltaf(j)=ave + r(j)=0.d0 + rmsd(j)=rms + nn(j)=n + sum=0.d0 + sumsq=0.d0 + n=0 + endif + dial_error=faudio-noffset + sum=sum + dial_error + sumsq=sumsq + dial_error**2 + n=n+1 + if(n.eq.1) then + cutc1=cutc + ncal0=ncal + endif + nkHz0=nkHz + enddo + +10 ave=sum/n + rms=0.d0 + if(n.gt.0) then + rms=sqrt((sumsq - sum*sum/n)/(n-1.d0)) + endif + fMHz=0.001d0*nkHz + j=j+1 + fd(j)=fMHz + deltaf(j)=ave + r(j)=0.d0 + rmsd(j)=rms + nn(j)=n + iz=j + if(iz.lt.2) go to 998 + + call fitcal(fd,deltaf,r,iz,a,b,sigmaa,sigmab,rms) + + write(12,1002) +1002 format(' Freq DF Meas Freq N rms Resid'/ & + ' (MHz) (Hz) (MHz) (Hz) (Hz)'/ & + '----------------------------------------------------') + irc=0 + do i=1,iz + fm=fd(i) + 1.d-6*deltaf(i) + c1=' ' + if(rmsd(i).gt.1.0d0) c1='*' + write(12,1012) fd(i),deltaf(i),fm,nn(i),rmsd(i),r(i),c1 +1012 format(f8.3,f9.3,f14.9,i4,f7.2,f9.3,1x,a1) + enddo + go to 999 + +995 irc=-4; iz=i; go to 999 +996 irc=-1; go to 999 +997 irc=-2; go to 999 +998 irc=-3 +999 continue + close(10) + close(12) + + return +end subroutine calibrate diff --git a/lib/fitcal.f90 b/lib/fitcal.f90 new file mode 100644 index 000000000..f85ccf457 --- /dev/null +++ b/lib/fitcal.f90 @@ -0,0 +1,34 @@ +subroutine fitcal(x,y,r,iz,a,b,sigmaa,sigmab,rms) + implicit real*8 (a-h,o-z) + real*8 x(iz),y(iz),r(iz) + + sx=0.d0 + sy=0.d0 + sxy=0.d0 + sx2=0.d0 + do i=1,iz + sx=sx + x(i) + sy=sy + y(i) + sxy=sxy + x(i)*y(i) + sx2=sx2 + x(i)*x(i) + enddo + delta=iz*sx2 - sx*sx + a=(sx2*sy - sx*sxy)/delta + b=(iz*sxy - sx*sy)/delta + + sq=0.d0 + do i=1,iz + r(i)=y(i) - (a + b*x(i)) + sq=sq + r(i)**2 + enddo + rms=0. + sigmaa=0. + sigmab=0. + if(iz.ge.3) then + rms=sqrt(sq/(iz-2)) + sigmaa=sqrt(rms*rms*sx2/delta) + sigmab=sqrt(iz*rms*rms/delta) + endif + + return +end subroutine fitcal diff --git a/lib/fmeasure.f90 b/lib/fmeasure.f90 index 6613f301b..40f2fa201 100644 --- a/lib/fmeasure.f90 +++ b/lib/fmeasure.f90 @@ -27,7 +27,6 @@ program fmeasure parameter(NZ=1000) implicit real*8 (a-h,o-z) - real*8 fd(NZ),deltaf(NZ),r(NZ) character infile*50 character line*80 diff --git a/lib/fsk4hf/ft8apset.f90 b/lib/fsk4hf/ft8apset.f90 index 8f34aae2f..ca5e5a6da 100644 --- a/lib/fsk4hf/ft8apset.f90 +++ b/lib/fsk4hf/ft8apset.f90 @@ -23,7 +23,8 @@ subroutine ft8apset(mycall12,mygrid6,hiscall12,hisgrid6,bcontest,apsym,iaptype) ! if(len_trim(hisgrid).eq.0) hisgrid="EN50" if(index(hisgrid," ").eq.0) hisgrid="EN50" msg=mycall//' '//hiscall//' '//hisgrid - call genft8(msg,mygrid6,bcontest,msgsent,msgbits,itone) + i3bit=0 ! ### TEMPORARY ??? ### + call genft8(msg,mygrid6,bcontest,i3bit,msgsent,msgbits,itone) apsym=2*msgbits-1 return diff --git a/lib/fsk4hf/ft8b.f90 b/lib/fsk4hf/ft8b.f90 index 6d762cecb..3049dfd43 100644 --- a/lib/fsk4hf/ft8b.f90 +++ b/lib/fsk4hf/ft8b.f90 @@ -10,16 +10,17 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, & character*6 mygrid6 logical bcontest real a(5) - real s1(0:7,ND),s2(0:7,NN) - real ps(0:7) - real bmeta(3*ND),bmetap(3*ND) - real llr(3*ND),llra(3*ND),llr0(3*ND),llrap(3*ND) !Soft symbols + real s1(0:7,ND),s2(0:7,NN),s1sort(8*ND) + real ps(0:7),psl(0:7) + real bmeta(3*ND),bmetb(3*ND),bmetap(3*ND) + real llr(3*ND),llra(3*ND),llr0(3*ND),llr1(3*ND),llrap(3*ND) !Soft symbols real dd0(15*12000) integer*1 decoded(KK),apmask(3*ND),cw(3*ND) integer*1 msgbits(KK) integer apsym(KK) integer mcq(28),mde(28),mrrr(16),m73(16),mrr73(16) integer itone(NN) + integer indxs1(8*ND) integer icos7(0:6),ip(1) integer nappasses(0:5) ! the number of decoding passes to use for each QSO state integer naptypes(0:5,4) ! (nQSOProgress, decoding pass) maximum of 4 passes for now @@ -27,6 +28,7 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, & complex ctwk(32) complex csymb(32) logical first,newdat,lsubtract,lapon,nagain + equivalence (s1,s1sort) data icos7/2,5,6,0,4,1,3/ data mcq/1,1,1,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1/ data mrrr/0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,1/ @@ -153,10 +155,15 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, & s1(0:7,j)=s2(0:7,k) enddo + call indexx(s1sort,8*ND,indxs1) + xmeds1=s1sort(indxs1(nint(0.5*8*ND))) + s1=s1/xmeds1 + do j=1,ND i4=3*j-2 i2=3*j-1 i1=3*j +! Max amplitude ps=s1(0:7,j) r1=max(ps(1),ps(3),ps(5),ps(7))-max(ps(0),ps(2),ps(4),ps(6)) r2=max(ps(2),ps(3),ps(6),ps(7))-max(ps(0),ps(1),ps(4),ps(5)) @@ -167,6 +174,35 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, & bmetap(i4)=r4 bmetap(i2)=r2 bmetap(i1)=r1 +! Max log metric + psl=log(ps) + r1=max(psl(1),psl(3),psl(5),psl(7))-max(psl(0),psl(2),psl(4),psl(6)) + r2=max(psl(2),psl(3),psl(6),psl(7))-max(psl(0),psl(1),psl(4),psl(5)) + r4=max(psl(4),psl(5),psl(6),psl(7))-max(psl(0),psl(1),psl(2),psl(3)) + bmetb(i4)=r4 + bmetb(i2)=r2 + bmetb(i1)=r1 + +! Metric for Cauchy noise +! r1=log(ps(1)**3+ps(3)**3+ps(5)**3+ps(7)**3)- & +! log(ps(0)**3+ps(2)**3+ps(4)**3+ps(6)**3) +! r2=log(ps(2)**3+ps(3)**3+ps(6)**3+ps(7)**3)- & +! log(ps(0)**3+ps(1)**3+ps(4)**3+ps(5)**3) +! r4=log(ps(4)**3+ps(5)**3+ps(6)**3+ps(7)**3)- & +! log(ps(0)**3+ps(1)**3+ps(2)**3+ps(3)**3) +! Metric for AWGN, no fading +! bscale=2.5 +! b0=bessi0(bscale*ps(0)) +! b1=bessi0(bscale*ps(1)) +! b2=bessi0(bscale*ps(2)) +! b3=bessi0(bscale*ps(3)) +! b4=bessi0(bscale*ps(4)) +! b5=bessi0(bscale*ps(5)) +! b6=bessi0(bscale*ps(6)) +! b7=bessi0(bscale*ps(7)) +! r1=log(b1+b3+b5+b7)-log(b0+b2+b4+b6) +! r2=log(b2+b3+b6+b7)-log(b0+b1+b4+b5) +! r4=log(b4+b5+b6+b7)-log(b0+b1+b2+b3) if(nQSOProgress .eq. 0 .or. nQSOProgress .eq. 5) then ! When bits 88:115 are set as ap bits, bit 115 lives in symbol 39 along @@ -209,12 +245,14 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, & enddo call normalizebmet(bmeta,3*ND) + call normalizebmet(bmetb,3*ND) call normalizebmet(bmetap,3*ND) - ss=0.84 - llr0=2.0*bmeta/(ss*ss) - llra=2.0*bmetap/(ss*ss) ! llr's for use with ap - apmag=4.0 + scalefac=2.83 + llr0=scalefac*bmeta + llr1=scalefac*bmetb + llra=scalefac*bmetap ! llr's for use with ap + apmag=scalefac*(maxval(abs(bmetap))*1.01) ! pass # !------------------------------ @@ -227,35 +265,36 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, & ! 7 ap pass 4, etc. if(lapon) then - npasses=3+nappasses(nQSOProgress) + npasses=4+nappasses(nQSOProgress) else - npasses=3 + npasses=4 endif do ipass=1,npasses llr=llr0 - if(ipass.eq.2) llr(1:24)=0. - if(ipass.eq.3) llr(1:48)=0. - if(ipass.le.3) then + if(ipass.eq.2) llr=llr1 + if(ipass.eq.3) llr(1:24)=0. + if(ipass.eq.4) llr(1:48)=0. + if(ipass.le.4) then apmask=0 llrap=llr iaptype=0 endif - if(ipass .gt. 3) then - iaptype=naptypes(nQSOProgress,ipass-3) + if(ipass .gt. 4) then + iaptype=naptypes(nQSOProgress,ipass-4) if(iaptype.ge.3 .and. (abs(f1-nfqso).gt.napwid .and. abs(f1-nftx).gt.napwid) ) cycle if(iaptype.eq.1 .or. iaptype.eq.2 ) then ! AP,???,??? apmask=0 apmask(88:115)=1 ! first 28 bits are AP apmask(144)=1 ! not free text llrap=llr - if(iaptype.eq.1) llrap(88:115)=apmag*mcq/ss - if(iaptype.eq.2) llrap(88:115)=apmag*apsym(1:28)/ss + if(iaptype.eq.1) llrap(88:115)=apmag*mcq + if(iaptype.eq.2) llrap(88:115)=apmag*apsym(1:28) llrap(116:117)=llra(116:117) llrap(142:143)=llra(142:143) - llrap(144)=-apmag/ss + llrap(144)=-apmag endif if(iaptype.eq.3) then ! mycall, dxcall, ??? apmask=0 @@ -263,8 +302,8 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, & apmask(116:143)=1 ! hiscall apmask(144)=1 ! not free text llrap=llr - llrap(88:143)=apmag*apsym(1:56)/ss - llrap(144)=-apmag/ss + llrap(88:143)=apmag*apsym(1:56) + llrap(144)=-apmag endif if(iaptype.eq.4 .or. iaptype.eq.5 .or. iaptype.eq.6) then apmask=0 @@ -272,10 +311,10 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, & apmask(116:143)=1 ! hiscall apmask(144:159)=1 ! RRR or 73 or RR73 llrap=llr - llrap(88:143)=apmag*apsym(1:56)/ss - if(iaptype.eq.4) llrap(144:159)=apmag*mrrr/ss - if(iaptype.eq.5) llrap(144:159)=apmag*m73/ss - if(iaptype.eq.6) llrap(144:159)=apmag*mrr73/ss + llrap(88:143)=apmag*apsym(1:56) + if(iaptype.eq.4) llrap(144:159)=apmag*mrrr + if(iaptype.eq.5) llrap(144:159)=apmag*m73 + if(iaptype.eq.6) llrap(144:159)=apmag*mrr73 endif if(iaptype.eq.7) then ! ???, dxcall, ??? apmask=0 @@ -283,8 +322,8 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, & apmask(144)=1 ! not free text llrap=llr llrap(115)=llra(115) - llrap(116:143)=apmag*apsym(29:56)/ss - llrap(144)=-apmag/ss + llrap(116:143)=apmag*apsym(29:56) + llrap(144)=-apmag endif endif @@ -297,7 +336,7 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, & if(ndepth.eq.3 .and. nharderrors.lt.0) then ndeep=3 if(abs(nfqso-f1).le.napwid .or. abs(nftx-f1).le.napwid) then - if((ipass.eq.2 .or. ipass.eq.3) .and. .not.nagain) then + if((ipass.eq.3 .or. ipass.eq.4) .and. .not.nagain) then ndeep=3 else ndeep=4 @@ -312,20 +351,28 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,napwid, & message=' ' xsnr=-99.0 if(count(cw.eq.0).eq.174) cycle !Reject the all-zero codeword - if(any(decoded(73:75).ne.0)) cycle !Reject if any of the 3 extra bits are nonzero +!### if(any(decoded(73:75).ne.0)) cycle !Reject if any of the 3 extra bits is nonzero if(nharderrors.ge.0 .and. nharderrors+dmin.lt.60.0 .and. & .not.(sync.lt.2.0 .and. nharderrors.gt.35) .and. & - .not.(ipass.gt.1 .and. nharderrors.gt.39) .and. & - .not.(ipass.eq.3 .and. nharderrors.gt.30) & + .not.(ipass.gt.2 .and. nharderrors.gt.39) .and. & + .not.(ipass.eq.4 .and. nharderrors.gt.30) & ) then call chkcrc12a(decoded,nbadcrc) else nharderrors=-1 cycle endif +!### + i3bit=4*decoded(73) + 2*decoded(74) + decoded(75) + iFreeText=decoded(57) +! if(nbadcrc.eq.0) write(*,3001) nharderrors,nbadcrc,i3bit +!3001 format('A',3i5) +!### if(nbadcrc.eq.0) then call extractmessage174(decoded,message,ncrcflag,recent_calls,nrecent) - call genft8(message,mygrid6,bcontest,msgsent,msgbits,itone) + call genft8(message,mygrid6,bcontest,i3bit,msgsent,msgbits,itone) + if(i3bit.eq.1 .and. iFreeText.eq.0) message(21:21)='1' + if(i3bit.eq.2 .and. iFreeText.eq.0) message(21:21)='2' if(lsubtract) call subtractft8(dd0,itone,f1,xdt2) xsig=0.0 xnoi=0.0 @@ -363,3 +410,28 @@ subroutine normalizebmet(bmet,n) bmet=bmet/bmetsig return end subroutine normalizebmet + + +function bessi0(x) +! From Numerical Recipes + real bessi0,x + double precision p1,p2,p3,p4,p5,p6,p7,q1,q2,q3,q4,q5,q6,q7,q8,q9,y + save p1,p2,p3,p4,p5,p6,p7,q1,q2,q3,q4,q5,q6,q7,q8,q9 + data p1,p2,p3,p4,p5,p6,p7/1.0d0,3.5156229d0,3.0899424d0,1.2067492d0, & + 0.2659732d0,0.360768d-1,0.45813d-2/ + data q1,q2,q3,q4,q5,q6,q7,q8,q9/0.39894228d0,0.1328592d-1, & + 0.225319d-2,-0.157565d-2,0.916281d-2,-0.2057706d-1, & + 0.2635537d-1,-0.1647633d-1,0.392377d-2/ + + if (abs(x).lt.3.75) then + y=(x/3.75)**2 + bessi0=p1+y*(p2+y*(p3+y*(p4+y*(p5+y*(p6+y*p7))))) + else + ax=abs(x) + y=3.75/ax + bessi0=(exp(ax)/sqrt(ax))*(q1+y*(q2+y*(q3+y*(q4 & + +y*(q5+y*(q6+y*(q7+y*(q8+y*q9)))))))) + endif + return +end function bessi0 + diff --git a/lib/fsk4hf/ft8sim.f90 b/lib/fsk4hf/ft8sim.f90 index 2801717d4..70d67a812 100644 --- a/lib/fsk4hf/ft8sim.f90 +++ b/lib/fsk4hf/ft8sim.f90 @@ -65,9 +65,10 @@ program ft8sim sig=sqrt(2*bandwidth_ratio) * 10.0**(0.05*snrdb) if(snrdb.gt.90.0) sig=1.0 txt=NN*NSPS/12000.0 + i3bit=0 ! ### TEMPORARY ??? ### ! Source-encode, then get itone() - call genft8(msg,mygrid6,bcontest,msgsent,msgbits,itone) + call genft8(msg,mygrid6,bcontest,i3bit,msgsent,msgbits,itone) write(*,1000) f0,xdt,txt,snrdb,bw,msgsent 1000 format('f0:',f9.3,' DT:',f6.2,' TxT:',f6.1,' SNR:',f6.1, & ' BW:',f4.1,2x,a22) diff --git a/lib/fsk4hf/genft8.f90 b/lib/fsk4hf/genft8.f90 index 1b1352ea6..899dad3ef 100644 --- a/lib/fsk4hf/genft8.f90 +++ b/lib/fsk4hf/genft8.f90 @@ -1,4 +1,4 @@ -subroutine genft8(msg,mygrid,bcontest,msgsent,msgbits,itone) +subroutine genft8(msg,mygrid,bcontest,i3bit,msgsent,msgbits,itone) ! Encode an FT8 message, producing array itone(). @@ -19,7 +19,6 @@ subroutine genft8(msg,mygrid,bcontest,msgsent,msgbits,itone) call packmsg(msg,i4Msg6BitWords,itype,bcontest) !Pack into 12 6-bit bytes call unpackmsg(i4Msg6BitWords,msgsent,bcontest,mygrid) !Unpack to get msgsent - i3bit=0 !### temporary ### write(cbits,1000) i4Msg6BitWords,32*i3bit 1000 format(12b6.6,b8.8) read(cbits,1001) i1Msg8BitBytes(1:10) diff --git a/lib/fsk4hf/sync8.f90 b/lib/fsk4hf/sync8.f90 index a13297318..30f6de172 100644 --- a/lib/fsk4hf/sync8.f90 +++ b/lib/fsk4hf/sync8.f90 @@ -1,8 +1,8 @@ subroutine sync8(dd,nfa,nfb,syncmin,nfqso,s,candidate,ncand,sbase) include 'ft8_params.f90' -! Search over +/- 1.5s relative to 0.5s TX start time. - parameter (JZ=38) +! Search over +/- 2.5s relative to 0.5s TX start time. + parameter (JZ=62) complex cx(0:NH1) real s(NH1,NHSYM) real savg(NH1) @@ -138,7 +138,8 @@ subroutine sync8(dd,nfa,nfb,syncmin,nfqso,s,candidate,ncand,sbase) ! do i=ncand,1,-1 do i=1,ncand j=indx(i) - if( candidate0(3,j) .ge. syncmin .and. candidate0(2,j).ge.-1.5 ) then +! if( candidate0(3,j) .ge. syncmin .and. candidate0(2,j).ge.-1.5 ) then + if( candidate0(3,j) .ge. syncmin ) then candidate(1,k)=abs(candidate0(1,j)) candidate(2,k)=candidate0(2,j) candidate(3,k)=candidate0(3,j) diff --git a/lib/jt9.f90 b/lib/jt9.f90 index 469a07a1e..104612097 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -161,8 +161,6 @@ program jt9 ! Import FFTW wisdom, if available wisfile=trim(data_dir)//'/jt9_wisdom.dat'// C_NULL_CHAR iret=fftwf_import_wisdom_from_filename(wisfile) - open(19,file=trim(data_dir)//'/false_decodes.txt',status='unknown', & - position='append') ntry65a=0 ntry65b=0 diff --git a/lib/msk144signalquality.f90 b/lib/msk144signalquality.f90 index 4a84bd069..24a146c63 100644 --- a/lib/msk144signalquality.f90 +++ b/lib/msk144signalquality.f90 @@ -66,7 +66,7 @@ subroutine msk144signalquality(cframe,snr,freq,t0,softbits,msg,dxcall, & currently_training=.false. training_dxcall(1:12)=' ' trained_dxcall(1:12)=' ' -write(*,*) 'reset to untrained state ' +!write(*,*) 'reset to untrained state ' endif indx_dxcall=index(msg,trim(dxcall)) @@ -76,7 +76,7 @@ write(*,*) 'reset to untrained state ' currently_training=.true. training_dxcall=trim(dxcall) trained_dxcall(1:12)=' ' -write(*,*) 'start training on call ',training_dxcall +!write(*,*) 'start training on call ',training_dxcall endif if( msg_has_dxcall .and. currently_training ) then @@ -188,7 +188,7 @@ write(*,*) 'start training on call ',training_dxcall call polyfit(x,y,sigmay,npts,nterms,mode,a,chisqr) pp=a(1)+x*(a(2)+x*(a(3)+x*(a(4)+x*a(5)))) rmsdiff=sum( (pp-phase((864/2-nm/2):(864/2+nm/2)))**2 )/145.0 -write(*,*) 'training ',navg,sqrt(chisqr),rmsdiff +!write(*,*) 'training ',navg,sqrt(chisqr),rmsdiff if( (sqrt(chisqr).lt.1.8) .and. (rmsdiff.lt.0.5) .and. (navg.ge.5) ) then trained_dxcall=dxcall call date_and_time(date,time,zone,values) @@ -198,7 +198,7 @@ write(*,*) 'training ',navg,sqrt(chisqr),rmsdiff l1=index(datadir,char(0))-1 datadir(l1+1:l1+1)="/" pcoeff_filename=datadir(1:l1+1)//trim(pcoeff_filename) -write(*,*) 'trained - writing coefficients to: ',pcoeff_filename +!write(*,*) 'trained - writing coefficients to: ',pcoeff_filename open(17,file=pcoeff_filename,status='new') write(17,'(i4,2f10.2,3i5,5e25.16)') navg,sqrt(chisqr),rmsdiff,NFREQLOW,NFREQHIGH,nterms,a do i=1, 145 diff --git a/lib/packjt.f90 b/lib/packjt.f90 index f732f9806..95ff5981b 100644 --- a/lib/packjt.f90 +++ b/lib/packjt.f90 @@ -506,8 +506,8 @@ subroutine packbits(dbits,nsymd,m0,sym) 20 continue if(itype.ne.6) itype=max(nv2a,nv2b) jt_itype=itype - jt_c1=c1 - jt_c2=c2 + jt_c1=c1(1:6) + jt_c2=c2(1:6) jt_c3=c3 jt_k1=k1 jt_k2=k2 diff --git a/lib/stdmsg.f90 b/lib/stdmsg.f90 index 86666c8f2..599287bb6 100644 --- a/lib/stdmsg.f90 +++ b/lib/stdmsg.f90 @@ -1,16 +1,21 @@ function stdmsg(msg0,bcontest,mygrid) + ! Is msg0 a standard "JT-style" message? + use iso_c_binding, only: c_bool use packjt - character*22 msg0,msg + character*22 msg0,msg1,msg character*6 mygrid integer dat(12) logical(c_bool), value :: bcontest logical(c_bool) :: stdmsg + msg1=msg0 + i0=index(msg1,' OOO ') + if(i0.gt.10) msg1=msg0(1:i0) call packmsg(msg0,dat,itype,logical(bcontest)) call unpackmsg(dat,msg,logical(bcontest),mygrid) - stdmsg=(msg.eq.msg0) .and. (itype.ge.0) .and. itype.ne.6 + stdmsg=(msg.eq.msg1) .and. (itype.ge.0) .and. itype.ne.6 return end function stdmsg diff --git a/logbook/adif.cpp b/logbook/adif.cpp index 25790d5b4..fc1fdbebe 100644 --- a/logbook/adif.cpp +++ b/logbook/adif.cpp @@ -18,17 +18,17 @@ void ADIF::init(QString const& filename) } -QString ADIF::_extractField(QString const& line, QString const& fieldName) const +QString ADIF::extractField(QString const& record, QString const& fieldName) const { - int fieldNameIndex = line.indexOf(fieldName,0,Qt::CaseInsensitive); + int fieldNameIndex = record.indexOf (fieldName + ':', 0, Qt::CaseInsensitive); if (fieldNameIndex >=0) { - int closingBracketIndex = line.indexOf('>',fieldNameIndex); - int fieldLengthIndex = line.indexOf(':',fieldNameIndex); // find the size delimiter + int closingBracketIndex = record.indexOf('>',fieldNameIndex); + int fieldLengthIndex = record.indexOf(':',fieldNameIndex); // find the size delimiter int dataTypeIndex = -1; if (fieldLengthIndex >= 0) { - dataTypeIndex = line.indexOf(':',fieldLengthIndex+1); // check for a second : indicating there is a data type + dataTypeIndex = record.indexOf(':',fieldLengthIndex+1); // check for a second : indicating there is a data type if (dataTypeIndex > closingBracketIndex) dataTypeIndex = -1; // second : was found but it was beyond the closing > } @@ -38,11 +38,11 @@ QString ADIF::_extractField(QString const& line, QString const& fieldName) const int fieldLengthCharCount = closingBracketIndex - fieldLengthIndex -1; if (dataTypeIndex >= 0) fieldLengthCharCount -= 2; // data type indicator is always a colon followed by a single character - QString fieldLengthString = line.mid(fieldLengthIndex+1,fieldLengthCharCount); + QString fieldLengthString = record.mid(fieldLengthIndex+1,fieldLengthCharCount); int fieldLength = fieldLengthString.toInt(); if (fieldLength > 0) { - QString field = line.mid(closingBracketIndex+1,fieldLength); + QString field = record.mid(closingBracketIndex+1,fieldLength); return field; } } @@ -59,29 +59,50 @@ void ADIF::load() if (inputFile.open(QIODevice::ReadOnly)) { QTextStream in(&inputFile); - QString record; + QString buffer; + bool pre_read {false}; + int end_position {-1}; - // skip header record - while (!in.atEnd () && !record.contains ("", Qt::CaseInsensitive)) + // skip optional header record + do { - record += in.readLine (); - } - while ( !in.atEnd() ) - { - record.clear (); - while (!in.atEnd () && !record.contains ("", Qt::CaseInsensitive)) + buffer += in.readLine () + '\n'; + if (buffer.startsWith (QChar {'<'})) // denotes no header { - record += in.readLine (); + pre_read = true; + } + else + { + end_position = buffer.indexOf ("", 0, Qt::CaseInsensitive); } - QSO q; - q.call = _extractField(record,"CALL:"); - q.band = _extractField(record,"BAND:"); - q.mode = _extractField(record,"MODE:"); - q.date = _extractField(record,"QSO_DATE:"); - if (q.call != "") - _data.insert(q.call,q); } - inputFile.close(); + while (!in.atEnd () && !pre_read && end_position < 0); + if (!pre_read) // found header + { + buffer.remove (0, end_position + 5); + } + while (buffer.size () || !in.atEnd ()) + { + do + { + end_position = buffer.indexOf ("", 0, Qt::CaseInsensitive); + if (!in.atEnd () && end_position < 0) + { + buffer += in.readLine () + '\n'; + } + } + while (!in.atEnd () && end_position < 0); + int record_length {end_position >= 0 ? end_position + 5 : -1}; + auto record = buffer.left (record_length).trimmed (); + auto next_record = buffer.indexOf (QChar {'<'}, record_length); + buffer.remove (0, next_record >=0 ? next_record : buffer.size ()); + record = record.mid (record.indexOf (QChar {'<'})); + add (extractField (record, "CALL") + , extractField (record, "BAND") + , extractField (record, "MODE") + , extractField (record, "QSO_DATE")); + } + inputFile.close (); } } @@ -93,8 +114,11 @@ void ADIF::add(QString const& call, QString const& band, QString const& mode, QS q.band = band; q.mode = mode; q.date = date; - _data.insert(q.call,q); - //qDebug() << "Added as worked:" << call << band << mode << date; + if (q.call.size ()) + { + _data.insert(q.call,q); + // qDebug() << "Added as worked:" << call << band << mode << date; + } } // return true if in the log same band and mode (where JT65 == JT9) @@ -190,35 +214,3 @@ bool ADIF::addQSOToFile(QString const& hisCall, QString const& hisGrid, QString } return true; } - -QString ADIF::bandFromFrequency(double dialFreq) -{ - QString band=""; - if(dialFreq>0.135 and dialFreq<0.139) band="2200m"; - else if(dialFreq>0.45 and dialFreq<0.55) band="630m"; - else if(dialFreq>1.8 and dialFreq<2.0) band="160m"; - else if(dialFreq>3.5 and dialFreq<4.0) band="80m"; - else if(dialFreq>5.1 and dialFreq<5.45) band="60m"; - else if(dialFreq>7.0 and dialFreq<7.3) band="40m"; - else if(dialFreq>10.0 and dialFreq<10.15) band="30m"; - else if(dialFreq>14.0 and dialFreq<14.35) band="20m"; - else if(dialFreq>18.068 and dialFreq<18.168) band="17m"; - else if(dialFreq>21.0 and dialFreq<21.45) band="15m"; - else if(dialFreq>24.890 and dialFreq<24.990) band="12m"; - else if(dialFreq>28.0 and dialFreq<29.7) band="10m"; - else if(dialFreq>50.0 and dialFreq<54.0) band="6m"; - else if(dialFreq>70.0 and dialFreq<71.0) band="4m"; - else if(dialFreq>144.0 and dialFreq<148.0) band="2m"; - else if(dialFreq>222.0 and dialFreq<225.0) band="1.25m"; - else if(dialFreq>420.0 and dialFreq<450.0) band="70cm"; - else if(dialFreq>902.0 and dialFreq<928.0) band="33cm"; - else if(dialFreq>1240.0 and dialFreq<1300.0) band="23cm"; - else if(dialFreq>2300.0 and dialFreq<2450.0) band="13cm"; - else if(dialFreq>3300.0 and dialFreq<3500.0) band="9cm"; - else if(dialFreq>5650.0 and dialFreq<5925.0) band="6cm"; - else if(dialFreq>10000.0 and dialFreq<10500.0) band="3cm"; - else if(dialFreq>24000.0 and dialFreq<24250.0) band="1.25cm"; - else if(dialFreq>47000.0 and dialFreq<47200.0) band="6mm"; - else if(dialFreq>75500.0 and dialFreq<81000.0) band="4mm"; - return band; -} diff --git a/logbook/adif.h b/logbook/adif.h index 604a448ec..e47720551 100644 --- a/logbook/adif.h +++ b/logbook/adif.h @@ -32,8 +32,6 @@ class ADIF bool addQSOToFile(QString const& hisCall, QString const& hisGrid, QString const& mode, QString const& rptSent, QString const& rptRcvd, QDateTime const& dateTimeOn, QDateTime const& dateTimeOff, QString const& band, QString const& comments, QString const& name, QString const& strDialFreq, QString const& m_myCall, QString const& m_myGrid, QString const& m_txPower); - static QString bandFromFrequency(double dialFreq); - private: struct QSO { @@ -43,7 +41,7 @@ class ADIF QMultiHash _data; QString _filename; - QString _extractField(QString const& line, QString const& fieldName) const; + QString extractField(QString const& line, QString const& fieldName) const; }; diff --git a/logbook/countrydat.cpp b/logbook/countrydat.cpp index d0d976d69..7f3d613ba 100644 --- a/logbook/countrydat.cpp +++ b/logbook/countrydat.cpp @@ -51,7 +51,6 @@ void CountryDat::_removeBrackets(QString &line, const QString a, const QString b QStringList CountryDat::_extractPrefix(QString &line, bool &more) const { line = line.remove(" \n"); - line = line.replace("=",""); line = line.replace(" ",""); _removeBrackets(line,"(",")"); @@ -117,29 +116,38 @@ void CountryDat::load() } // return country name else "" -QString CountryDat::find(QString prefix) const +QString CountryDat::find(QString call) const { - prefix = prefix.toUpper (); - auto pf = prefix; - while (pf.size () >= 1) - { - if (_data.contains (pf)) + call = call.toUpper (); + + // check for exact match first + if (_data.contains ("=" + call)) + { + return fixup (_data.value ("=" + call), call); + } + + auto prefix = call; + while (prefix.size () >= 1) + { + if (_data.contains (prefix)) { - QString country {_data.value (pf)}; - - // - // deal with special rules that cty.dat does not cope with - // - - // KG4 2x1 and 2x3 calls that map to Gitmo are mainland US not Gitmo - if (prefix.startsWith ("KG4") && prefix.size () != 5) - { - country.replace ("Guantanamo Bay", "United States"); - } - - return country; + return fixup (_data.value (prefix), call); } - pf = pf.left (pf.size () - 1); + prefix = prefix.left (prefix.size () - 1); } return QString {}; -} +} + +QString CountryDat::fixup (QString country, QString const& call) const +{ + // + // deal with special rules that cty.dat does not cope with + // + + // KG4 2x1 and 2x3 calls that map to Gitmo are mainland US not Gitmo + if (call.startsWith ("KG4") && call.size () != 5) + { + country.replace ("Guantanamo Bay", "United States"); + } + return country; +} diff --git a/logbook/countrydat.h b/logbook/countrydat.h index 383e783f1..d04308924 100644 --- a/logbook/countrydat.h +++ b/logbook/countrydat.h @@ -26,6 +26,7 @@ private: QString _extractName(const QString line) const; void _removeBrackets(QString &line, const QString a, const QString b) const; QStringList _extractPrefix(QString &line, bool &more) const; + QString fixup (QString country, QString const& call) const; QString _filename; QStringList _countryNames; diff --git a/logqso.cpp b/logqso.cpp index c6ad3dd1f..f8657e152 100644 --- a/logqso.cpp +++ b/logqso.cpp @@ -8,14 +8,18 @@ #include "logbook/adif.h" #include "MessageBox.hpp" +#include "Configuration.hpp" +#include "Bands.hpp" #include "ui_logqso.h" #include "moc_logqso.cpp" -LogQSO::LogQSO(QString const& programTitle, QSettings * settings, QWidget *parent) +LogQSO::LogQSO(QString const& programTitle, QSettings * settings + , Configuration const * config, QWidget *parent) : QDialog(parent) , ui(new Ui::LogQSO) , m_settings (settings) + , m_config {config} { ui->setupUi(this); setWindowTitle(programTitle + " - Log QSO"); @@ -78,8 +82,7 @@ void LogQSO::initLogQSO(QString const& hisCall, QString const& hisGrid, QString m_dialFreq=dialFreq; m_myCall=myCall; m_myGrid=myGrid; - QString band= ADIF::bandFromFrequency(dialFreq / 1.e6); - ui->band->setText(band); + ui->band->setText (m_config->bands ()->find (dialFreq)); show (); } diff --git a/logqso.h b/logqso.h index 8ef0e413c..6c3eb4213 100644 --- a/logqso.h +++ b/logqso.h @@ -17,13 +17,14 @@ namespace Ui { } class QSettings; +class Configuration; class LogQSO : public QDialog { Q_OBJECT public: - explicit LogQSO(QString const& programTitle, QSettings *, QWidget *parent = 0); + explicit LogQSO(QString const& programTitle, QSettings *, Configuration const *, QWidget *parent = 0); ~LogQSO(); void initLogQSO(QString const& hisCall, QString const& hisGrid, QString mode, QString const& rptSent, QString const& rptRcvd, QDateTime const& dateTimeOn, @@ -50,6 +51,7 @@ private: QScopedPointer ui; QSettings * m_settings; + Configuration const * m_config; QString m_txPower; QString m_comments; Radio::Frequency m_dialFreq; diff --git a/mainwindow.cpp b/mainwindow.cpp index e28331ac4..e58498d14 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -76,7 +76,7 @@ extern "C" { int len1, int len2, int len3, int len4, int len5); // float s[], int* jh, char line[], char mygrid[], - void genft8_(char* msg, char* MyGrid, bool* bcontest, char* msgsent, + void genft8_(char* msg, char* MyGrid, bool* bcontest, int* i3bit, char* msgsent, char ft8msgbits[], int itone[], int len1, int len2, int len3); void gen4_(char* msg, int* ichk, char* msgsent, int itone[], @@ -129,6 +129,11 @@ extern "C" { void freqcal_(short d2[], int* k, int* nkhz,int* noffset, int* ntol, char line[], int len); + + void fix_contest_msg_(char* MyGrid, char* msg, int len1, int len2); + + void calibrate_(char data_dir[], int* iz, double* a, double* b, double* rms, + double* sigmaa, double* sigmab, int* irc, int len1); } int volatile itone[NUM_ISCAT_SYMBOLS]; //Audio tones for all Tx symbols @@ -197,7 +202,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_wideGraph (new WideGraph(m_settings)), m_echoGraph (new EchoGraph(m_settings)), m_fastGraph (new FastGraph(m_settings)), - m_logDlg (new LogQSO (program_title (), m_settings, this)), + m_logDlg (new LogQSO (program_title (), m_settings, &m_config, this)), m_lastDialFreq {0}, m_dialFreqRxWSPR {0}, m_detector {new Detector {RX_SAMPLE_RATE, NTMAX, downSampleFactor}}, @@ -252,7 +257,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_sentFirst73 {false}, m_currentMessageType {-1}, m_lastMessageType {-1}, - m_lockTxFreq {false}, + m_holdTxFreq {false}, m_bShMsgs {false}, m_bSWL {false}, m_uploading {false}, @@ -546,10 +551,10 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, txMsgButtonGroup->addButton(ui->txrb6,6); set_dateTimeQSO(-1); connect(txMsgButtonGroup,SIGNAL(buttonClicked(int)),SLOT(set_ntx(int))); - connect(ui->decodedTextBrowser2,SIGNAL(selectCallsign(bool,bool)),this, - SLOT(doubleClickOnCall(bool,bool))); - connect(ui->decodedTextBrowser,SIGNAL(selectCallsign(bool,bool)),this, - SLOT(doubleClickOnCall2(bool,bool))); + connect (ui->decodedTextBrowser2, &DisplayText::selectCallsign, this, &MainWindow::doubleClickOnCall); + connect (ui->decodedTextBrowser, &DisplayText::selectCallsign, this, &MainWindow::doubleClickOnCall2); + connect (ui->decodedTextBrowser, &DisplayText::erased, this, &MainWindow::band_activity_cleared); + connect (ui->decodedTextBrowser2, &DisplayText::erased, this, &MainWindow::rx_frequency_activity_cleared); // initialize decoded text font and hook up font change signals // defer initialization until after construction otherwise menu @@ -811,7 +816,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, morse_(const_cast (m_config.my_callsign ().toLatin1().constData()), const_cast (icw), &m_ncw, m_config.my_callsign ().length()); on_actionWide_Waterfall_triggered(); - m_wideGraph->setLockTxFreq(m_lockTxFreq); ui->cbShMsgs->setChecked(m_bShMsgs); ui->cbSWL->setChecked(m_bSWL); if(m_bFast9) m_bFastMode=true; @@ -842,7 +846,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->sbTxPercent->setValue(m_pctx); ui->TxPowerComboBox->setCurrentIndex(int(0.3*(m_dBm + 30.0)+0.2)); ui->cbUploadWSPR_Spots->setChecked(m_uploadSpots); - ui->cbTxLock->setChecked(m_lockTxFreq); + ui->cbHoldTxFreq->setChecked(m_holdTxFreq); if((m_ndepth&7)==1) ui->actionQuickDecode->setChecked(true); if((m_ndepth&7)==2) ui->actionMediumDecode->setChecked(true); if((m_ndepth&7)==3) ui->actionDeepestDecode->setChecked(true); @@ -858,6 +862,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_bVHFwarned=false; m_bDoubleClicked=false; m_bCallingCQ=false; + m_bCheckedContest=false; m_wait=0; m_CQtype="CQ"; @@ -886,9 +891,11 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, splashTimer.setSingleShot (true); splashTimer.start (20 * 1000); + m_bDXped=false; if(m_config.my_callsign()=="K1JT" or m_config.my_callsign()=="K9AN" or m_config.my_callsign()=="G4WJS" || m_config.my_callsign () == "G3PQA") { - ui->actionWSPR_LF->setEnabled(true); + m_bDXped=true; + ui->actionWSPR_LF->setEnabled(true); } if(!ui->cbMenus->isChecked()) { ui->cbMenus->setChecked(true); @@ -983,6 +990,7 @@ void MainWindow::writeSettings() m_settings->setValue("Ftol", ui->sbFtol->value ()); m_settings->setValue("MinSync",m_minSync); m_settings->setValue ("AutoSeq", ui->cbAutoSeq->isChecked ()); + m_settings->setValue ("VHFcontest", ui->cbVHFcontest->isChecked ()); m_settings->setValue("ShMsgs",m_bShMsgs); m_settings->setValue("SWL",ui->cbSWL->isChecked()); m_settings->setValue ("DialFreq", QVariant::fromValue(m_lastMonitoredFrequency)); @@ -990,7 +998,7 @@ void MainWindow::writeSettings() m_settings->setValue("NoSuffix",m_noSuffix); m_settings->setValue("GUItab",ui->tabWidget->currentIndex()); m_settings->setValue("OutBufSize",outBufSize); - m_settings->setValue("LockTxFreq",m_lockTxFreq); + m_settings->setValue("HoldTxFreq",m_holdTxFreq); m_settings->setValue("PctTx",m_pctx); m_settings->setValue("dBm",m_dBm); m_settings->setValue ("WSPRPreferType1", ui->WSPR_prefer_type_1_check_box->isChecked ()); @@ -1051,6 +1059,7 @@ void MainWindow::readSettings() m_minSync=m_settings->value("MinSync",0).toInt(); ui->syncSpinBox->setValue(m_minSync); ui->cbAutoSeq->setChecked (m_settings->value ("AutoSeq", false).toBool()); + ui->cbVHFcontest->setChecked (m_settings->value ("VHFcontest", false).toBool()); m_bShMsgs=m_settings->value("ShMsgs",false).toBool(); m_bSWL=m_settings->value("SWL",false).toBool(); m_bFast9=m_settings->value("Fast9",false).toBool(); @@ -1078,7 +1087,7 @@ void MainWindow::readSettings() int n=m_settings->value("GUItab",0).toInt(); ui->tabWidget->setCurrentIndex(n); outBufSize=m_settings->value("OutBufSize",4096).toInt(); - m_lockTxFreq=m_settings->value("LockTxFreq",false).toBool(); + m_holdTxFreq=m_settings->value("HoldTxFreq",false).toBool(); m_pwrBandTxMemory=m_settings->value("pwrBandTxMemory").toHash(); m_pwrBandTuneMemory=m_settings->value("pwrBandTuneMemory").toHash(); ui->actionEnable_AP->setChecked (m_settings->value ("FT8AP", false).toBool()); @@ -1214,18 +1223,20 @@ void MainWindow::dataSink(qint64 frames) QString t=QString::fromLatin1(line); DecodedText decodedtext {t, false, m_config.my_grid ()}; ui->decodedTextBrowser->displayDecodedText (decodedtext,m_baseCall,m_config.DXCC(), - m_logBook,m_config.color_CQ(),m_config.color_MyCall(),m_config.color_DXCC(), - m_config.color_NewCall()); -// Append results text to file "fmt.all". - QFile f {m_config.writeable_data_dir ().absoluteFilePath ("fmt.all")}; - if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { - QTextStream out(&f); - out << t << endl; - f.close(); - } else { - MessageBox::warning_message (this, tr ("File Open Error") - , tr ("Cannot open \"%1\" for append: %2") - .arg (f.fileName ()).arg (f.errorString ())); + m_logBook,m_config.color_CQ(),m_config.color_MyCall(),m_config.color_DXCC(), + m_config.color_NewCall()); + if (ui->measure_check_box->isChecked ()) { + // Append results text to file "fmt.all". + QFile f {m_config.writeable_data_dir ().absoluteFilePath ("fmt.all")}; + if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { + QTextStream out(&f); + out << t << endl; + f.close(); + } else { + MessageBox::warning_message (this, tr ("File Open Error") + , tr ("Cannot open \"%1\" for append: %2") + .arg (f.fileName ()).arg (f.errorString ())); + } } if(m_ihsym==m_hsymStop && ui->actionFrequency_calibration->isChecked()) { freqCalStep(); @@ -1423,7 +1434,7 @@ void MainWindow::fastSink(qint64 frames) strncpy(dec_data.params.mycall, (m_baseCall+" ").toLatin1(),12); QString hisCall {ui->dxCallEntry->text ()}; bool bshmsg=ui->cbShMsgs->isChecked(); - bool bcontest=m_config.contestMode(); + bool bcontest=ui->cbVHFcontest->isChecked(); bool bswl=ui->cbSWL->isChecked(); strncpy(dec_data.params.hiscall,(Radio::base_callsign (hisCall) + " ").toLatin1 ().constData (), 12); strncpy(dec_data.params.mygrid, (m_config.my_grid()+" ").toLatin1(),6); @@ -1531,8 +1542,6 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog { // things that might change that we need know about auto callsign = m_config.my_callsign (); - //bool bvhf0=m_config.enable_VHF_features(); - //bool bcontest0=m_config.contestMode(); if (QDialog::Accepted == m_config.exec ()) { if (m_config.my_callsign () != callsign) { m_baseCall = Radio::base_callsign (m_config.my_callsign ()); @@ -1572,14 +1581,12 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog if(m_mode=="JT9+JT65") on_actionJT9_JT65_triggered(); if(m_mode=="JT65") { on_actionJT65_triggered(); - //if(m_config.enable_VHF_features() != bvhf0) genStdMsgs(m_rpt); } if(m_mode=="QRA64") on_actionQRA64_triggered(); if(m_mode=="FreqCal") on_actionFreqCal_triggered(); if(m_mode=="ISCAT") on_actionISCAT_triggered(); if(m_mode=="MSK144") { on_actionMSK144_triggered(); - //if(m_config.contestMode() != bcontest0) genStdMsgs(m_rpt); } if(m_mode=="WSPR") on_actionWSPR_triggered(); if(m_mode=="WSPR-LF") on_actionWSPR_LF_triggered(); @@ -1608,30 +1615,23 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog void MainWindow::on_monitorButton_clicked (bool checked) { - if (!m_transmitting) - { - auto prior = m_monitoring; - monitor (checked); - - if (checked && !prior) - { - if (m_config.monitor_last_used ()) - { + if (!m_transmitting) { + auto prior = m_monitoring; + monitor (checked); + if (checked && !prior) { + if (m_config.monitor_last_used ()) { // put rig back where it was when last in control - setRig (m_lastMonitoredFrequency); - setXIT (ui->TxFreqSpinBox->value ()); - } + setRig (m_lastMonitoredFrequency); + setXIT (ui->TxFreqSpinBox->value ()); + } // ensure FreqCal triggers - on_RxFreqSpinBox_valueChanged (ui->RxFreqSpinBox->value ()); - } - + on_RxFreqSpinBox_valueChanged (ui->RxFreqSpinBox->value ()); + } //Get Configuration in/out of strict split and mode checking - Q_EMIT m_config.sync_transceiver (true, checked); - } - else - { - ui->monitorButton->setChecked (false); // disallow - } + Q_EMIT m_config.sync_transceiver (true, checked); + } else { + ui->monitorButton->setChecked (false); // disallow + } } void MainWindow::monitor (bool state) @@ -1726,19 +1726,11 @@ void MainWindow::keyPressEvent (QKeyEvent * e) } on_actionOpen_next_in_directory_triggered(); return; - case Qt::Key_F10: - if(e->modifiers() & Qt::ControlModifier) freqCalStep(); - break; case Qt::Key_F11: n=11; if(e->modifiers() & Qt::ControlModifier) n+=100; if(e->modifiers() & Qt::ShiftModifier) { - /* - int f=ui->TxFreqSpinBox->value()/50; - if((ui->TxFreqSpinBox->value() % 50) == 0) f=f-1; - ui->TxFreqSpinBox->setValue(50*f); - */ - ui->TxFreqSpinBox->setValue(ui->TxFreqSpinBox->value()-60); + ui->TxFreqSpinBox->setValue(ui->TxFreqSpinBox->value()-60); } else{ bumpFqso(n); } @@ -1747,12 +1739,7 @@ void MainWindow::keyPressEvent (QKeyEvent * e) n=12; if(e->modifiers() & Qt::ControlModifier) n+=100; if(e->modifiers() & Qt::ShiftModifier) { - /* - int f=ui->TxFreqSpinBox->value()/50; - ui->TxFreqSpinBox->setValue(50*(f+1)); - */ - ui->TxFreqSpinBox->setValue(ui->TxFreqSpinBox->value()+60); - + ui->TxFreqSpinBox->setValue(ui->TxFreqSpinBox->value()+60); } else { bumpFqso(n); } @@ -1824,14 +1811,13 @@ void MainWindow::bumpFqso(int n) //bumpFqso() i=ui->RxFreqSpinBox->value (); if(n==11) i--; if(n==12) i++; - if (ui->RxFreqSpinBox->isEnabled ()) - { - ui->RxFreqSpinBox->setValue (i); - } + if (ui->RxFreqSpinBox->isEnabled ()) { + ui->RxFreqSpinBox->setValue (i); + } if(ctrl and m_mode.startsWith ("WSPR")) { ui->WSPRfreqSpinBox->setValue(i); } else { - if(ctrl && ui->TxFreqSpinBox->isEnabled ()) { + if(ctrl) { ui->TxFreqSpinBox->setValue (i); } } @@ -2051,6 +2037,7 @@ void MainWindow::closeEvent(QCloseEvent * e) m_valid = false; // suppresses subprocess errors m_config.transceiver_offline (); writeSettings (); + m_astroWidget.reset (); m_guiTimer.stop (); m_prefixes.reset (); m_shortcuts.reset (); @@ -2114,6 +2101,66 @@ void MainWindow::on_actionFast_Graph_triggered() m_fastGraph->show(); } +void MainWindow::on_actionSolve_FreqCal_triggered() +{ + QString dpath{QDir::toNativeSeparators(m_config.writeable_data_dir().absolutePath()+"/")}; + char data_dir[512]; + int len=dpath.length(); + int iz,irc; + double a,b,rms,sigmaa,sigmab; + strncpy(data_dir,dpath.toLatin1(),len); + calibrate_(data_dir,&iz,&a,&b,&rms,&sigmaa,&sigmab,&irc,len); + QString t2; + if(irc==-1) t2="Cannot open " + dpath + "fmt.all"; + if(irc==-2) t2="Cannot open " + dpath + "fcal2.out"; + if(irc==-3) t2="Insufficient data in fmt.all"; + if(irc==-4) t2 = tr ("Invalid data in fmt.all at line %1").arg (iz); + if(irc>0 or rms>1.0) t2="Check fmt.all for possible bad data."; + if (irc < 0 || irc > 0 || rms > 1.) { + MessageBox::warning_message (this, "Calibration Error", t2); + } + else if (MessageBox::Apply == MessageBox::query_message (this + , tr ("Good Calibration Solution") + , tr ("
"
+                                                                 "%1%L2 ±%L3 ppm\n"
+                                                                 "%4%L5 ±%L6 Hz\n\n"
+                                                                 "%7%L8\n"
+                                                                 "%9%L10 Hz"
+                                                                 "
") + .arg ("Slope: ", 12).arg (b, 0, 'f', 3).arg (sigmab, 0, 'f', 3) + .arg ("Intercept: ", 12).arg (a, 0, 'f', 2).arg (sigmaa, 0, 'f', 2) + .arg ("N: ", 12).arg (iz) + .arg ("StdDev: ", 12).arg (rms, 0, 'f', 2) + , QString {} + , MessageBox::Cancel | MessageBox::Apply)) { + m_config.set_calibration (Configuration::CalibrationParams {a, b}); + if (MessageBox::Yes == MessageBox::query_message (this + , tr ("Delete Calibration Measurements") + , tr ("The \"fmt.all\" file will be renamed as \"fmt.bak\""))) { + // rename fmt.all as we have consumed the resulting calibration + // solution + auto const& backup_file_name = m_config.writeable_data_dir ().absoluteFilePath ("fmt.bak"); + QFile::remove (backup_file_name); + QFile::rename (m_config.writeable_data_dir ().absoluteFilePath ("fmt.all"), backup_file_name); + } + } +} + +void MainWindow::on_actionCopyright_Notice_triggered() +{ + auto const& message = tr("If you make fair use of any part of WSJT-X under terms of the GNU " + "General Public License, you must display the following copyright " + "notice prominently in your derivative work:\n\n" + "\"The algorithms, source code, look-and-feel of WSJT-X and related " + "programs, and protocol specifications for the modes FSK441, FT8, JT4, " + "JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) " + "2001-2017 by one or more of the following authors: Joseph Taylor, " + "K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, " + "IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; " + "Philip Karn, KA9Q; and other members of the WSJT Development Group.\""); + MessageBox::warning_message(this, message); +} + // This allows the window to shrink by removing certain things // and reducing space used by controls void MainWindow::hideMenus(bool checked) @@ -2507,7 +2554,7 @@ void MainWindow::decode() //decode() dec_data.params.nexp_decode=0; if(m_config.single_decode()) dec_data.params.nexp_decode += 32; if(m_config.enable_VHF_features()) dec_data.params.nexp_decode += 64; - if(m_config.contestMode()) dec_data.params.nexp_decode += 128; + if(ui->cbVHFcontest->isChecked()) dec_data.params.nexp_decode += 128; strncpy(dec_data.params.datetime, m_dateTime.toLatin1(), 20); strncpy(dec_data.params.mycall, (m_config.my_callsign()+" ").toLatin1(),12); @@ -2584,7 +2631,8 @@ void::MainWindow::fast_decode_done() if(narg[13]/8==narg[12]) message=message.trimmed().replace("<...>",m_calls); //Left (Band activity) window - DecodedText decodedtext {message.replace (QChar::LineFeed, ""), "FT8" == m_mode && m_config.contestMode (), m_config.my_grid ()}; + DecodedText decodedtext {message.replace (QChar::LineFeed, ""), "FT8" == m_mode && + ui->cbVHFcontest->isChecked(), m_config.my_grid ()}; if(!m_bFastDone) { ui->decodedTextBrowser->displayDecodedText (decodedtext,m_baseCall,m_config.DXCC(), m_logBook,m_config.color_CQ(),m_config.color_MyCall(),m_config.color_DXCC(), @@ -2700,6 +2748,12 @@ void MainWindow::readFromStdout() //readFromStdout if(navg>1 or t.indexOf("f*")>0) bAvgMsg=true; } } + if(m_mode=="FT8" and m_bDXped) { + int i3bit=t.mid(44,1).toInt(); + t=t.mid(0,44) + " " + t.mid(45); + if(i3bit==1) t=t.mid(0,24) + "RR73 NOW " + t.mid(24); + if(i3bit==2) t=t.mid(0,24) + "NIL NOW " + t.mid(24); + } QFile f {m_config.writeable_data_dir ().absoluteFilePath ("ALL.TXT")}; if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { QTextStream out(&f); @@ -2721,15 +2775,15 @@ void MainWindow::readFromStdout() //readFromStdout if (m_config.insert_blank () && m_blankLine) { QString band; - if (QDateTime::currentMSecsSinceEpoch() / 1000 - m_secBandChanged > 50) - { + if((QDateTime::currentMSecsSinceEpoch() / 1000 - m_secBandChanged) > 4*m_TRperiod/4) { band = ' ' + m_config.bands ()->find (m_freqNominal); - } + } ui->decodedTextBrowser->insertLineSpacer (band.rightJustified (40, '-')); m_blankLine = false; } - DecodedText decodedtext {QString::fromUtf8 (t.constData ()).remove (QRegularExpression {"\r|\n"}), "FT8" == m_mode && m_config.contestMode (), m_config.my_grid ()}; + DecodedText decodedtext {QString::fromUtf8 (t.constData ()).remove (QRegularExpression {"\r|\n"}), "FT8" == m_mode && + ui->cbVHFcontest->isChecked(), m_config.my_grid ()}; //Left (Band activity) window if(!bAvgMsg) { @@ -2747,6 +2801,7 @@ void MainWindow::readFromStdout() //readFromStdout if (parts.size () > 6) { auto for_us = parts[5].contains (m_baseCall) || ("DE" == parts[5] && qAbs (ui->RxFreqSpinBox->value () - audioFreq) <= 10); + if(m_baseCall==m_config.my_callsign() and m_baseCall!=parts[5]) for_us=false; if(m_bCallingCQ && !m_bAutoReply && for_us && ui->cbFirst->isChecked()) { // int snr=decodedtext.string().mid(6,4).toInt(); m_bDoubleClicked=true; @@ -2812,7 +2867,9 @@ void MainWindow::auto_sequence (DecodedText const& message, unsigned start_toler { auto const& message_words = message.messageWords (); auto is_73 = message_words.filter (QRegularExpression {"^(73|RR73)$"}).size (); - if (message_words.size () > 2 && (message.isStandardMessage () || is_73)) { + bool is_OK=false; + if(m_mode=="MSK144" and message.string().indexOf(ui->dxCallEntry->text()+" R ")>0) is_OK=true; + if (message_words.size () > 2 && (message.isStandardMessage () || (is_73 or is_OK))) { auto df = message.frequencyOffset (); auto within_tolerance = (qAbs (ui->RxFreqSpinBox->value () - df) <= int (start_tolerance) @@ -2850,10 +2907,9 @@ void MainWindow::auto_sequence (DecodedText const& message, unsigned start_toler || (m_bCallingCQ && m_bAutoReply // look for type 2 compound call replies on our Tx and Rx offsets && ((within_tolerance && "DE" == message_words.at (1)) - || message_words.at (1).contains (m_baseCall))))) - { - processMessage (message); - } + || message_words.at (1).contains (m_baseCall))))) { + processMessage (message); + } } } @@ -2896,23 +2952,31 @@ void MainWindow::killFile () } } -void MainWindow::on_EraseButton_clicked() //Erase +void MainWindow::on_EraseButton_clicked () { qint64 ms=QDateTime::currentMSecsSinceEpoch(); - ui->decodedTextBrowser2->clear(); + ui->decodedTextBrowser2->erase (); if(m_mode.startsWith ("WSPR") or m_mode=="Echo" or m_mode=="ISCAT") { - ui->decodedTextBrowser->clear(); + ui->decodedTextBrowser->erase (); } else { - m_QSOText.clear(); if((ms-m_msErase)<500) { - ui->decodedTextBrowser->clear(); - m_messageClient->clear_decodes (); - QFile f(m_config.temp_dir ().absoluteFilePath ("decoded.txt")); - if(f.exists()) f.remove(); + ui->decodedTextBrowser->erase (); } } m_msErase=ms; - set_dateTimeQSO(-1); +} + +void MainWindow::band_activity_cleared () +{ + m_messageClient->clear_decodes (); + QFile f(m_config.temp_dir ().absoluteFilePath ("decoded.txt")); + if(f.exists()) f.remove(); +} + +void MainWindow::rx_frequency_activity_cleared () +{ + m_QSOText.clear(); + set_dateTimeQSO(-1); // G4WJS: why do we do this? } void MainWindow::decodeBusy(bool b) //decodeBusy() @@ -3070,6 +3134,7 @@ void MainWindow::guiUpdate() if((g_iptt==1 && m_iptt0==0) || m_restart) { //---------------------------------------------------------------------- QByteArray ba; + QByteArray ba0; if(m_mode.startsWith ("WSPR")) { QString sdBm,msg0,msg1,msg2; @@ -3102,6 +3167,21 @@ void MainWindow::guiUpdate() if(m_ntx == 8) ba=ui->freeTextMsg->currentText().toLocal8Bit(); } + m_i3bit=0; + if(m_mode=="FT8" and m_bDXped) { + ba0=ba; + QString t=QString::fromUtf8(ba0); + if(t.startsWith("RR73 NOW ")) { + t=t.mid(9); + m_i3bit=1; + } + if(t.startsWith("NIL NOW ")) { + t=t.mid(8); + m_i3bit=2; + } + ba=t.toLocal8Bit(); + } + ba2msg(ba,message); int ichk=0; if (m_lastMessageSent != m_currentMessage @@ -3131,7 +3211,7 @@ void MainWindow::guiUpdate() if(m_modeTx=="WSPR-LF") genwspr_fsk8_(message, msgsent, const_cast (itone), 22, 22); if(m_modeTx=="MSK144" or m_modeTx=="FT8") { - bool bcontest=m_config.contestMode(); + bool bcontest=ui->cbVHFcontest->isChecked(); char MyGrid[6]; strncpy(MyGrid, (m_config.my_grid()+" ").toLatin1(),6); if(m_modeTx=="MSK144") { @@ -3144,7 +3224,7 @@ void MainWindow::guiUpdate() } } if(m_modeTx=="FT8") { - genft8_(message, MyGrid, &bcontest, msgsent, const_cast (ft8msgbits), + genft8_(message, MyGrid, &bcontest, &m_i3bit, msgsent, const_cast (ft8msgbits), const_cast (itone), 22, 6, 22); } } @@ -3349,7 +3429,10 @@ void MainWindow::guiUpdate() if(m_mode=="Echo") { tx_status_label.setText("Tx: ECHO"); } else { - tx_status_label.setText(s); + QString t{QString::fromLatin1(s)}; + if(m_mode=="FT8" and m_i3bit==1) t="Tx: RR73 NOW " + t.mid(4); + if(m_mode=="FT8" and m_i3bit==2) t="Tx: NIL NOW " + t.mid(4); + tx_status_label.setText(t); } } } else if(m_monitoring) { @@ -3644,15 +3727,15 @@ void MainWindow::on_txb6_clicked() if (m_transmitting) m_restart=true; } -void MainWindow::doubleClickOnCall2(bool alt, bool ctrl) +void MainWindow::doubleClickOnCall2(Qt::KeyboardModifiers modifiers) { set_dateTimeQSO(-1); // reset our QSO start time m_decodedText2=true; - doubleClickOnCall(alt,ctrl); + doubleClickOnCall(modifiers); m_decodedText2=false; } -void MainWindow::doubleClickOnCall(bool alt, bool ctrl) +void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers) { QTextCursor cursor; if(m_mode=="ISCAT") { @@ -3666,13 +3749,19 @@ void MainWindow::doubleClickOnCall(bool alt, bool ctrl) cursor=ui->decodedTextBrowser2->textCursor(); } cursor.setPosition (cursor.selectionStart ()); - DecodedText message {cursor.block ().text (), ("MSK144" == m_mode || "FT8" == m_mode) && m_config.contestMode (), m_config.my_grid ()}; + DecodedText message {cursor.block ().text (), ("MSK144" == m_mode || "FT8" == m_mode) && + ui->cbVHFcontest->isChecked(), m_config.my_grid ()}; m_bDoubleClicked = true; - processMessage (message, ctrl, alt); + processMessage (message, modifiers); } -void MainWindow::processMessage(DecodedText const& message, bool ctrl, bool alt) +void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifiers modifiers) { + // decode keyboard modifiers we are interested in + auto shift = modifiers.testFlag (Qt::ShiftModifier); + auto ctrl = modifiers.testFlag (Qt::ControlModifier); + // auto alt = modifiers.testFlag (Qt::AltModifier); + // basic mode sanity checks auto const& parts = message.string ().split (' ', QString::SkipEmptyParts); if (parts.size () < 5) return; @@ -3703,8 +3792,9 @@ void MainWindow::processMessage(DecodedText const& message, bool ctrl, bool alt) //Skip the rest if no decoded text extracted int frequency = message.frequencyOffset(); if (message.isTX()) { - if (!m_config.enable_VHF_features() && ctrl && ui->TxFreqSpinBox->isEnabled()) { - ui->TxFreqSpinBox->setValue(frequency); //Set Tx freq + if (!m_config.enable_VHF_features()) { + if(!shift) ui->RxFreqSpinBox->setValue(frequency); //Set Rx freq + if((ctrl or shift) and !m_holdTxFreq) ui->TxFreqSpinBox->setValue(frequency); //Set Tx freq } return; } @@ -3719,12 +3809,52 @@ void MainWindow::processMessage(DecodedText const& message, bool ctrl, bool alt) QString hiscall; QString hisgrid; message.deCallAndGrid(/*out*/hiscall,hisgrid); - auto is_73 = message_words.filter (QRegularExpression {"^(73|RR73)$"}).size (); - if (!is_73 && !message.isStandardMessage ()) - { - qDebug () << "Not processing message - hiscall:" << hiscall << "hisgrid:" << hisgrid; - return; + int nWarn=0; + QString warnMsg; + + if(m_mode=="MSK144" and message.string().indexOf(hiscall+" R ")>0 and + !ui->cbVHFcontest->isChecked()) { + warnMsg=tr("Should you be operating in NA VHF Contest mode?"); + nWarn=1; + } + if((m_mode=="FT8" or m_mode=="MSK144") and hisgrid.length()==4 and + m_rigState.frequency()>50000000 and !m_bCheckedContest) { + double utch=0.0; + int nAz,nEl,nDmiles,nDkm,nHotAz,nHotABetter; + azdist_(const_cast (m_config.my_grid().toLatin1().constData()), + const_cast (hisgrid.toLatin1().constData()),&utch, + &nAz,&nEl,&nDmiles,&nDkm,&nHotAz,&nHotABetter,6,6); + if(nDkm>10000) { + warnMsg=tr("Locator in decoded message seems to imply\n" + "a distance greater than 10,000 km. Should\n" + "you be operating in NA VHF Contest mode?"); + nWarn=2; } + } + + if(nWarn>0) { + QMessageBox msgBox; + msgBox.setWindowTitle("Contest mode?"); + msgBox.setText(warnMsg); + msgBox.setStandardButtons(QMessageBox::Yes); + msgBox.addButton(QMessageBox::No); + msgBox.setDefaultButton(QMessageBox::Yes); + if(msgBox.exec() == QMessageBox::Yes){ + ui->cbVHFcontest->setChecked(true); + if(nWarn==2) { + on_DecodeButton_clicked (true); + } + } else { + ui->cbVHFcontest->setChecked(false); + } + m_bCheckedContest=true; + } + + auto is_73 = message_words.filter (QRegularExpression {"^(73|RR73)$"}).size (); + if (!is_73 and !message.isStandardMessage() and (nWarn==0)) { + qDebug () << "Not processing message - hiscall:" << hiscall << "hisgrid:" << hisgrid; + return; + } // only allow automatic mode changes between JT9 and JT65, and when not transmitting if (!m_transmitting and m_mode == "JT9+JT65") { if (message.isJT9()) @@ -3743,17 +3873,18 @@ void MainWindow::processMessage(DecodedText const& message, bool ctrl, bool alt) return; } - QString firstcall = message.call(); + if(firstcall.length()==5 and firstcall.mid(0,3)=="CQ ") firstcall="CQ"; if(!m_bFastMode and (!m_config.enable_VHF_features() or m_mode=="FT8")) { - // Don't change Tx freq if in a fast mode, or VHF features enabled; also not if a - // station is calling me, unless m_lockTxFreq is true or CTRL is held down. - if ((firstcall != m_config.my_callsign () && firstcall != m_baseCall && firstcall != "DE") - || m_lockTxFreq || ctrl) { - if (ui->TxFreqSpinBox->isEnabled ()) { - if(!m_bFastMode && !alt) ui->TxFreqSpinBox->setValue(frequency); - } else if(m_mode != "JT4" && m_mode != "JT65" && !m_mode.startsWith ("JT9") && - m_mode != "QRA64") { + // Don't change Tx freq if in a fast mode, or VHF features enabled; also not if a + // station is calling me, unless CTRL or SHIFT is held down. + if ((Radio::is_callsign (firstcall) + && firstcall != m_config.my_callsign () && firstcall != m_baseCall + && firstcall != "DE") + || "CQ" == firstcall || "QRZ" == firstcall || ctrl || shift) { + if (!m_holdTxFreq or shift or ctrl) ui->TxFreqSpinBox->setValue(frequency); + if(m_mode != "JT4" && m_mode != "JT65" && !m_mode.startsWith ("JT9") && + m_mode != "QRA64" && m_mode!="FT8") { return; } } @@ -3791,7 +3922,7 @@ void MainWindow::processMessage(DecodedText const& message, bool ctrl, bool alt) m_QSOProgress = SIGNOFF; } else if((m_QSOProgress >= REPORT || (m_QSOProgress >= REPLYING && (m_mode=="MSK144" or m_mode=="FT8") - && m_config.contestMode ())) && r.mid(0,1)=="R") { + && ui->cbVHFcontest->isChecked())) && r.mid(0,1)=="R") { m_ntx=4; m_QSOProgress = ROGERS; ui->txrb4->setChecked(true); @@ -3830,7 +3961,7 @@ void MainWindow::processMessage(DecodedText const& message, bool ctrl, bool alt) } else if (!(m_bAutoReply && m_QSOProgress > CALLING)) { if ((message_words.size () > 4 && message_words.at (1).contains (m_baseCall) && message_words.at (4) == "OOO") - || ((m_mode=="MSK144" or m_mode=="FT8") && m_config.contestMode())) { + || ((m_mode=="MSK144" or m_mode=="FT8") && ui->cbVHFcontest->isChecked())) { // EME short code report or MSK144/FT8 contest mode reply, send back Tx3 m_ntx = 3; m_QSOProgress = ROGER_REPORT; @@ -3927,8 +4058,7 @@ void MainWindow::processMessage(DecodedText const& message, bool ctrl, bool alt) // if we get here then we are reacting to the message if (m_bAutoReply) m_bCallingCQ = CALLING == m_QSOProgress; - - if (ui->RxFreqSpinBox->isEnabled () and m_mode != "MSK144") { + if (ui->RxFreqSpinBox->isEnabled () and m_mode != "MSK144" and !shift) { ui->RxFreqSpinBox->setValue (frequency); //Set Rx freq } @@ -3941,21 +4071,20 @@ void MainWindow::processMessage(DecodedText const& message, bool ctrl, bool alt) m_QSOText = s2; } - if (hiscall != "73" - && (base_call != qso_partner_base_call || base_call != hiscall)) - { - if (qso_partner_base_call != base_call) { - // clear the DX grid if the base call of his call is different - // from the current DX call - ui->dxGridEntry->clear (); - } - // his base call different or his call more qualified - // i.e. compound version of same base call - ui->dxCallEntry->setText (hiscall); + if (Radio::is_callsign (hiscall) + && (base_call != qso_partner_base_call || base_call != hiscall)) { + if (qso_partner_base_call != base_call) { + // clear the DX grid if the base call of his call is different + // from the current DX call + ui->dxGridEntry->clear (); } + // his base call different or his call more qualified + // i.e. compound version of same base call + ui->dxCallEntry->setText (hiscall); + } if (hisgrid.contains (grid_regexp)) { if(ui->dxGridEntry->text().mid(0,4) != hisgrid) ui->dxGridEntry->setText(hisgrid); - } + } if (!ui->dxGridEntry->text ().size ()) lookup(); m_hisGrid = ui->dxGridEntry->text(); @@ -4062,7 +4191,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) rpt.sprintf("%+2.2d",n); if(m_mode=="MSK144" or m_mode=="FT8") { - if(m_config.contestMode()) { + if(ui->cbVHFcontest->isChecked()) { t=t0 + my_grid; msgtype(t, ui->tx2); t=t0 + "R " + my_grid; @@ -4072,7 +4201,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) if(m_mode=="MSK144" and m_bShMsgs) { int i=t0.length()-1; t0="<" + t0.mid(0,i) + "> "; - if(!m_config.contestMode()) { + if(!ui->cbVHFcontest->isChecked()) { if(n<=-2) n=-3; if(n>=-1 and n<=1) n=0; if(n>=2 and n<=4) n=3; @@ -4083,7 +4212,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) rpt.sprintf("%+2.2d",n); } } - if((m_mode!="MSK144" and m_mode!="FT8") or !m_config.contestMode()) { + if((m_mode!="MSK144" and m_mode!="FT8") or !ui->cbVHFcontest->isChecked()) { t=t00 + rpt; msgtype(t, ui->tx2); t=t0 + "R" + rpt; @@ -4119,7 +4248,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) msgtype(t + my_grid, ui->tx1); if (!eme_short_codes) { if ((m_mode=="MSK144" || m_mode=="FT8") - && m_config.contestMode()) { + && ui->cbVHFcontest->isChecked()) { msgtype(t + "R " + my_grid, ui->tx3); } else { @@ -4133,7 +4262,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) case Configuration::type_2_msg_3_full: if ((m_mode=="MSK144" || m_mode=="FT8") - && m_config.contestMode()) { + && ui->cbVHFcontest->isChecked()) { msgtype(t + "R " + my_grid, ui->tx3); msgtype(t + "RRR", ui->tx4); } @@ -4150,7 +4279,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) msgtype(t00 + my_grid, ui->tx1); if (!eme_short_codes) { if ((m_mode=="MSK144" || m_mode=="FT8") - && m_config.contestMode()) { + && ui->cbVHFcontest->isChecked()) { msgtype(t + "R " + my_grid, ui->tx3); msgtype(t + "RRR", ui->tx4); } @@ -4361,7 +4490,7 @@ void MainWindow::msgtype(QString t, QLineEdit* tx) //msgtype() if(itype==7 and m_config.enable_VHF_features() and m_mode=="JT65") shortMsg=true; if(m_mode=="MSK144" and t.mid(0,1)=="<") text=false; - if((m_mode=="MSK144" or m_mode=="FT8") and m_config.contestMode()) { + if((m_mode=="MSK144" or m_mode=="FT8") and ui->cbVHFcontest->isChecked()) { int i0=t.trimmed().length()-7; if(t.mid(i0,3)==" R ") text=false; } @@ -4540,8 +4669,8 @@ void MainWindow::displayWidgets(int n) if(i==11) ui->pbTxMode->setVisible(b); if(i==12) ui->pbR2T->setVisible(b); if(i==13) ui->pbT2R->setVisible(b); - if(i==14) ui->cbTxLock->setVisible(b); - if(i==14 and (!b)) ui->cbTxLock->setChecked(false); + if(i==14) ui->cbHoldTxFreq->setVisible(b); + if(i==14 and (!b)) ui->cbHoldTxFreq->setChecked(false); if(i==15) ui->sbSubmode->setVisible(b); if(i==16) ui->syncSpinBox->setVisible(b); if(i==17) ui->WSPR_controls_widget->setVisible(b); @@ -4552,11 +4681,7 @@ void MainWindow::displayWidgets(int n) if(i==20) ui->actionInclude_averaging->setVisible (b); if(i==21) ui->actionInclude_correlation->setVisible (b); if(i==22) { - if(b && !m_echoGraph->isVisible()) { - m_echoGraph->show(); - } else { - if(m_echoGraph->isVisible()) m_echoGraph->hide(); - } + if(!b && m_echoGraph->isVisible()) m_echoGraph->hide(); } if(i==23) { ui->cbSWL->setVisible(b); @@ -4565,6 +4690,8 @@ void MainWindow::displayWidgets(int n) } ui->cbFirst->setVisible ("FT8" == m_mode); ui->actionEnable_AP->setVisible ("FT8" == m_mode); + ui->cbVHFcontest->setVisible(m_mode=="FT8" or m_mode=="MSK144"); + ui->measure_check_box->setVisible ("FreqCal" == m_mode); m_lastCallsign.clear (); // ensures Tx5 is updated for new modes genStdMsgs (m_rpt, true); } @@ -5004,6 +5131,7 @@ void MainWindow::on_actionFreqCal_triggered() setup_status_bar (true); // 18:15:47 0 1 1500 1550.349 0.100 3.5 10.2 ui->decodedTextLabel->setText(" UTC Freq CAL Offset fMeas DF Level S/N"); + ui->measure_check_box->setChecked (false); displayWidgets(nWidgets("001101000000000000000000")); statusChanged(); } @@ -5087,7 +5215,7 @@ void MainWindow::fast_config(bool b) void MainWindow::on_TxFreqSpinBox_valueChanged(int n) { m_wideGraph->setTxFreq(n); - if(m_lockTxFreq) ui->RxFreqSpinBox->setValue(n); +// if(m_holdTxFreq) ui->RxFreqSpinBox->setValue(n); if(m_mode!="MSK144") { Q_EMIT transmitFrequency (n - m_XIT); } @@ -5097,19 +5225,10 @@ void MainWindow::on_TxFreqSpinBox_valueChanged(int n) void MainWindow::on_RxFreqSpinBox_valueChanged(int n) { m_wideGraph->setRxFreq(n); - if (m_mode == "FreqCal" - && m_frequency_list_fcal_iter != m_config.frequencies ()->end ()) - { - setRig (m_frequency_list_fcal_iter->frequency_ - n); - } - if (m_lockTxFreq && ui->TxFreqSpinBox->isEnabled ()) - { - ui->TxFreqSpinBox->setValue (n); - } - else - { - statusUpdate (); - } + if (m_mode == "FreqCal") { + setRig (); + } + statusUpdate (); } void MainWindow::on_actionQuickDecode_toggled (bool checked) @@ -5240,15 +5359,11 @@ void MainWindow::band_changed (Frequency f) if ("FreqCal" == m_mode) { m_frequency_list_fcal_iter = m_config.frequencies ()->find (f); - setRig (f - ui->RxFreqSpinBox->value ()); - } - else - { - float r=m_freqNominal/(f+0.0001); - if(r<0.9 or r>1.1) m_bVHFwarned=false; - setRig (f); - setXIT (ui->TxFreqSpinBox->value ()); } + float r=m_freqNominal/(f+0.0001); + if(r<0.9 or r>1.1) m_bVHFwarned=false; + setRig (f); + setXIT (ui->TxFreqSpinBox->value ()); if(monitor_off) monitor(false); } } @@ -5468,7 +5583,7 @@ void MainWindow::rigOpen () void MainWindow::on_pbR2T_clicked() { - if (ui->TxFreqSpinBox->isEnabled ()) ui->TxFreqSpinBox->setValue(ui->RxFreqSpinBox->value ()); + ui->TxFreqSpinBox->setValue(ui->RxFreqSpinBox->value ()); } void MainWindow::on_pbT2R_clicked() @@ -5542,11 +5657,7 @@ void MainWindow::setXIT(int n, Frequency base) void MainWindow::setFreq4(int rxFreq, int txFreq) { - if (ui->RxFreqSpinBox->isEnabled ()) - { - ui->RxFreqSpinBox->setValue(rxFreq); - } - + if (ui->RxFreqSpinBox->isEnabled ()) ui->RxFreqSpinBox->setValue(rxFreq); if(m_mode.startsWith ("WSPR")) { ui->WSPRfreqSpinBox->setValue(txFreq); } else { @@ -5565,11 +5676,9 @@ void MainWindow::setFreq4(int rxFreq, int txFreq) } } -void MainWindow::on_cbTxLock_clicked(bool checked) +void MainWindow::on_cbHoldTxFreq_clicked(bool checked) { - m_lockTxFreq=checked; - m_wideGraph->setLockTxFreq(m_lockTxFreq); - if(m_lockTxFreq) on_pbR2T_clicked(); + m_holdTxFreq=checked; } void MainWindow::handle_transceiver_update (Transceiver::TransceiverState const& s) @@ -5723,6 +5832,7 @@ void MainWindow::transmit (double snr) if (m_modeTx == "FT8") { toneSpacing=12000.0/1920.0; + if(m_config.x2ToneSpacing()) toneSpacing=2*12000.0/1920.0; Q_EMIT sendMessage (NUM_FT8_SYMBOLS, 1920.0, ui->TxFreqSpinBox->value () - m_XIT, toneSpacing, m_soundOutput, m_config.audio_output_channel (), @@ -5746,6 +5856,7 @@ void MainWindow::transmit (double snr) int nsps[]={480,240,120,60}; double sps=m_nsps; m_toneSpacing=nsub*12000.0/6912.0; + if(m_config.x2ToneSpacing()) m_toneSpacing=2.0*m_toneSpacing; bool fastmode=false; if(m_bFast9 and (m_nSubMode>=4)) { fastmode=true; @@ -5914,7 +6025,7 @@ void MainWindow::transmitDisplay (bool transmitting) auto QSY_allowed = !transmitting or m_config.tx_QSY_allowed () or !m_config.split_mode (); - if (ui->cbTxLock->isChecked ()) { + if (ui->cbHoldTxFreq->isChecked ()) { ui->RxFreqSpinBox->setEnabled (QSY_allowed); ui->pbT2R->setEnabled (QSY_allowed); } @@ -5930,7 +6041,7 @@ void MainWindow::transmitDisplay (bool transmitting) } else { ui->TxFreqSpinBox->setEnabled (QSY_allowed and !m_bFastMode); ui->pbR2T->setEnabled (QSY_allowed); - ui->cbTxLock->setEnabled (QSY_allowed); + ui->cbHoldTxFreq->setEnabled (QSY_allowed); } } @@ -6084,7 +6195,9 @@ void MainWindow::on_cbTx6_toggled(bool) } // Takes a decoded CQ line and sets it up for reply -void MainWindow::replyToCQ (QTime time, qint32 snr, float delta_time, quint32 delta_frequency, QString const& mode, QString const& message_text) +void MainWindow::replyToCQ (QTime time, qint32 snr, float delta_time, quint32 delta_frequency + , QString const& mode, QString const& message_text + , bool /*low_confidence*/, quint8 modifiers) { if (!m_config.accept_udp_requests ()) { @@ -6094,14 +6207,14 @@ void MainWindow::replyToCQ (QTime time, qint32 snr, float delta_time, quint32 de if (message_text.contains (QRegularExpression {R"(^(CQ |CQDX |QRZ ))"})) { // a message we are willing to accept - QString format_string {"%1 %2 %3 %4 %5 %6"}; + QString format_string {"%1 %2 %3 %4 %5 %6"}; auto const& time_string = time.toString ("~" == mode || "&" == mode ? "hhmmss" : "hhmm"); auto cqtext = format_string .arg (time_string) .arg (snr, 3) .arg (delta_time, 4, 'f', 1) .arg (delta_frequency, 4) - .arg (mode) + .arg (mode, -2) .arg (message_text); auto messages = ui->decodedTextBrowser->toPlainText (); auto position = messages.lastIndexOf (cqtext); @@ -6113,7 +6226,7 @@ void MainWindow::replyToCQ (QTime time, qint32 snr, float delta_time, quint32 de .arg (snr, 3) .arg ('-' + QString::number (delta_time, 'f', 1), 4) .arg (delta_frequency, 4) - .arg (mode) + .arg (mode, -2) .arg (message_text)); } if (position >= 0) @@ -6133,8 +6246,10 @@ void MainWindow::replyToCQ (QTime time, qint32 snr, float delta_time, quint32 de position = ui->decodedTextBrowser->toPlainText().indexOf(QChar::LineFeed,position); m_bDoubleClicked = true; auto start = messages.left (position).lastIndexOf (QChar::LineFeed) + 1; - DecodedText message {messages.mid (start, position - start), ("MSK144" == m_mode || "FT8" == m_mode) && m_config.contestMode (), m_config.my_grid ()}; - processMessage (message); + DecodedText message {messages.mid (start, position - start), ("MSK144" == m_mode || "FT8" == m_mode) && + ui->cbVHFcontest->isChecked(), m_config.my_grid ()}; + Qt::KeyboardModifiers kbmod {modifiers << 24}; + processMessage (message, kbmod); tx_watchdog (false); QApplication::alert (this); } @@ -6186,15 +6301,16 @@ void MainWindow::postDecode (bool is_new, QString const& message) { auto const& decode = message.trimmed (); auto const& parts = decode.left (22).split (' ', QString::SkipEmptyParts); - if (!m_diskData && parts.size () >= 5) + if (parts.size () >= 5) { auto has_seconds = parts[0].size () > 4; m_messageClient->decode (is_new , QTime::fromString (parts[0], has_seconds ? "hhmmss" : "hhmm") , parts[1].toInt () - , parts[2].toFloat (), parts[3].toUInt (), parts[4][0] + , parts[2].toFloat (), parts[3].toUInt (), parts[4] , decode.mid (has_seconds ? 24 : 22, 21) - , QChar {'?'} == decode.mid (has_seconds ? 24 + 21 : 22 + 21, 1)); + , QChar {'?'} == decode.mid (has_seconds ? 24 + 21 : 22 + 21, 1) + , m_diskData); } } @@ -6206,7 +6322,8 @@ void MainWindow::postWSPRDecode (bool is_new, QStringList parts) } m_messageClient->WSPR_decode (is_new, QTime::fromString (parts[0], "hhmm"), parts[1].toInt () , parts[2].toFloat (), Radio::frequency (parts[3].toFloat (), 6) - , parts[4].toInt (), parts[5], parts[6], parts[7].toInt ()); + , parts[4].toInt (), parts[5], parts[6], parts[7].toInt () + , m_diskData); } void MainWindow::networkError (QString const& e) @@ -6545,6 +6662,10 @@ void MainWindow::setRig (Frequency f) m_freqTxNominal = m_freqNominal; if (m_astroWidget) m_astroWidget->nominal_frequency (m_freqNominal, m_freqTxNominal); } + if (m_mode == "FreqCal" + && m_frequency_list_fcal_iter != m_config.frequencies ()->end ()) { + m_freqNominal = m_frequency_list_fcal_iter->frequency_ - ui->RxFreqSpinBox->value (); + } if(m_transmitting && !m_config.tx_QSY_allowed ()) return; if ((m_monitoring || m_transmitting) && m_config.transceiver_online ()) { @@ -6601,7 +6722,8 @@ void MainWindow::on_actionErase_reference_spectrum_triggered() void MainWindow::freqCalStep() { - if (++m_frequency_list_fcal_iter == m_config.frequencies ()->end ()) { + if (m_frequency_list_fcal_iter == m_config.frequencies ()->end () + || ++m_frequency_list_fcal_iter == m_config.frequencies ()->end ()) { m_frequency_list_fcal_iter = m_config.frequencies ()->begin (); } @@ -6743,6 +6865,13 @@ void MainWindow::on_cbAutoSeq_toggled(bool b) ui->cbFirst->setVisible((m_mode=="FT8") and b); } +void MainWindow::on_measure_check_box_stateChanged (int state) +{ + if ("FreqCal" == m_mode) { + m_config.enable_calibration (Qt::Checked != state); + } +} + void MainWindow::write_transmit_entry (QString const& file_name) { QFile f {m_config.writeable_data_dir ().absoluteFilePath (file_name)}; diff --git a/mainwindow.h b/mainwindow.h index d6ff16cfc..e214b3161 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -107,8 +107,8 @@ public slots: void diskDat(); void freezeDecode(int n); void guiUpdate(); - void doubleClickOnCall(bool shift, bool ctrl); - void doubleClickOnCall2(bool shift, bool ctrl); + void doubleClickOnCall (Qt::KeyboardModifiers); + void doubleClickOnCall2(Qt::KeyboardModifiers); void readFromStdout(); void p1ReadFromStdout(); void setXIT(int n, Frequency base = 0u); @@ -149,10 +149,14 @@ private slots: void on_actionSave_all_triggered(); void on_actionKeyboard_shortcuts_triggered(); void on_actionSpecial_mouse_commands_triggered(); + void on_actionSolve_FreqCal_triggered(); + void on_actionCopyright_Notice_triggered(); void on_DecodeButton_clicked (bool); void decode(); void decodeBusy(bool b); void on_EraseButton_clicked(); + void band_activity_cleared (); + void rx_frequency_activity_cleared (); void on_txFirstCheckBox_stateChanged(int arg1); void set_dateTimeQSO(int m_ntx); void set_ntx(int n); @@ -222,7 +226,7 @@ private slots: void on_readFreq_clicked(); void on_pbTxMode_clicked(); void on_RxFreqSpinBox_valueChanged(int n); - void on_cbTxLock_clicked(bool checked); + void on_cbHoldTxFreq_clicked(bool checked); void on_outAttenuation_valueChanged (int); void rigOpen (); void handle_transceiver_update (Transceiver::TransceiverState const&); @@ -277,6 +281,7 @@ private slots: void on_actionQRA64_triggered(); void on_actionFreqCal_triggered(); void splash_done (); + void on_measure_check_box_stateChanged (int); private: Q_SIGNAL void initializeAudioOutputStream (QAudioDeviceInfo, @@ -401,6 +406,7 @@ private: qint32 m_nTx73; qint32 m_UTCdisk; qint32 m_wait; + qint32 m_i3bit; bool m_btxok; //True if OK to transmit bool m_diskData; @@ -425,7 +431,7 @@ private: QString m_currentMessage; int m_lastMessageType; QString m_lastMessageSent; - bool m_lockTxFreq; + bool m_holdTxFreq; bool m_bShMsgs; bool m_bSWL; bool m_uploadSpots; @@ -454,6 +460,9 @@ private: bool m_bDoubleClicked; bool m_bCallingCQ; bool m_bAutoReply; + bool m_bCheckedContest; + bool m_bDXped; + enum { CALLING, @@ -593,8 +602,8 @@ private: void pskPost(DecodedText const& decodedtext); void displayDialFrequency (); void transmitDisplay (bool); - void processMessage(DecodedText const&, bool ctrl = false, bool alt = false); - void replyToCQ (QTime, qint32 snr, float delta_time, quint32 delta_frequency, QString const& mode, QString const& message_text); + void processMessage(DecodedText const&, Qt::KeyboardModifiers = 0); + void replyToCQ (QTime, qint32 snr, float delta_time, quint32 delta_frequency, QString const& mode, QString const& message_text, bool low_confidence, quint8 modifiers); void replayDecodes (); void postDecode (bool is_new, QString const& message); void postWSPRDecode (bool is_new, QStringList message_parts); diff --git a/mainwindow.ui b/mainwindow.ui index 04e01d7b8..44cf6eb25 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -7,7 +7,7 @@ 0 0 815 - 548 + 555
@@ -21,7 +21,7 @@ - + 3 @@ -334,7 +334,7 @@ - + @@ -531,12 +531,6 @@ - - - 60 - 16777215 - - Menus @@ -622,7 +616,10 @@ QLabel[oob="true"] { - <html><head/><body><p>Signal report (dB)</p></body></html> + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> + + + Qt::AlignCenter Report @@ -638,6 +635,22 @@ QLabel[oob="true"] { + + + + + 0 + 0 + + + + Set Tx frequency to Rx Frequency + + + Tx ← Rx + + + @@ -685,22 +698,6 @@ QLabel[oob="true"] { - - - - - 0 - 0 - - - - Set Tx frequency to Rx Frequency - - - Tx ← Rx - - - @@ -751,14 +748,11 @@ QLabel[oob="true"] { - <html><head/><body><p>Call the first decoded responder to my CQ.</p></body></html> + <html><head/><body><p>Chect to call the first decoded responder to my CQ.</p></body></html> Call 1st - - false - @@ -779,6 +773,80 @@ QLabel[oob="true"] { + + + + true + + + + 0 + 0 + + + + Toggle Tx mode + + + Tx JT9 @ + + + + + + + 5 + + + + + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> + + + Hold Tx Freq + + + + + + + + + + 0 + 0 + + + + Set Rx frequency to Tx Frequency + + + Rx ← Tx + + + + + + + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> + + + Qt::AlignCenter + + + Sync + + + -1 + + + 10 + + + 1 + + + @@ -804,53 +872,7 @@ QLabel[oob="true"] { - - - - - 0 - 0 - - - - Set Rx frequency to Tx Frequency - - - Rx ← Tx - - - - - - - 5 - - - - - <html><head/><body><p>Tx frequency tracks Rx frequency. </p><p>Not recommended for general use!</p></body></html> - - - Lock Tx=Rx - - - - - - - - - true - - - Toggle Tx mode - - - Tx JT9 @ - - - - + Qt::Vertical @@ -863,28 +885,6 @@ QLabel[oob="true"] { - - - - <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> - - - Qt::AlignCenter - - - Sync - - - -1 - - - 10 - - - 1 - - - @@ -923,7 +923,70 @@ QLabel[oob="true"] { - + + + + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> + + + Tx even/1st + + + + + + + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> + + + Qt::AlignCenter + + + Submode + + + 0 + + + 7 + + + + + + + + + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> + + + SWL + + + + + + + <html><head/><body><p>Check to exchange grid locators instead of signal reports. DO NOT USE when propagation supports making world-wide contacts!</p></body></html> + + + NA VHF Contest + + + + + + + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> + + + Measure + + + + + + @@ -962,48 +1025,6 @@ QLabel[oob="true"] { - - - - <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> - - - Tx even/1st - - - - - - - <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> - - - Qt::AlignCenter - - - Submode - - - 0 - - - 7 - - - - - - - true - - - <html><head/><body><p>Check to monitor Sh messages.</p></body></html> - - - SWL - - - @@ -1021,351 +1042,301 @@ QLabel[oob="true"] { 1 - - - 6 - - - 6 - - - 6 - - - 6 - + - - - - 2 - 0 - - - - Generate standard messages for minimal QSO - - - Generate Std Msgs - - - - - - - Queue up the next Tx message - - - Next - - - - - - - Switch to this Tx message NOW - - - Now - - - Qt::AlignCenter - - - - - - - - 2 - 0 - - - - - - - - - - - <html><head/><body><p>Send this message in next Tx interval</p><p>Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compound call holders)</p></body></html> - - - - - - Ctrl+1 - - - buttonGroup - - - - - - - - 30 - 16777215 - - - - <html><head/><body><p>Switch to this Tx message NOW</p><p>Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compund call holders)</p></body></html> - - - Qt::LeftToRight - - - Tx &1 - - - Alt+1 - - - - - - - - 2 - 0 - - - - - - - - Send this message in next Tx interval - - - - - - Ctrl+2 - - - buttonGroup - - - - - - - - 30 - 16777215 - - - - Switch to this Tx message NOW - - - Tx &2 - - - Alt+2 - - - - - - - - 2 - 0 - - - - - - - - Send this message in next Tx interval - - - - - - Ctrl+3 - - - buttonGroup - - - - - - - - 30 - 16777215 - - - - Switch to this Tx message NOW - - - Tx &3 - - - Alt+3 - - - - - - - - 2 - 0 - - - - - - - - <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders)</p><p>RR73 messages should only be used when you are reasonably confident that no message repetitions will be required</p></body></html> - - - - - - Ctrl+4 - - - buttonGroup - - - - - - - - 30 - 16777215 - - - - <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders)</p><p>RR73 messages should only be used when you are reasonably confident that no message repetitions will be required</p></body></html> - - - Tx &4 - - - Alt+4 - - - - - - - - 2 - 0 - - - - Enter a free text message (maximum 13 characters) + + + + + Switch to this Tx message NOW + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &2 + + + Alt+2 + + + + + + + + + + Send this message in next Tx interval + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+3 + + + buttonGroup + + + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders)</p><p>RR73 messages should only be used when you are reasonably confident that no message repetitions will be required</p></body></html> + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+4 + + + buttonGroup + + + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+5 + + + buttonGroup + + + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &5 + + + Alt+5 + + + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders)</p><p>RR73 messages should only be used when you are reasonably confident that no message repetitions will be required</p></body></html> + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &4 + + + Alt+4 + + + + + + + Enter a free text message (maximum 13 characters) or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined list. The list can be maintained in Settings (F2). - - - true - - - QComboBox::InsertAtBottom - - - - - - - <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> - - - - - - Ctrl+5 - - - buttonGroup - - - - - - - - 30 - 16777215 - - - - <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> - - - Tx &5 - - - Alt+5 - - - - - - - - 2 - 0 - - - - - - - - - - - Send this message in next Tx interval - - - - - - Ctrl+6 - - - true - - - buttonGroup - - - - - - - - 30 - 16777215 - - - - Switch to this Tx message NOW - - - Tx &6 - - - Alt+6 - - + + + true + + + QComboBox::InsertAtBottom + + + + + + + + + + + + + + Switch to this Tx message NOW + + + Now + + + Qt::AlignCenter + + + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compund call holders)</p></body></html> + + + Qt::LeftToRight + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &1 + + + Alt+1 + + + + + + + Queue up the next Tx message + + + Next + + + Qt::AlignCenter + + + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compound call holders)</p></body></html> + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+1 + + + buttonGroup + + + + + + + + + + Send this message in next Tx interval + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+2 + + + buttonGroup + + + + + + + Generate standard messages for minimal QSO + + + Generate Std Msgs + + + + + + + + + + Switch to this Tx message NOW + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &3 + + + Alt+3 + + + + + + + + + + + + + + Send this message in next Tx interval + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+6 + + + true + + + buttonGroup + + + + + + + Switch to this Tx message NOW + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &6 + + + Alt+6 + + + +
@@ -1388,8 +1359,8 @@ list. The list can be maintained in Settings (F2).
- - 2 + + 0 @@ -2401,6 +2372,8 @@ QPushButton[state="ok"] { + + @@ -2440,6 +2413,7 @@ QPushButton[state="ok"] { + @@ -2985,6 +2959,19 @@ QPushButton[state="ok"] { Enable AP + + + Solve for calibration parameters + + + + + Copyright notice + + + Shift+F1 + +
@@ -3054,7 +3041,7 @@ QPushButton[state="ok"] { pbTxMode pbR2T pbT2R - cbTxLock + cbHoldTxFreq sbSubmode syncSpinBox tabWidget diff --git a/mouse_commands.txt b/mouse_commands.txt index 164ec66d1..d159ff5e1 100644 --- a/mouse_commands.txt +++ b/mouse_commands.txt @@ -8,20 +8,18 @@ Click to set the Rx frequency.
Shift-click to set Tx frequency.
Ctrl-click to set Rx and Tx frequencies.
- Double-click to decode at resulting Rx frequency.
- If Lock Tx=Rx is checked all actions set Tx/Rx. + Double-click to also decode at Rx frequency.
Decoded text: Double-click to copy second callsign to Dx Call,
- locator to Dx Grid; change Rx and Tx frequencies to
- decoded signal's frequency; generate standard messages.
- If first callsign is your own, Tx frequency is not
- changed unless Ctrl is held down when double-clicking.
-
- Alt-Double-click to move only Rx frequency when
- replying to a CQ or QRZ caller. + 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.
diff --git a/plotter.cpp b/plotter.cpp index 550bdda5f..e6635aa18 100644 --- a/plotter.cpp +++ b/plotter.cpp @@ -355,8 +355,10 @@ void CPlotter::DrawOverlay() //DrawOverlay() //draw frequency values for( int i=0; i<=m_hdivs; i++) { x = (int)((m_xOffset+i)*pixperdiv - pixperdiv/2); - rect0.setRect(x,0, (int)pixperdiv, 20); - painter0.drawText(rect0, Qt::AlignHCenter|Qt::AlignVCenter,m_HDivText[i]); + if(int(x+pixperdiv/2) > 70) { + rect0.setRect(x,0, (int)pixperdiv, 20); + painter0.drawText(rect0, Qt::AlignHCenter|Qt::AlignVCenter,m_HDivText[i]); + } } float bw=9.0*12000.0/m_nsps; //JT9 @@ -637,14 +639,11 @@ void CPlotter::mousePressEvent(QMouseEvent *event) //mousePressEvent int newFreq = int(FreqfromX(x)+0.5); int oldTxFreq = m_txFreq; int oldRxFreq = m_rxFreq; - - if (ctrl or m_lockTxFreq) { + if (ctrl) { emit setFreq1 (newFreq, newFreq); - } - else if (shift) { + } else if (shift) { emit setFreq1 (oldRxFreq, newFreq); - } - else { + } else { emit setFreq1(newFreq,oldTxFreq); } diff --git a/plotter.h b/plotter.h index ecf829f9f..67e51c9fa 100644 --- a/plotter.h +++ b/plotter.h @@ -75,7 +75,6 @@ public: void setBreadth(qint32 w) {m_w = w;} qint32 breadth() const {return m_w;} float fSpan() const {return m_fSpan;} - void setLockTxFreq(bool b) {m_lockTxFreq = b;} void setColours(QVector const& cl); void setFlatten(bool b1, bool b2); void setTol(int n); @@ -106,7 +105,6 @@ private: bool m_bLinearAvg; bool m_bReference; bool m_bReference0; - bool m_lockTxFreq; bool m_bVHF; float m_fSpan; diff --git a/prefixes.txt b/prefixes.txt index 1010c334c..185dc22a5 100644 --- a/prefixes.txt +++ b/prefixes.txt @@ -1,27 +1,27 @@ -Type 1 Prefixes and Suffixes: - - 1A 1S 3A 3B6 3B8 3B9 3C 3C0 3D2 3D2C 3D2R 3DA 3V 3W 3X - 3Y 3YB 3YP 4J 4L 4S 4U1I 4U1U 4W 4X 5A 5B 5H 5N 5R - 5T 5U 5V 5W 5X 5Z 6W 6Y 7O 7P 7Q 7X 8P 8Q 8R - 9A 9G 9H 9J 9K 9L 9M2 9M6 9N 9Q 9U 9V 9X 9Y A2 - A3 A4 A5 A6 A7 A9 AP BS7 BV BV9 BY C2 C3 C5 C6 - C9 CE CE0X CE0Y CE0Z CE9 CM CN CP CT CT3 CU CX CY0 CY9 - D2 D4 D6 DL DU E3 E4 EA EA6 EA8 EA9 EI EK EL EP - ER ES ET EU EX EY EZ F FG FH FJ FK FKC FM FO - FOA FOC FOM FP FR FRG FRJ FRT FT5W FT5X FT5Z FW FY M MD - MI MJ MM MU MW H4 H40 HA HB HB0 HC HC8 HH HI HK - HK0A HK0M HL HM HP HR HS HV HZ I IS IS0 J2 J3 J5 - J6 J7 J8 JA JDM JDO JT JW JX JY K KG4 KH0 KH1 KH2 - KH3 KH4 KH5 KH5K KH6 KH7 KH8 KH9 KL KP1 KP2 KP4 KP5 LA LU - LX LY LZ OA OD OE OH OH0 OJ0 OK OM ON OX OY OZ - P2 P4 PA PJ2 PJ7 PY PY0F PT0S PY0T PZ R1F R1M S0 S2 S5 - S7 S9 SM SP ST SU SV SVA SV5 SV9 T2 T30 T31 T32 T33 - T5 T7 T8 T9 TA TF TG TI TI9 TJ TK TL TN TR TT - TU TY TZ UA UA2 UA9 UK UN UR V2 V3 V4 V5 V6 V7 - V8 VE VK VK0H VK0M VK9C VK9L VK9M VK9N VK9W VK9X VP2E VP2M VP2V VP5 - VP6 VP6D VP8 VP8G VP8H VP8O VP8S VP9 VQ9 VR VU VU4 VU7 XE XF4 - XT XU XW XX9 XZ YA YB YI YJ YK YL YN YO YS YU - YV YV0 Z2 Z3 ZA ZB ZC4 ZD7 ZD8 ZD9 ZF ZK1N ZK1S ZK2 ZK3 - ZL ZL7 ZL8 ZL9 ZP ZS ZS8 KC4 E5 - -Short-list of Add-on Suffixes: /0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /A /P +Type 1 Prefixes and Suffixes: + + 1A 1S 3A 3B6 3B8 3B9 3C 3C0 3D2 3D2C 3D2R 3DA 3V 3W 3X + 3Y 3YB 3YP 4J 4L 4S 4U1I 4U1U 4W 4X 5A 5B 5H 5N 5R + 5T 5U 5V 5W 5X 5Z 6W 6Y 7O 7P 7Q 7X 8P 8Q 8R + 9A 9G 9H 9J 9K 9L 9M2 9M6 9N 9Q 9U 9V 9X 9Y A2 + A3 A4 A5 A6 A7 A9 AP BS7 BV BV9 BY C2 C3 C5 C6 + C9 CE CE0X CE0Y CE0Z CE9 CM CN CP CT CT3 CU CX CY0 CY9 + D2 D4 D6 DL DU E3 E4 EA EA6 EA8 EA9 EI EK EL EP + ER ES ET EU EX EY EZ F FG FH FJ FK FKC FM FO + FOA FOC FOM FP FR FRG FRJ FRT FT5W FT5X FT5Z FW FY M MD + MI MJ MM MU MW H4 H40 HA HB HB0 HC HC8 HH HI HK + HK0A HK0M HL HM HP HR HS HV HZ I IS IS0 J2 J3 J5 + J6 J7 J8 JA JDM JDO JT JW JX JY K KG4 KH0 KH1 KH2 + KH3 KH4 KH5 KH5K KH6 KH7 KH8 KH9 KL KP1 KP2 KP4 KP5 LA LU + LX LY LZ OA OD OE OH OH0 OJ0 OK OM ON OX OY OZ + P2 P4 PA PJ2 PJ7 PY PY0F PT0S PY0T PZ R1F R1M S0 S2 S5 + S7 S9 SM SP ST SU SV SVA SV5 SV9 T2 T30 T31 T32 T33 + T5 T7 T8 T9 TA TF TG TI TI9 TJ TK TL TN TR TT + TU TY TZ UA UA2 UA9 UK UN UR V2 V3 V4 V5 V6 V7 + V8 VE VK VK0H VK0M VK9C VK9L VK9M VK9N VK9W VK9X VP2E VP2M VP2V VP5 + VP6 VP6D VP8 VP8G VP8H VP8O VP8S VP9 VQ9 VR VU VU4 VU7 XE XF4 + XT XU XW XX9 XZ YA YB YI YJ YK YL YN YO YS YU + YV YV0 Z2 Z3 ZA ZB ZC4 ZD7 ZD8 ZD9 ZF ZK1N ZK1S ZK2 ZK3 + ZL ZL7 ZL8 ZL9 ZP ZS ZS8 KC4 E5 + +Short-list of Add-on Suffixes: /0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /A /P diff --git a/shortcuts.txt b/shortcuts.txt index 6b505203d..2acb7bf1a 100644 --- a/shortcuts.txt +++ b/shortcuts.txt @@ -1,5 +1,6 @@ + diff --git a/widegraph.cpp b/widegraph.cpp index 6b11b1e98..4bfa744f8 100644 --- a/widegraph.cpp +++ b/widegraph.cpp @@ -22,7 +22,6 @@ WideGraph::WideGraph(QSettings * settings, QWidget *parent) : m_settings (settings), m_palettes_path {":/Palettes"}, m_ntr0 {0}, - m_lockTxFreq {false}, m_bHaveTransmitted {false}, m_n {0} { @@ -230,7 +229,6 @@ void WideGraph::setRxFreq(int n) //set { ui->widePlot->setRxFreq(n); ui->widePlot->draw(swide,false,false); - if(m_lockTxFreq) setTxFreq(n); } int WideGraph::rxFreq() //rxFreq @@ -333,12 +331,6 @@ void WideGraph::on_fSplitSpinBox_valueChanged(int n) //fSplit setRxRange (); } -void WideGraph::setLockTxFreq(bool b) //LockTxFreq -{ - m_lockTxFreq=b; - ui->widePlot->setLockTxFreq(b); -} - void WideGraph::setFreq2(int rxFreq, int txFreq) //setFreq2 { emit setFreq3(rxFreq,txFreq); diff --git a/widegraph.h b/widegraph.h index 32fed92fd..1ec7a5f0e 100644 --- a/widegraph.h +++ b/widegraph.h @@ -40,7 +40,6 @@ public: void setMode(QString mode); void setSubMode(int n); void setModeTx(QString modeTx); - void setLockTxFreq(bool b); bool flatten(); bool useRef(); void setTol(int n); @@ -104,7 +103,6 @@ private: qint32 m_nSubMode; qint32 m_nsmo; qint32 m_Percent2DScreen; - bool m_lockTxFreq; bool m_bFlatten; bool m_bRef; bool m_bHaveTransmitted; //Set true at end of a WSPR transmission diff --git a/widegraph.ui b/widegraph.ui index 1dc394485..e4ccf4099 100644 --- a/widegraph.ui +++ b/widegraph.ui @@ -7,7 +7,7 @@ 00799 - 395 + 337 @@ -34,6 +34,12 @@ true + + + 0 + 0 + + 400 @@ -52,18 +58,12 @@ - 9 - 10 - 60 + 5 + 0 + 63 17 - - - 65 - 16777215 - - Controls @@ -76,7 +76,7 @@ - + 0 0 diff --git a/wsjtx.pro b/wsjtx.pro index af9a5af49..1a327c919 100644 --- a/wsjtx.pro +++ b/wsjtx.pro @@ -66,7 +66,8 @@ SOURCES += \ main.cpp decodedtext.cpp wsprnet.cpp messageaveraging.cpp \ echoplot.cpp echograph.cpp fastgraph.cpp fastplot.cpp Modes.cpp \ WSPRBandHopping.cpp MessageAggregator.cpp SampleDownloader.cpp qt_helpers.cpp\ - MultiSettings.cpp PhaseEqualizationDialog.cpp IARURegions.cpp + MultiSettings.cpp PhaseEqualizationDialog.cpp IARURegions.cpp MessageBox.cpp \ + EqualizationToolsDialog.cpp HEADERS += qt_helpers.hpp \ pimpl_h.hpp pimpl_impl.hpp \ @@ -82,7 +83,8 @@ HEADERS += qt_helpers.hpp \ logbook/logbook.h logbook/countrydat.h logbook/countriesworked.h logbook/adif.h \ messageaveraging.h echoplot.h echograph.h fastgraph.h fastplot.h Modes.hpp WSPRBandHopping.hpp \ WsprTxScheduler.h SampleDownloader.hpp MultiSettings.hpp PhaseEqualizationDialog.hpp \ - IARURegions.hpp + IARURegions.hpp MessageBox.hpp EqualizationToolsDialog.hpp + INCLUDEPATH += qmake_only diff --git a/wsjtx_changelog.txt b/wsjtx_changelog.txt index ea05cf75e..dcda3fd7e 100644 --- a/wsjtx_changelog.txt +++ b/wsjtx_changelog.txt @@ -1,791 +1,791 @@ - WSJT-X ChangeLog ------------------------------------------------------------------- - -May 30, 2013: Version 1.0, r3323 --------------------------------- - -With this release of WSJT-X Version 1.0 we include a few (relatively -minor) enhancements in response to user requests, as well as some -program polishing and cleanup. Active program development will -continue, but new releases will become less frequent. - -1. New option on the Setup menu: "Tx freq locked to Rx freq". - -2. Double-click on a decoded "73" message now sets Tx5, rather than Tx6. - -3. New keyboard shortcuts: Alt+1 through Alt+6 set the next Tx message - at the corresponding number. - -4. PTT control via Ham Radio Deluxe has been imnplemented and tested. - -5. "Tool Tips" are now provided for most on-screen controls. - -6. Under Linux and OS X, listings of available audio devices and APIs - have been corrected. - -7. Tab order among GUI controls has been cleaned up. - -8. Updates to the WSJT-X User's Guide. - - -May 22, 2013: v0.99, r3297 --------------------------- - -1. CAT control via Ham Radio Deluxe is now available. For setup - details see item #5 at the top of page 6 of the updated WSJT-X - User's Guide. - -2. Submodes JT9-5, JT8-10, JT9-30 have been de-activated. (As far as I - know, nobody was using them.) This action makes the program smaller - by some 150 MB and able to run effectively on some older computers. - -3. Bizarre ordering of COM port numbers on the drop-down list has been - corrected, and suitable serial ports added to the list displayed in - Linux. - -4. Gray bar between decoding periods now contains a dashed line. - -5. Corrected a bug that prevented use of Setup | Configuration with - no existing wsjtx.ini file. - -May 17, 2013: v0.95, r3278 --------------------------- -1. Double-clicking on a decoded text line in "Band Activity" window - now copies the line into the "QSO Frequency" window if it was not - already there. - -2. Option "Color highlighting in left window" removed from Setup - menu. Highlighting is now always done. - -3. Positions of "QSO Frequency" and "Band Activity" windows have been - swapped. - -4. F4 was restored to its previous use; F5 is now used to display - Special Mouse Commands - -5. Small square between Band selector and Frequency readout was made - a control button. Orange indicates one-way CAT control from - program to radio, red indicates bi-directional control. Clicking - the orange button causes a one-time readout of dial frequency. - -6. If Save=None, the last recorded file is deleted on program exit. - This prevents unwanted accumulation of files in the Save - directory. - -7. Status-bar messages were re-arranged in a more logical order. - -8. Tx signal report was added to wsjtx_status.txt (for JT-Alert) - -9. More informative labels were placed on the "Tab 2" GUI controls. - -10. Better default scaling for the "Cumulative" spectrum. - -11. New algorithm for identifying JT9 signals to send to decoder, - resulting major improvements in decoder speed. - -12. Bug fixes: - - Incorrect displayed frequencies for JT9-2 signals - - Infinitely repeated "Error rigOpen -1" messages - - User tries to open CAT control using busy or nonexistent serial port - -13. Many updates to the User's Guide - - -May 2, 2013: v0.95, r3251 -------------------------- - -1. The "band change" function is executed whenever the Band combobox - is activated, even if the selected band has not changed. - -2. The program does not set rig mode. That task is left to the user. - -3. Time interval for polling rig frequency is now a user parameter on - the setup screen. I set mine to 1 second, which works fine with - the Kenwood TS-2000. Set it to 0 if you want no polling for - frequency (which means unidirectional CAT control from program to - radio). Choose something like 10 s for the K3. - -4. Much new work on the WSJT-X User's Guide, which is approaching its - final form for Version 1.0. Please read it and tell us about - anything you find unclear or missing! - -These changes address nearly all of the CAT issues found by a few -users -- those with K3, IC-746, IC-706, in particular. - -One additional piece of advice when running WSJT-X in Windows: connect -and turn on the radio and any interface equipment before starting -WSJT-X, and exit the program before turning such equipment off. - -April 29, 2013: v0.95, r3243 ----------------------------- - -1. Now has bi-directionsl CAT control using direct calls to hamlib - functions. Highlights displayed dial frequency with red background - if frequency differs from nominal for the selected band by more - than 100 kHz. (Is there a more useful or logical condition to - flag?) Small red square between Band selector and Dial Frequency - display to indicate that CAT control is active. Mode is set to USB - on startup. (Note: CAT control diagnostics are presently rather - rudimentary, we're still working on this. Feedback is welcome!) - -2. New controls on Setup | Configuration screen: - - RTS/DTR OFF -- needed by K2 and maybe other radios - - Data / Mic -- select CAT-control PTT type - - Test CAT Control -- try settings before returning to main screen - - Test PTT -- try settings for toggling PTT On/Off - -3. Help menu now provides displays of Keyboard Shortcuts (quick access - via F3) and Special Mouse Commands (F4). - -4. Option "Setup | Advanced | Allow multiple instances" enables the - use of more than one instance of WSJT-X for special applications. - (The program must be copied into and run from different - directories.) - -5. No posts to PSK Reporter if band was changed during the reception - period. - -6. Improved behavior of Tune button. - -7. Improved inter-process communication between WSJT-X and JT-Alert-X. - -8. Better interaction between "Report" spinner control and Tx messages. - -9. Removed the NB checkbox and slider. (Has anyone found these useful?) - -10. New buttons on main window: "Tx=Rx" sets Tx frequency to current - Rx frequency; "Rx=Tx" does the opposite. - -11. Log QSO confirmation window is now "non-modal": you can keep it - open and still access controls on the main window. - -12. Tab-order has been rationalized on most screens. - -13. Dial frequency and mode written to file ALL.TXT. - -14. Double-click on decoded line sets Tx message #3 if message has - the form "MyCall Call2 rpt". - -15. Bug causing occasional, seemingly unpredictable program crashes - has been fixed. - -16. The WSJT-X User's Guide is somewhat closer to being complete. User - feedback on the Guide will be most welcome. What is unclear? What - is missing? - -April 17, 2013: v0.9, r3195 ---------------------------- -1. Sorry, the CAT control changes in r3187/3188 were a dismal failure -in many stations, and they introduced other bugs as well. This revision -goes back to uni-directional CAT control: the program can set the -radio's dial frequency and do T/R switching, but that's all. The band -setting is not reset on program startup. - -2. Logic for the Tune button has been corrected. - -3. For Linux compile-it-yourself enthusiasts: the interface to -PSK Reporter is now working undel Linux. - -April 16, 2013: v0.9, r3188 ---------------------------- - -1. CAT control now reads and follows changes in radio's dial -frequency. Readout gets red highlighting if radio is on wrong band. -On program restart, band is reset to the last selected band. - -2. New "Tune" button generates an unmodulated carrier. Toggle button -a second time to turn Tx off. - -3. Added labels at top of "Tab 2" and enlarged the text entry fields. - -4. Fixed the broken logic for "Runaway Tx watchdog". - -5. Fixed "Prompt me to log QSO" so that it no longer requires also -setting "ID after 73". - -6. Additional changes of (eventual) interest to Linux users. Code for -sending spots to PSK Reporter now in place. - -April 13, 2013: v0.9, r3166 ---------------------------- -1. Option to send Tx messages (highlighted in yellow) to the QSO window. - -2. Prevent starting a transmission more than 24 sec into a Tx period. - -3. "Setup | Options" changed to "Setup | Configuration". - -4. Type Alt-V to save the most recently completed Rx file. - -5. Fixed bug that truncated Rx messages to 16 characters. - -6. Internal program changes that should provide better user diagnostics -when necessary at program startup. - -April 11, 2013: v0.9, r3157 ---------------------------- -1. Maximum size of several window areas increased to accommodate system -fonts set larger than default. - -2. New behavior of Erase button: click once to erase the left (QSO) window, -twice to erase both decoded text windows. - -3. Keyboard shortcuts: - Alt-D: decode again at QSO frequency (same as clicking the Decode() button) - Shift-D: do another full decode in both windows - Alt-E: Erase() - Ctrl-F: Edit the free text message box - Alt-H: Halt Tx() - Alt M: Monitor() - Alt-N: Enable Tx() - Alt-Q: Log QSO() - Alt-S: Stop() - -4. New Setup options: "Tx disabled after sending 73" and "Runaway Tx -watchdog". - -5. Fixed bug in saving the "report received" for logging purposes. - -6. Corrected the logic for "Runaway Tx watchdog". - -7. Fixed bug that truncated characters 17 and 18 of decoded messages. - -April 10, 2013: v0.9, r3151 ---------------------------- -1. Blank line between decoding periods is now in the right-hand -text window, where it should be. -2. Decoding range defined by fMin and fMax is now enforced. - -April 9, 2013: v0.9, r3143 --------------------------- -This minor release restores the decoding speed of earlier revisions -and corrects a bug that prevented sending CW ID. - -April 9, 2013: v0.9, r3142 --------------------------- - -This version of WSJT-X has a number of significant changes. Please -read the following notes carefully. Also -- even if you are already -familiar with WSJT-X -- be sure to read the updated WSJT-X User's -Guide at -http://www.physics.princeton.edu/pulsar/K1JT/WSJT-X_Users_Guide.pdf , -especially pages 3 and 4. - -Changes since v0.8 r3118 include the following: - -1. There are now two scrolling windows for decoded text. The left -window contains decodes only from close to the designated QSO -frequency. The right window includes signals over the full decoding -range. - -2. An alternative set of controls is now available for generating and -selecting Tx messages. Some may find these more convenient to use -than the Tx1 through Tx6 message boxes. - -3. A number of new user options are available on the Setup menu: - - Blank line between decoding periods (right window only) - - Clear DX Call and DX Grid after logging QSO - - Display distances in miles - - Runaway Tx watchdog - - Background colors for left window - - Double-click on decoded message sets Tx Enable - -4. New or changed on-screen features - - "Tol" replaced by fMin and fMax on waterfall screen (see User's Guide) - - Spinner control for signal report - - On waterfall scale: green marker for Rx freq, red for Tx. blue - for decoding range - -5. New behavior - - "CQ DX" is now treated properly when decoded line is double-clicked - - Message formate for compound callsigns (e.g., PJ4/K1ABC, G4XYZ/P) - are now handled correctly. (Some restrictions apply, and will - be spelled out in the completed User's Guide.) - - Decode button now causes a decode only at the specified Rx frequency. - - Click on waterfall spectrum sets Rx freq; double-click also invokes - decoder (as though Decode button had been clicked). CTRL-click moves - both Rx and Tx freqs. - - Amplitude at end of transmission is ramped down to prevent a final - key click. - -6. The following bugs have been fixed: - - Logic error in decoder - - Certain non-standard Tx messages could cause a program crash. - - Certain (rarely used) messages did not pack/unpack correctly - -April 2, 2013: v0.8, r3118 --------------------------- -1. Improved interface to program JT-Alert, by VK3AMA. - -2. The LogQSO confirmation dialog no longer blocks the GUI updating - process. - -3. A blank line with gray background separates the decoded text lines for - each new invocation of the decoder. - -4. New suggested default frequencies: 5.357, 18.104, and 24.918 MHz. - Be sure to edit these entries on the 'Default Frequencies' tab of the - Setup screen. (When you have done this once, the new values will be - remembered.) - -5. The LogQSO button now does nothing is the 'DX call' entry field is - blank. - -6. Several minor bugs were fixed. - - -March 27, 2013: v0.8, r3113 ---------------------------- -1. Bug fix: VOX control of T/R switching now works. - -2. Potentially useful error messages now appear when CAT control - has failed. - -3. Added an instruction on the Log QSO confirmation screen. - -4. Clear the DXcall and DXgrid entries after logging a QSO. - -March 26, 2013: v0.8, r3112 ---------------------------- - -Edson Pereira, PY2SDR, recently became an active contributor to this -open-source project. Edson and I have been very busy over the past -few days! WSJT-X revision 3112 has many changes and new features. - -1. The GUI layout has been adjusted and optimized. - -2. CAT control is now operational, offering optional control of your - radio's dial frequency and T/R status. Go to the Setup | Options - window to select the necessary parameters. - -3. CW ID has been implemented. You can have your ID sent after a fixed - time interval, or automatically when you transmit a "73" or free - text message. - -4. Default dial frequencies are available for each band on a new tab - on the Setup | Options window. Please note: some of these - frequencies are probably wrong! You can edit them as needed. - (Please let us know if the original values are inconsistent with - actual practice on any band.) - -5. Several new options appear on the Setup menu. Try them! - -6. Azimuth and Distance information is displayed whenever a valid grid - locator appears in the "Dx Grid" box. - -7. The decoder has again been adjusted for better compromise between - sensitivity and decoding time. - -8. The User's Guide is out of date, and needs work. We hope to get to - that task soon. - -9. Very important for some would-be users: WSJT-X now runs properly - under Linux. We haven't made a package yet, so for now you must - compile your own. If you don't know how, we hope to be set up - to make packages before too long. - -10. If you know someone who might be interested in contributing to the - development of WSJT-X and related projects, please send him/her - our way! We're especially looking for someone interested in - producing packaged Linux distributions -- for example, *.deb or - *.rpm packages, but other programming help is also wanted. - -As always: please report bugs, and don't be bashful about sending us -your feature requests! - -March 22, 2013: v0.7, r3071 ---------------------------- -1. Correct a bug that (still) allowed display of previous decodes -when nothing new was decoded. - -2. Add a user confirmation screen activated when you click Log QSO. -This lets you edit or add information before it is written to the -ADIF file. - -3. Tx message macros and now available. Configure them on the Setup -window. They are invoked as a pop-up menu by right-clicking on the -Tx5 message window; then select the desired message by left-clicking -on the desired message. - -March 20, 2013: v0.7, r3063 ---------------------------- -1. Add Frequency to the generated ADIF records. - -2. Correct a decoder bug that led to duplication of previous output -when nothing new was decoded. - -March 19, 2013: v0.7, r3061 ---------------------------- -1. Allow Windows COM port numbers up to 99. - -2. Replace status files wsjtx_qrg.txt and wsjtx_txcall.txt with -a single file, wsjtx_status.txt. - -3. Combine wsjtx_rx.log and wsjtx_tx.log into a single file ALL.TXT. - -4. "Log QSO" now writes a file in ADIF format. - -5. Starting to implement popup macros for Tx message #5. - -6. Big improvement in decoding speed. - -*** More changes to come! Please report any problems, especially -*** with the ADIF-format log. - -March 12, 2013: v0.6, r3046 ---------------------------- -1. Decoded calls can now be uploaded to the PSK Reporter web site. -Check the box "Enable PSK Reporter" on the Setup screen, and go to -http://pskreporter.info/pskmap.html to see the spots. Be sure to -enter your "Dial Frequency (MHz)" at lower right of the Wide Graph -window. (Rig control features are yet to come...) - -2. Added some interfaces to permit use with the program JT-Alert, -by VK3AMA. Look for this capability in the near future. - -March 6, 2013: v0.5, r3038 --------------------------- -1. Selection of Current/Cumulative/JT9Sync for the 2d spectral display -changed to a combobox. - -2. Double-click on decoded text does not change frequency settings -if first decoded call is MyCall. - -March 1, 2013: v0.5, r3026 --------------------------- -1. The horizontal scale of 2d spectra (e.g., the "red curve") is now -correct when the user has selected FFT Bins/Pixel > 1. - -2. Double-clicking on a decoded text line now selects the second -callsign independent of exactly where one has clicked on the line. -In addition, it sets the selected frequencies (both Tx and Rx) to -the frequency of the decoded transmission. - -December 11, 2012: v0.5, r2791 ------------------------------- -1. Messages of the form "CQ DX K1ABC" are now supported. - -November 30, 2012: v0.5, r2788 ------------------------------- -1. A bug was introduced when support for positive signal reports was -added. It could cause a program crash when certain free-text messages -were composed for transmission. The bug has been fixed. - -2. In the slower JT9 sub-modes, the UTC listed on decoded text lines -has been changed to the start time of the Rx sequence, rather than the -time of the final minute. - -3. The waterfall's "Auto Zero" button had no function, and has been -removed. - -4. In previous revisions the installer put a number of DLLs into -the Windows system directory, normally C:\Windows\System32. This -revision installs the DLLs to the WSJT-X installation directory. - - -November 29, 2012: v0.5, r2786 ------------------------------- -1. In r2783, the companion program jt9.exe (started automatically when -you start WSJT-X) was a CPU hog for no good reason. This was an -oversight on my part, and the bug has been corrected. - -2. The program should now run correctly if installed in a directory -whose name contains embedded spaces. (Under Vista and Win7, however, -it's still not a good idea to install WSJT-X into C:\Program Files, -because of restricted write permissions there.) - -3. In r2783 and earlier, stopping a transmission by toggling to "Auto -OFF" would terminate Tx audio and release PTT almost simultaneously, -possibly hot-switching your T/R relay(s). This has been corrected so -that proper sequencing takes place. - - -November 28, 2012: v0.5, r2783 ------------------------------- -This revision has an unusually large number of changes relative to the -previous release, v0.4 r2746. These changes include: - -1. PTT control via COM ports COM10 and higher is enabled. - -2. Improved decoder performance: higher speed as well as better -chances of success. Moderate amounts of frequency drift are detected -and compensated. Computed S/N values are more reliable. Time offsets -from -2.5 to +5 s are now supported, which makes JT9 usable for EME. -(EME tests on 144 MHz have been successful, and performance on that -propagation mode appears to be good.) - -3. Tx Frequency now tracks the selected QSO Frequency (unless you hold -down the CTRL key when setting QSO Frequency via mouse-clicks or the -F11/F12 keys). - -4. Decoded text containing "CQ " is highlighted with green background; -text including "MyCall" is highlighted in red. - -5. In previous versions, signal reports were required to be in the -range -30 to -01 dB. In v0.5 r2782 the range has been extended to -50 -to +49 dB. There is backward compatibility for the range -30 to -01, -but reports in the range -50 to -31 and 0 to +49 will NOT be decoded -correctly by previous program versions. It is important to upgrade! - -6. Items "Save Synced" and "Save Decoded" are now implemented. - -7. UTC Date, JT9 submode, and a parameter related to the decoding -procedure are now included in file wsjtx_rx.log. - -8. Editing of Tx messages (in any of the six Tx message boxes) is -complete when you hit "Tab" or "Return". The message is then parsed -and converted to the form in which it will be displayed if decoding is -successful. Free-text messages are trimmed to 13 characters and -highlighted with a pink background. - -9. The most recent transmitted message is displayed in the right-most -label on the status bar. This can be useful if you have lost track of -where you were in a QSO. - -10. By default, the program now starts with Monitor ON. An option on -the Setup menu allows you to select "Monitor OFF at startup". - -11. Better scaling is provided for the red "JT9 Sync" curve. Note -that JT9 signals in the active sub-mode should appear in this plot as -a bump of width equal to the total signal bandwidth, with a narrow and -slightly higher bump at the left edge. The narrow bump is the -frequency of the Sync tone, which is defined as the nominal frequency -of the JT9 signal. - -12. Basic QSO information is now written to file wsjt.log when you -click the "Log QSO" button. - -13. The WSJT-X User's Guide has been updated. - -14. Other known bugs have been fixed. There will probably be new -ones! When you find one, or if you know of any old ones that have NOT -been fixed, please send me email. - -Summary of Present Status ----------------------------------------------------------------------- -I believe that WSJT-X is now a stable and very usable program. Many -thousands of QSOs have been made with JT9-1, mostly at HF -- I have -made nearly 100, myself. Also a number of QSOs have also been -completed at MF, and successful tests have been made on 2m EME, etc. -A number of QSOs have also been made with JT9-2. - -As far as I know the slower modes (JT9-5, JT9-10, and JT9-30) also -work correctly. (Certainly they do in my laboratory test setup.) -Most people will find these modes too slow for "everyday" use, and -they require high frequency stability. It remains to be seen whether -they will be widely used. - -An alternative approach to obtaining improved sensitivity would be to -give the decoder an ability to average over several successive -transmissions. For example, the average of five JT9-1 transmissions -could reach a decoding threshold around -32 dB, only 2 dB worse than a -single JT9-5 transmission. Because of QSB, the shorter transmissions -may actually succeed in less total time. Stability requirements would -be those of JT9-1, much less stringent than those of JT9-5. - -Program development is not finished, by any means. I will be grateful -for your feedback on performance issues, as well as your "wish-list" -of features to be added. As always, example recordings of files that -you think should have decoded, but did not, will be much appreciated. - -November 16, 2012: v0.4, r2746 ------------------------------- - -Changes from v0.4 r2731 include the following: - -1. Valid signal reports are now generated by double-clicking on a -callsign in the decoded text window. - -2. Consecutive spaces in a Tx message are now collapsed into a single -space. - -3. Decoding speed is much improved, especially when strong (possibly -non-JT9) signals are present and "Tol" is set to a relatively large -value. - -4. Scaling of the "JT9 Sync" plot (red curve) is more reasonable. - -5. Layout of widgets on the main window has been improved. - -6. Several minor bug fixes. - -November 14, 2012: v0.4, r2731 ------------------------------- - -A number of known bugs have been fixed, and the JT9 decoder is -significantly improved. Among other improvements, the program is now -much less fussy about timing issues. - -November 6, 2012: v0.3, r2717 ------------------------------- - -Changes from r2713 include the following: - -1. A bug in the decoder that led to erratic behavior (failed decodes) -under certain conditions has been corrected. Decoding is now much -more reliable. - -2. A valid algorithm is now used to calculate S/N values for received -JT9 signals. - -3. The header format of recorded *.wav files has been corrected. -These files will now play correctly in Windows programs that expect -the standard header. - -November 6, 2012: v0.2, r2713 ------------------------------- - -Changes from r2711 include the following: - -1. Updates to the Quick-Start User's Guide, -http://www.physics.princeton.edu/pulsar/K1JT/WSJT-X_Users_Guide.pdf - -2. Double-click on waterfall now sets Tol to a reduced -(mode-dependent) value. - -3. Tol is saved and restored on program restart. - -4. A "digital gain" slider was added next to the green-bar audio level -indicator. With the slider at mid-range, the scale reads correctly in -dB above the least significant bit of 16-bit audio data. - -5. There is now a test that rejects at least one type of data that is -sufficiently corrupt to cause Eddie's best friend, the message -"15P6715P67WCV". - -6. Several minor tweaks to improve decoder performance. - -7. The program now starts with Monitor OFF. You must click Monitor to -start accepting audio. For some types of testing, this may be an -advantage. This startup condition may be changed again, in the -future. - -October 31, 2012: v0.2, r2711 ------------------------------ - -Three significant changes since r2706: - -1. Three options are now provided on the "Decode" menu, controlling -the "depth" of the decoding process. For most purposes I suggest you -should use "Normal", but feel free to experiment with the others. - -2. Decoding of multiple signals in one Rx interval has been improved. - -3. Handling of strong signals has been improved. - -October 309, 2012: v0.2, r2706 ------------------------------- - -Changes since r2702 include the following: - -1. The problem with "ghost" signals is fixed. - -2. A problem causing very long decode times under certain -circumstances has been fixed. Please note: decode times on any recent -PC should no more than a few seconds! - -3. I have re-directed the program's fatal error messages so they will -be sent to the command-prompt window from which you started the -program. Please send me full reports on any such messages you observe, -preferably with details on how to reproduce the problem. - -######################################################################### - -Some additional information ... - -1. Yes, the JT9 modes require good stability in all system -oscillators. The present JT9 bdecoder does not attempt to track -frequency drifts. Such capability will be added, however. We have -been using digital modes for EME for nearly ten years now, at 144 MHz -and higher. There are more than 1000 WSJT users on EME, using all -kinds of rige. We have learned how to deal with reasonable rates of -drift. Surely if we can do these things at VHF, we can do them much -more easily at MF and LF. - -2. If you're sure that you have seen degraded JT9 performance because -of frequency stability issues, don't just complain on the LF -reflector. Document your case and send me an example file with a -drifting JT9 signal. Making WSJT-X and JT9 better is partly YOUR -responsibility! - -3. In other ways as well, test files are needed. I can make many -tests myself, but I can't foresee all the problems others will have. -That's what the "Save All" function is for! In these early tests, -always run with "Save All" checked, just in case you will want to -refer back to something that happened. You may want to send me the -file in question. You can always clean out your "Save" directory by -using "File | Delete all *.wav files in SaveDir". I need good -examples of signals that fail to decode for any unknown reason. Also -some good examples of atmospheric or other impulsive noise, for -testing the noise blanker. - -4. I have added a page of "Hints for New Users" to the online WSJT-X -User's Guide, -http://www.physics.princeton.edu/pulsar/K1JT/WSJT-X_Users_Guide.pdf . -Please read it! ... and let me know if you find other operational -details of WSJT-X that need explanation. This will likely be -especially true for those not already familiar with older versions of -WSJT. - -5. An operational suggestion: In many ways the different JT9 submodes -are treated as distinct modes. If you receive a JT9-x signal in a -different submode than the one you have selected, you won't decode -it. For this reason, if JT9 is to become popular we'll probably need -to choose one or two of the submodes for general use, and perhaps -assign a narrow slice of the band to each one. Note that "message -averaging" in the Rx software can make two or three JT9-2 -transmissions as good as one JT9-5 transmission, with the advantage -that you will copy sooner if signals are better than required for -JT9-5. Message averaging is not yet present in the JT9 decoder... but -in future it can be. Again, we have dealt with such issues very -effectively on EME -- and can do so at MF/LF, for sure. - -6. On the topic of CW, Beacons, WSPR, JT9, etc. I really don't -understand what all the fuss is about. Surely there is room for -everybody? Maybe I'm just too new here to understand? (Mal, is this -mostly just a matter of "Mal being Mal"???) - -On the HF bands, the WSPR sub-band is just 200 Hz wide. If we did the -same on 630 m, the WSPR sub-band would take up less than 3% of the 7 -kHz band. If that's too much, we could cut it in half, or even less, -and still have enough WSPR space. Moreover, a "slow WSPR", if -warranted, would require even less bandwidth. Similar comments apply -to JT9. The bandwidth of JT9 signals is significantly less than that -of CW, for comparable information rates. There should be enough -spectrum for both, even in our narrow MF and LF bands. - -7. As for performance comparisons between JT9 and WSPR: WSPR is a -mature program, and its decoder has been optimized and tweaked over a -period approaching five years. You are playing with JT9 in infancy. -With help (as opposed to simple complaints) from users, it will -improve rapidly. - -October 29, 2012: v0.2, r2702 ------------------------------ -Changes since version 0.1, r2696 include the following: - -1. Sample rate for audio output has been changed from 12000 to 48000 -Hz. Tx audio may now be generated at any frequency from 500 to 20000 -Hz. - -2. The Decoder now tries to decode all synchronizable signals in the -"green zone", that is, within "Tol" Hz of the selected QSO -frequency. (Before, by default it decoded only the signal producing -the highest "sync" value. Other signals could be decoded by manually -setting the QSO frequency and reducing Tol as needed.) - -3. The user's selected QSO Frequency is now saved and restored on -program restart. - -4. The problem with re-initialization after changing sub-modes has -been fixed. - -5. The problem (for some users) of not releasing PTT after end of a -transmission has been fixed. - -6. The program now writes a log of all decodes to a file wsjtx_rx.log -in the wsjtx directory. - - -October 25, 2012: v0.1, r2695 ------------------------------ -Initial version of WSJT-X (experimental WSJT) released for testing. + WSJT-X ChangeLog +------------------------------------------------------------------ + +May 30, 2013: Version 1.0, r3323 +-------------------------------- + +With this release of WSJT-X Version 1.0 we include a few (relatively +minor) enhancements in response to user requests, as well as some +program polishing and cleanup. Active program development will +continue, but new releases will become less frequent. + +1. New option on the Setup menu: "Tx freq locked to Rx freq". + +2. Double-click on a decoded "73" message now sets Tx5, rather than Tx6. + +3. New keyboard shortcuts: Alt+1 through Alt+6 set the next Tx message + at the corresponding number. + +4. PTT control via Ham Radio Deluxe has been imnplemented and tested. + +5. "Tool Tips" are now provided for most on-screen controls. + +6. Under Linux and OS X, listings of available audio devices and APIs + have been corrected. + +7. Tab order among GUI controls has been cleaned up. + +8. Updates to the WSJT-X User's Guide. + + +May 22, 2013: v0.99, r3297 +-------------------------- + +1. CAT control via Ham Radio Deluxe is now available. For setup + details see item #5 at the top of page 6 of the updated WSJT-X + User's Guide. + +2. Submodes JT9-5, JT8-10, JT9-30 have been de-activated. (As far as I + know, nobody was using them.) This action makes the program smaller + by some 150 MB and able to run effectively on some older computers. + +3. Bizarre ordering of COM port numbers on the drop-down list has been + corrected, and suitable serial ports added to the list displayed in + Linux. + +4. Gray bar between decoding periods now contains a dashed line. + +5. Corrected a bug that prevented use of Setup | Configuration with + no existing wsjtx.ini file. + +May 17, 2013: v0.95, r3278 +-------------------------- +1. Double-clicking on a decoded text line in "Band Activity" window + now copies the line into the "QSO Frequency" window if it was not + already there. + +2. Option "Color highlighting in left window" removed from Setup + menu. Highlighting is now always done. + +3. Positions of "QSO Frequency" and "Band Activity" windows have been + swapped. + +4. F4 was restored to its previous use; F5 is now used to display + Special Mouse Commands + +5. Small square between Band selector and Frequency readout was made + a control button. Orange indicates one-way CAT control from + program to radio, red indicates bi-directional control. Clicking + the orange button causes a one-time readout of dial frequency. + +6. If Save=None, the last recorded file is deleted on program exit. + This prevents unwanted accumulation of files in the Save + directory. + +7. Status-bar messages were re-arranged in a more logical order. + +8. Tx signal report was added to wsjtx_status.txt (for JT-Alert) + +9. More informative labels were placed on the "Tab 2" GUI controls. + +10. Better default scaling for the "Cumulative" spectrum. + +11. New algorithm for identifying JT9 signals to send to decoder, + resulting major improvements in decoder speed. + +12. Bug fixes: + - Incorrect displayed frequencies for JT9-2 signals + - Infinitely repeated "Error rigOpen -1" messages + - User tries to open CAT control using busy or nonexistent serial port + +13. Many updates to the User's Guide + + +May 2, 2013: v0.95, r3251 +------------------------- + +1. The "band change" function is executed whenever the Band combobox + is activated, even if the selected band has not changed. + +2. The program does not set rig mode. That task is left to the user. + +3. Time interval for polling rig frequency is now a user parameter on + the setup screen. I set mine to 1 second, which works fine with + the Kenwood TS-2000. Set it to 0 if you want no polling for + frequency (which means unidirectional CAT control from program to + radio). Choose something like 10 s for the K3. + +4. Much new work on the WSJT-X User's Guide, which is approaching its + final form for Version 1.0. Please read it and tell us about + anything you find unclear or missing! + +These changes address nearly all of the CAT issues found by a few +users -- those with K3, IC-746, IC-706, in particular. + +One additional piece of advice when running WSJT-X in Windows: connect +and turn on the radio and any interface equipment before starting +WSJT-X, and exit the program before turning such equipment off. + +April 29, 2013: v0.95, r3243 +---------------------------- + +1. Now has bi-directionsl CAT control using direct calls to hamlib + functions. Highlights displayed dial frequency with red background + if frequency differs from nominal for the selected band by more + than 100 kHz. (Is there a more useful or logical condition to + flag?) Small red square between Band selector and Dial Frequency + display to indicate that CAT control is active. Mode is set to USB + on startup. (Note: CAT control diagnostics are presently rather + rudimentary, we're still working on this. Feedback is welcome!) + +2. New controls on Setup | Configuration screen: + - RTS/DTR OFF -- needed by K2 and maybe other radios + - Data / Mic -- select CAT-control PTT type + - Test CAT Control -- try settings before returning to main screen + - Test PTT -- try settings for toggling PTT On/Off + +3. Help menu now provides displays of Keyboard Shortcuts (quick access + via F3) and Special Mouse Commands (F4). + +4. Option "Setup | Advanced | Allow multiple instances" enables the + use of more than one instance of WSJT-X for special applications. + (The program must be copied into and run from different + directories.) + +5. No posts to PSK Reporter if band was changed during the reception + period. + +6. Improved behavior of Tune button. + +7. Improved inter-process communication between WSJT-X and JT-Alert-X. + +8. Better interaction between "Report" spinner control and Tx messages. + +9. Removed the NB checkbox and slider. (Has anyone found these useful?) + +10. New buttons on main window: "Tx=Rx" sets Tx frequency to current + Rx frequency; "Rx=Tx" does the opposite. + +11. Log QSO confirmation window is now "non-modal": you can keep it + open and still access controls on the main window. + +12. Tab-order has been rationalized on most screens. + +13. Dial frequency and mode written to file ALL.TXT. + +14. Double-click on decoded line sets Tx message #3 if message has + the form "MyCall Call2 rpt". + +15. Bug causing occasional, seemingly unpredictable program crashes + has been fixed. + +16. The WSJT-X User's Guide is somewhat closer to being complete. User + feedback on the Guide will be most welcome. What is unclear? What + is missing? + +April 17, 2013: v0.9, r3195 +--------------------------- +1. Sorry, the CAT control changes in r3187/3188 were a dismal failure +in many stations, and they introduced other bugs as well. This revision +goes back to uni-directional CAT control: the program can set the +radio's dial frequency and do T/R switching, but that's all. The band +setting is not reset on program startup. + +2. Logic for the Tune button has been corrected. + +3. For Linux compile-it-yourself enthusiasts: the interface to +PSK Reporter is now working undel Linux. + +April 16, 2013: v0.9, r3188 +--------------------------- + +1. CAT control now reads and follows changes in radio's dial +frequency. Readout gets red highlighting if radio is on wrong band. +On program restart, band is reset to the last selected band. + +2. New "Tune" button generates an unmodulated carrier. Toggle button +a second time to turn Tx off. + +3. Added labels at top of "Tab 2" and enlarged the text entry fields. + +4. Fixed the broken logic for "Runaway Tx watchdog". + +5. Fixed "Prompt me to log QSO" so that it no longer requires also +setting "ID after 73". + +6. Additional changes of (eventual) interest to Linux users. Code for +sending spots to PSK Reporter now in place. + +April 13, 2013: v0.9, r3166 +--------------------------- +1. Option to send Tx messages (highlighted in yellow) to the QSO window. + +2. Prevent starting a transmission more than 24 sec into a Tx period. + +3. "Setup | Options" changed to "Setup | Configuration". + +4. Type Alt-V to save the most recently completed Rx file. + +5. Fixed bug that truncated Rx messages to 16 characters. + +6. Internal program changes that should provide better user diagnostics +when necessary at program startup. + +April 11, 2013: v0.9, r3157 +--------------------------- +1. Maximum size of several window areas increased to accommodate system +fonts set larger than default. + +2. New behavior of Erase button: click once to erase the left (QSO) window, +twice to erase both decoded text windows. + +3. Keyboard shortcuts: + Alt-D: decode again at QSO frequency (same as clicking the Decode() button) + Shift-D: do another full decode in both windows + Alt-E: Erase() + Ctrl-F: Edit the free text message box + Alt-H: Halt Tx() + Alt M: Monitor() + Alt-N: Enable Tx() + Alt-Q: Log QSO() + Alt-S: Stop() + +4. New Setup options: "Tx disabled after sending 73" and "Runaway Tx +watchdog". + +5. Fixed bug in saving the "report received" for logging purposes. + +6. Corrected the logic for "Runaway Tx watchdog". + +7. Fixed bug that truncated characters 17 and 18 of decoded messages. + +April 10, 2013: v0.9, r3151 +--------------------------- +1. Blank line between decoding periods is now in the right-hand +text window, where it should be. +2. Decoding range defined by fMin and fMax is now enforced. + +April 9, 2013: v0.9, r3143 +-------------------------- +This minor release restores the decoding speed of earlier revisions +and corrects a bug that prevented sending CW ID. + +April 9, 2013: v0.9, r3142 +-------------------------- + +This version of WSJT-X has a number of significant changes. Please +read the following notes carefully. Also -- even if you are already +familiar with WSJT-X -- be sure to read the updated WSJT-X User's +Guide at +http://www.physics.princeton.edu/pulsar/K1JT/WSJT-X_Users_Guide.pdf , +especially pages 3 and 4. + +Changes since v0.8 r3118 include the following: + +1. There are now two scrolling windows for decoded text. The left +window contains decodes only from close to the designated QSO +frequency. The right window includes signals over the full decoding +range. + +2. An alternative set of controls is now available for generating and +selecting Tx messages. Some may find these more convenient to use +than the Tx1 through Tx6 message boxes. + +3. A number of new user options are available on the Setup menu: + - Blank line between decoding periods (right window only) + - Clear DX Call and DX Grid after logging QSO + - Display distances in miles + - Runaway Tx watchdog + - Background colors for left window + - Double-click on decoded message sets Tx Enable + +4. New or changed on-screen features + - "Tol" replaced by fMin and fMax on waterfall screen (see User's Guide) + - Spinner control for signal report + - On waterfall scale: green marker for Rx freq, red for Tx. blue + for decoding range + +5. New behavior + - "CQ DX" is now treated properly when decoded line is double-clicked + - Message formate for compound callsigns (e.g., PJ4/K1ABC, G4XYZ/P) + are now handled correctly. (Some restrictions apply, and will + be spelled out in the completed User's Guide.) + - Decode button now causes a decode only at the specified Rx frequency. + - Click on waterfall spectrum sets Rx freq; double-click also invokes + decoder (as though Decode button had been clicked). CTRL-click moves + both Rx and Tx freqs. + - Amplitude at end of transmission is ramped down to prevent a final + key click. + +6. The following bugs have been fixed: + - Logic error in decoder + - Certain non-standard Tx messages could cause a program crash. + - Certain (rarely used) messages did not pack/unpack correctly + +April 2, 2013: v0.8, r3118 +-------------------------- +1. Improved interface to program JT-Alert, by VK3AMA. + +2. The LogQSO confirmation dialog no longer blocks the GUI updating + process. + +3. A blank line with gray background separates the decoded text lines for + each new invocation of the decoder. + +4. New suggested default frequencies: 5.357, 18.104, and 24.918 MHz. + Be sure to edit these entries on the 'Default Frequencies' tab of the + Setup screen. (When you have done this once, the new values will be + remembered.) + +5. The LogQSO button now does nothing is the 'DX call' entry field is + blank. + +6. Several minor bugs were fixed. + + +March 27, 2013: v0.8, r3113 +--------------------------- +1. Bug fix: VOX control of T/R switching now works. + +2. Potentially useful error messages now appear when CAT control + has failed. + +3. Added an instruction on the Log QSO confirmation screen. + +4. Clear the DXcall and DXgrid entries after logging a QSO. + +March 26, 2013: v0.8, r3112 +--------------------------- + +Edson Pereira, PY2SDR, recently became an active contributor to this +open-source project. Edson and I have been very busy over the past +few days! WSJT-X revision 3112 has many changes and new features. + +1. The GUI layout has been adjusted and optimized. + +2. CAT control is now operational, offering optional control of your + radio's dial frequency and T/R status. Go to the Setup | Options + window to select the necessary parameters. + +3. CW ID has been implemented. You can have your ID sent after a fixed + time interval, or automatically when you transmit a "73" or free + text message. + +4. Default dial frequencies are available for each band on a new tab + on the Setup | Options window. Please note: some of these + frequencies are probably wrong! You can edit them as needed. + (Please let us know if the original values are inconsistent with + actual practice on any band.) + +5. Several new options appear on the Setup menu. Try them! + +6. Azimuth and Distance information is displayed whenever a valid grid + locator appears in the "Dx Grid" box. + +7. The decoder has again been adjusted for better compromise between + sensitivity and decoding time. + +8. The User's Guide is out of date, and needs work. We hope to get to + that task soon. + +9. Very important for some would-be users: WSJT-X now runs properly + under Linux. We haven't made a package yet, so for now you must + compile your own. If you don't know how, we hope to be set up + to make packages before too long. + +10. If you know someone who might be interested in contributing to the + development of WSJT-X and related projects, please send him/her + our way! We're especially looking for someone interested in + producing packaged Linux distributions -- for example, *.deb or + *.rpm packages, but other programming help is also wanted. + +As always: please report bugs, and don't be bashful about sending us +your feature requests! + +March 22, 2013: v0.7, r3071 +--------------------------- +1. Correct a bug that (still) allowed display of previous decodes +when nothing new was decoded. + +2. Add a user confirmation screen activated when you click Log QSO. +This lets you edit or add information before it is written to the +ADIF file. + +3. Tx message macros and now available. Configure them on the Setup +window. They are invoked as a pop-up menu by right-clicking on the +Tx5 message window; then select the desired message by left-clicking +on the desired message. + +March 20, 2013: v0.7, r3063 +--------------------------- +1. Add Frequency to the generated ADIF records. + +2. Correct a decoder bug that led to duplication of previous output +when nothing new was decoded. + +March 19, 2013: v0.7, r3061 +--------------------------- +1. Allow Windows COM port numbers up to 99. + +2. Replace status files wsjtx_qrg.txt and wsjtx_txcall.txt with +a single file, wsjtx_status.txt. + +3. Combine wsjtx_rx.log and wsjtx_tx.log into a single file ALL.TXT. + +4. "Log QSO" now writes a file in ADIF format. + +5. Starting to implement popup macros for Tx message #5. + +6. Big improvement in decoding speed. + +*** More changes to come! Please report any problems, especially +*** with the ADIF-format log. + +March 12, 2013: v0.6, r3046 +--------------------------- +1. Decoded calls can now be uploaded to the PSK Reporter web site. +Check the box "Enable PSK Reporter" on the Setup screen, and go to +http://pskreporter.info/pskmap.html to see the spots. Be sure to +enter your "Dial Frequency (MHz)" at lower right of the Wide Graph +window. (Rig control features are yet to come...) + +2. Added some interfaces to permit use with the program JT-Alert, +by VK3AMA. Look for this capability in the near future. + +March 6, 2013: v0.5, r3038 +-------------------------- +1. Selection of Current/Cumulative/JT9Sync for the 2d spectral display +changed to a combobox. + +2. Double-click on decoded text does not change frequency settings +if first decoded call is MyCall. + +March 1, 2013: v0.5, r3026 +-------------------------- +1. The horizontal scale of 2d spectra (e.g., the "red curve") is now +correct when the user has selected FFT Bins/Pixel > 1. + +2. Double-clicking on a decoded text line now selects the second +callsign independent of exactly where one has clicked on the line. +In addition, it sets the selected frequencies (both Tx and Rx) to +the frequency of the decoded transmission. + +December 11, 2012: v0.5, r2791 +------------------------------ +1. Messages of the form "CQ DX K1ABC" are now supported. + +November 30, 2012: v0.5, r2788 +------------------------------ +1. A bug was introduced when support for positive signal reports was +added. It could cause a program crash when certain free-text messages +were composed for transmission. The bug has been fixed. + +2. In the slower JT9 sub-modes, the UTC listed on decoded text lines +has been changed to the start time of the Rx sequence, rather than the +time of the final minute. + +3. The waterfall's "Auto Zero" button had no function, and has been +removed. + +4. In previous revisions the installer put a number of DLLs into +the Windows system directory, normally C:\Windows\System32. This +revision installs the DLLs to the WSJT-X installation directory. + + +November 29, 2012: v0.5, r2786 +------------------------------ +1. In r2783, the companion program jt9.exe (started automatically when +you start WSJT-X) was a CPU hog for no good reason. This was an +oversight on my part, and the bug has been corrected. + +2. The program should now run correctly if installed in a directory +whose name contains embedded spaces. (Under Vista and Win7, however, +it's still not a good idea to install WSJT-X into C:\Program Files, +because of restricted write permissions there.) + +3. In r2783 and earlier, stopping a transmission by toggling to "Auto +OFF" would terminate Tx audio and release PTT almost simultaneously, +possibly hot-switching your T/R relay(s). This has been corrected so +that proper sequencing takes place. + + +November 28, 2012: v0.5, r2783 +------------------------------ +This revision has an unusually large number of changes relative to the +previous release, v0.4 r2746. These changes include: + +1. PTT control via COM ports COM10 and higher is enabled. + +2. Improved decoder performance: higher speed as well as better +chances of success. Moderate amounts of frequency drift are detected +and compensated. Computed S/N values are more reliable. Time offsets +from -2.5 to +5 s are now supported, which makes JT9 usable for EME. +(EME tests on 144 MHz have been successful, and performance on that +propagation mode appears to be good.) + +3. Tx Frequency now tracks the selected QSO Frequency (unless you hold +down the CTRL key when setting QSO Frequency via mouse-clicks or the +F11/F12 keys). + +4. Decoded text containing "CQ " is highlighted with green background; +text including "MyCall" is highlighted in red. + +5. In previous versions, signal reports were required to be in the +range -30 to -01 dB. In v0.5 r2782 the range has been extended to -50 +to +49 dB. There is backward compatibility for the range -30 to -01, +but reports in the range -50 to -31 and 0 to +49 will NOT be decoded +correctly by previous program versions. It is important to upgrade! + +6. Items "Save Synced" and "Save Decoded" are now implemented. + +7. UTC Date, JT9 submode, and a parameter related to the decoding +procedure are now included in file wsjtx_rx.log. + +8. Editing of Tx messages (in any of the six Tx message boxes) is +complete when you hit "Tab" or "Return". The message is then parsed +and converted to the form in which it will be displayed if decoding is +successful. Free-text messages are trimmed to 13 characters and +highlighted with a pink background. + +9. The most recent transmitted message is displayed in the right-most +label on the status bar. This can be useful if you have lost track of +where you were in a QSO. + +10. By default, the program now starts with Monitor ON. An option on +the Setup menu allows you to select "Monitor OFF at startup". + +11. Better scaling is provided for the red "JT9 Sync" curve. Note +that JT9 signals in the active sub-mode should appear in this plot as +a bump of width equal to the total signal bandwidth, with a narrow and +slightly higher bump at the left edge. The narrow bump is the +frequency of the Sync tone, which is defined as the nominal frequency +of the JT9 signal. + +12. Basic QSO information is now written to file wsjt.log when you +click the "Log QSO" button. + +13. The WSJT-X User's Guide has been updated. + +14. Other known bugs have been fixed. There will probably be new +ones! When you find one, or if you know of any old ones that have NOT +been fixed, please send me email. + +Summary of Present Status +---------------------------------------------------------------------- +I believe that WSJT-X is now a stable and very usable program. Many +thousands of QSOs have been made with JT9-1, mostly at HF -- I have +made nearly 100, myself. Also a number of QSOs have also been +completed at MF, and successful tests have been made on 2m EME, etc. +A number of QSOs have also been made with JT9-2. + +As far as I know the slower modes (JT9-5, JT9-10, and JT9-30) also +work correctly. (Certainly they do in my laboratory test setup.) +Most people will find these modes too slow for "everyday" use, and +they require high frequency stability. It remains to be seen whether +they will be widely used. + +An alternative approach to obtaining improved sensitivity would be to +give the decoder an ability to average over several successive +transmissions. For example, the average of five JT9-1 transmissions +could reach a decoding threshold around -32 dB, only 2 dB worse than a +single JT9-5 transmission. Because of QSB, the shorter transmissions +may actually succeed in less total time. Stability requirements would +be those of JT9-1, much less stringent than those of JT9-5. + +Program development is not finished, by any means. I will be grateful +for your feedback on performance issues, as well as your "wish-list" +of features to be added. As always, example recordings of files that +you think should have decoded, but did not, will be much appreciated. + +November 16, 2012: v0.4, r2746 +------------------------------ + +Changes from v0.4 r2731 include the following: + +1. Valid signal reports are now generated by double-clicking on a +callsign in the decoded text window. + +2. Consecutive spaces in a Tx message are now collapsed into a single +space. + +3. Decoding speed is much improved, especially when strong (possibly +non-JT9) signals are present and "Tol" is set to a relatively large +value. + +4. Scaling of the "JT9 Sync" plot (red curve) is more reasonable. + +5. Layout of widgets on the main window has been improved. + +6. Several minor bug fixes. + +November 14, 2012: v0.4, r2731 +------------------------------ + +A number of known bugs have been fixed, and the JT9 decoder is +significantly improved. Among other improvements, the program is now +much less fussy about timing issues. + +November 6, 2012: v0.3, r2717 +------------------------------ + +Changes from r2713 include the following: + +1. A bug in the decoder that led to erratic behavior (failed decodes) +under certain conditions has been corrected. Decoding is now much +more reliable. + +2. A valid algorithm is now used to calculate S/N values for received +JT9 signals. + +3. The header format of recorded *.wav files has been corrected. +These files will now play correctly in Windows programs that expect +the standard header. + +November 6, 2012: v0.2, r2713 +------------------------------ + +Changes from r2711 include the following: + +1. Updates to the Quick-Start User's Guide, +http://www.physics.princeton.edu/pulsar/K1JT/WSJT-X_Users_Guide.pdf + +2. Double-click on waterfall now sets Tol to a reduced +(mode-dependent) value. + +3. Tol is saved and restored on program restart. + +4. A "digital gain" slider was added next to the green-bar audio level +indicator. With the slider at mid-range, the scale reads correctly in +dB above the least significant bit of 16-bit audio data. + +5. There is now a test that rejects at least one type of data that is +sufficiently corrupt to cause Eddie's best friend, the message +"15P6715P67WCV". + +6. Several minor tweaks to improve decoder performance. + +7. The program now starts with Monitor OFF. You must click Monitor to +start accepting audio. For some types of testing, this may be an +advantage. This startup condition may be changed again, in the +future. + +October 31, 2012: v0.2, r2711 +----------------------------- + +Three significant changes since r2706: + +1. Three options are now provided on the "Decode" menu, controlling +the "depth" of the decoding process. For most purposes I suggest you +should use "Normal", but feel free to experiment with the others. + +2. Decoding of multiple signals in one Rx interval has been improved. + +3. Handling of strong signals has been improved. + +October 309, 2012: v0.2, r2706 +------------------------------ + +Changes since r2702 include the following: + +1. The problem with "ghost" signals is fixed. + +2. A problem causing very long decode times under certain +circumstances has been fixed. Please note: decode times on any recent +PC should no more than a few seconds! + +3. I have re-directed the program's fatal error messages so they will +be sent to the command-prompt window from which you started the +program. Please send me full reports on any such messages you observe, +preferably with details on how to reproduce the problem. + +######################################################################### + +Some additional information ... + +1. Yes, the JT9 modes require good stability in all system +oscillators. The present JT9 bdecoder does not attempt to track +frequency drifts. Such capability will be added, however. We have +been using digital modes for EME for nearly ten years now, at 144 MHz +and higher. There are more than 1000 WSJT users on EME, using all +kinds of rige. We have learned how to deal with reasonable rates of +drift. Surely if we can do these things at VHF, we can do them much +more easily at MF and LF. + +2. If you're sure that you have seen degraded JT9 performance because +of frequency stability issues, don't just complain on the LF +reflector. Document your case and send me an example file with a +drifting JT9 signal. Making WSJT-X and JT9 better is partly YOUR +responsibility! + +3. In other ways as well, test files are needed. I can make many +tests myself, but I can't foresee all the problems others will have. +That's what the "Save All" function is for! In these early tests, +always run with "Save All" checked, just in case you will want to +refer back to something that happened. You may want to send me the +file in question. You can always clean out your "Save" directory by +using "File | Delete all *.wav files in SaveDir". I need good +examples of signals that fail to decode for any unknown reason. Also +some good examples of atmospheric or other impulsive noise, for +testing the noise blanker. + +4. I have added a page of "Hints for New Users" to the online WSJT-X +User's Guide, +http://www.physics.princeton.edu/pulsar/K1JT/WSJT-X_Users_Guide.pdf . +Please read it! ... and let me know if you find other operational +details of WSJT-X that need explanation. This will likely be +especially true for those not already familiar with older versions of +WSJT. + +5. An operational suggestion: In many ways the different JT9 submodes +are treated as distinct modes. If you receive a JT9-x signal in a +different submode than the one you have selected, you won't decode +it. For this reason, if JT9 is to become popular we'll probably need +to choose one or two of the submodes for general use, and perhaps +assign a narrow slice of the band to each one. Note that "message +averaging" in the Rx software can make two or three JT9-2 +transmissions as good as one JT9-5 transmission, with the advantage +that you will copy sooner if signals are better than required for +JT9-5. Message averaging is not yet present in the JT9 decoder... but +in future it can be. Again, we have dealt with such issues very +effectively on EME -- and can do so at MF/LF, for sure. + +6. On the topic of CW, Beacons, WSPR, JT9, etc. I really don't +understand what all the fuss is about. Surely there is room for +everybody? Maybe I'm just too new here to understand? (Mal, is this +mostly just a matter of "Mal being Mal"???) + +On the HF bands, the WSPR sub-band is just 200 Hz wide. If we did the +same on 630 m, the WSPR sub-band would take up less than 3% of the 7 +kHz band. If that's too much, we could cut it in half, or even less, +and still have enough WSPR space. Moreover, a "slow WSPR", if +warranted, would require even less bandwidth. Similar comments apply +to JT9. The bandwidth of JT9 signals is significantly less than that +of CW, for comparable information rates. There should be enough +spectrum for both, even in our narrow MF and LF bands. + +7. As for performance comparisons between JT9 and WSPR: WSPR is a +mature program, and its decoder has been optimized and tweaked over a +period approaching five years. You are playing with JT9 in infancy. +With help (as opposed to simple complaints) from users, it will +improve rapidly. + +October 29, 2012: v0.2, r2702 +----------------------------- +Changes since version 0.1, r2696 include the following: + +1. Sample rate for audio output has been changed from 12000 to 48000 +Hz. Tx audio may now be generated at any frequency from 500 to 20000 +Hz. + +2. The Decoder now tries to decode all synchronizable signals in the +"green zone", that is, within "Tol" Hz of the selected QSO +frequency. (Before, by default it decoded only the signal producing +the highest "sync" value. Other signals could be decoded by manually +setting the QSO frequency and reducing Tol as needed.) + +3. The user's selected QSO Frequency is now saved and restored on +program restart. + +4. The problem with re-initialization after changing sub-modes has +been fixed. + +5. The problem (for some users) of not releasing PTT after end of a +transmission has been fixed. + +6. The program now writes a log of all decodes to a file wsjtx_rx.log +in the wsjtx directory. + + +October 25, 2012: v0.1, r2695 +----------------------------- +Initial version of WSJT-X (experimental WSJT) released for testing.
F1 Online User's Guide
Shift+F1 Copyright Notice
Ctrl+F1 About WSJT-X
F2 Open settings window
F3 Display keyboard shortcuts