mac80211: update to version 6.16
authorFelix Fietkau <[email protected]>
Mon, 4 Aug 2025 19:45:54 +0000 (21:45 +0200)
committerFelix Fietkau <[email protected]>
Wed, 13 Aug 2025 09:06:12 +0000 (11:06 +0200)
Signed-off-by: Felix Fietkau <[email protected]>
106 files changed:
package/kernel/mac80211/Makefile
package/kernel/mac80211/patches/ath10k/921-ath10k_init_devices_synchronously.patch
package/kernel/mac80211/patches/ath10k/930-ath10k_add_tpt_led_trigger.patch
package/kernel/mac80211/patches/ath10k/975-ath10k-use-tpt-trigger-by-default.patch
package/kernel/mac80211/patches/ath10k/981-ath10k-adjust-tx-power-reduction-for-US-regulatory-d.patch
package/kernel/mac80211/patches/ath10k/984-ath10k-Try-to-get-mac-address-from-dts.patch
package/kernel/mac80211/patches/ath10k/988-ath10k-always-use-mac80211-loss-detection.patch
package/kernel/mac80211/patches/ath11k/100-wifi-ath11k-use-unique-QRTR-instance-ID.patch
package/kernel/mac80211/patches/ath11k/201-wifi-ath11k-Support-setting-bdf-addr-and-caldb-addr-.patch
package/kernel/mac80211/patches/ath11k/900-ath11k-control-thermal-support-via-symbol.patch
package/kernel/mac80211/patches/ath11k/903-ath11k-support-setting-FW-memory-mode-via-DT.patch
package/kernel/mac80211/patches/ath11k/920-wifi-ath11k-add-hw-params-for-QCN6122.patch
package/kernel/mac80211/patches/ath11k/923-wifi-ath11k-update-hif_and-pci_ops-for-QCN6122.patch
package/kernel/mac80211/patches/ath11k/924-wifi-ath11k-add-multipd-support-for-QCN6122.patch
package/kernel/mac80211/patches/ath11k/931-wifi-ath11k-Support-to-assign-m3-dump-memory.patch
package/kernel/mac80211/patches/ath11k/940-ath11k-Revert-clear-the-keys-properly-when-DISABLE_K.patch
package/kernel/mac80211/patches/ath12k/001-wifi-ath12k-add-11d-scan-offload-support-and-handle-country-code-for-WCN7850.patch [deleted file]
package/kernel/mac80211/patches/ath12k/003-1-v6.16-wifi-ath12k-Pass-correct-values-of-center-freq1-and-.patch [deleted file]
package/kernel/mac80211/patches/ath12k/003-2-v6.16-wifi-ath12k-Pass-correct-values-of-center-freq1-and-.patch [deleted file]
package/kernel/mac80211/patches/ath12k/102-wifi-ath12k-limit-WMI_SCAN_CHAN_LIST_CMDID-arg.patch
package/kernel/mac80211/patches/ath12k/103-wifi-ath12k-fix-5GHz-operation-on-wideband-QCN.patch
package/kernel/mac80211/patches/ath12k/104-1-wifi-ath12k-push-HE-MU-MIMO-params-to-hardware.patch
package/kernel/mac80211/patches/ath12k/104-2-wifi-ath12k-push-EHT-MU-MIMO-params-to-hardware.patch
package/kernel/mac80211/patches/ath12k/104-3-wifi-ath12k-move-HE-MCS-mapper-to-a-separate-function.patch
package/kernel/mac80211/patches/ath12k/104-4-wifi-ath12k-generate-rx-and-tx-mcs-maps-for-supported-HE-mcs.patch
package/kernel/mac80211/patches/ath12k/104-5-wifi-ath12k-fix-TX-and-RX-MCS-rate-configurations-in-HE-mode.patch
package/kernel/mac80211/patches/ath12k/104-6-wifi-ath12k-add-support-for-setting-fixed-HE-rate-GI-LTF.patch
package/kernel/mac80211/patches/ath12k/104-7-wifi-ath12k-clean-up-80P80-support.patch
package/kernel/mac80211/patches/ath12k/104-8-wifi-ath12k-add-support-for-160-MHz-bandwidth.patch
package/kernel/mac80211/patches/ath12k/104-9-wifi-ath12k-add-extended-NSS-bandwidth-support-for-160-MHz.patch
package/kernel/mac80211/patches/ath12k/200-Revert-wifi-ath12k-convert-tasklet-to-BH-workqueue-f.patch
package/kernel/mac80211/patches/ath9k/509-ath9k-use-devm-for-irq-and-ioremap-resource.patch [deleted file]
package/kernel/mac80211/patches/ath9k/530-ath9k_extra_leds.patch
package/kernel/mac80211/patches/ath9k/548-ath9k_enable_gpio_chip.patch
package/kernel/mac80211/patches/brcm/860-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch
package/kernel/mac80211/patches/brcm/870-02-rpi-6.12-brcmfmac-Prefer-a-ccode-from-OTP-over-nvram-file.patch
package/kernel/mac80211/patches/brcm/870-03-rpi-6.12-brcmfmac-Increase-power-saving-delay-to-2s.patch
package/kernel/mac80211/patches/brcm/870-04-rpi-6.12-brcmfmac-non-upstream-support-DS1-exit-firmware-re-download.patch
package/kernel/mac80211/patches/brcm/870-05-rpi-6.12-brcmfmac-Fix-interoperating-DPP-and-other-encryption.patch
package/kernel/mac80211/patches/brcm/871-brcmfmac-disable-dump_survey-on-bcm2835.patch
package/kernel/mac80211/patches/build/100-backports-drop-QRTR-and-MHI.patch
package/kernel/mac80211/patches/build/140-trace_backport.patch
package/kernel/mac80211/patches/build/150-ath_iommu_paging_domain_revert.patch
package/kernel/mac80211/patches/build/200-iwlwifi_thermal_backport.patch
package/kernel/mac80211/patches/build/210-wireless_netns_local_backport.patch
package/kernel/mac80211/patches/build/220-brcmfmac_usb_driver_backport.patch
package/kernel/mac80211/patches/build/230-fix-init_vqs-build-error-on-kernel-6.6.patch
package/kernel/mac80211/patches/build/240-realtek-rtw88-BH-workqueue.patch
package/kernel/mac80211/patches/build/300-backports-handle-genlmsg_multicast_allns-upstream-ba.patch
package/kernel/mac80211/patches/build/410-mac80211-convert-short-fops-to-debugfs-files.patch
package/kernel/mac80211/patches/mwl/801-libertas-configure-sysfs-links.patch
package/kernel/mac80211/patches/mwl/950-mwifiex-Print-stringified-name-of-command-in-error-l.patch
package/kernel/mac80211/patches/rt2x00/110-wifi-rt2x00-fix-remove-callback-type-mismatch.patch [deleted file]
package/kernel/mac80211/patches/rt2x00/602-01-wifi-rt2x00-Add-support-for-loading-EEPROM-from-user.patch
package/kernel/mac80211/patches/rtl/065-v6.15-wifi-rtw88-Don-t-use-static-local-variable-in-rtw882.patch [deleted file]
package/kernel/mac80211/patches/rtl/066-v6.15-wifi-rtw88-Fix-a-typo-of-debug-message-in-rtw8723d_i.patch [deleted file]
package/kernel/mac80211/patches/rtl/069-v6.15-wifi-rtw88-Extend-struct-rtw_pwr_track_tbl-for-RTL88.patch [deleted file]
package/kernel/mac80211/patches/rtl/070-v6.15-wifi-rtw88-Extend-rf_base_addr-and-rf_sipi_addr-for-.patch [deleted file]
package/kernel/mac80211/patches/rtl/072-v6.15-wifi-rtw88-Constify-some-more-structs-and-arrays.patch [deleted file]
package/kernel/mac80211/patches/rtl/073-v6.15-wifi-rtw88-Rename-RTW_RATE_SECTION_MAX-to-RTW_RATE_S.patch [deleted file]
package/kernel/mac80211/patches/rtl/074-v6.15-wifi-rtw88-Extend-TX-power-stuff-for-3-4-spatial-str.patch [deleted file]
package/kernel/mac80211/patches/rtl/081-v6.15-wifi-rtw88-Fix-rtw_rx_phy_stat-for-RTL8814AU.patch [deleted file]
package/kernel/mac80211/patches/rtl/082-v6.15-wifi-rtw88-Extend-rtw_phy_config_swing_table-for-RTL.patch [deleted file]
package/kernel/mac80211/patches/rtl/083-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_phy_info-for-RTL88.patch [deleted file]
package/kernel/mac80211/patches/rtl/084-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_tx_pwr_tbl-for-RTL.patch [deleted file]
package/kernel/mac80211/patches/rtl/085-v6.15-wifi-rtw88-Add-some-definitions-for-RTL8814AU.patch [deleted file]
package/kernel/mac80211/patches/rtl/086-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-1-2.patch [deleted file]
package/kernel/mac80211/patches/rtl/087-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-2-2.patch [deleted file]
package/kernel/mac80211/patches/rtl/088-v6.15-wifi-rtw88-Add-rtw8814a.-c-h.patch [deleted file]
package/kernel/mac80211/patches/rtl/089-v6.15-wifi-rtw88-Add-rtw8814ae.c.patch [deleted file]
package/kernel/mac80211/patches/rtl/090-v6.15-wifi-rtw88-Add-rtw8814au.c.patch [deleted file]
package/kernel/mac80211/patches/rtl/091-v6.15-wifi-rtw88-Add-__nonstring-annotations-for-untermina.patch [deleted file]
package/kernel/mac80211/patches/rtl/092-v6.15-wifi-rtw88-Enable-the-new-RTL8814AE-RTL8814AU-driver.patch [deleted file]
package/kernel/mac80211/patches/rtl/093-v6.16-wifi-rtw88-sdio-Remove-redundant-flush_workqueue-cal.patch [deleted file]
package/kernel/mac80211/patches/rtl/094-v6.16-wifi-rtw88-usb-Remove-redundant-flush_workqueue-call.patch [deleted file]
package/kernel/mac80211/patches/rtl/095-v6.16-wifi-rtw88-usb-Enable-switching-the-RTL8814AU-to-USB.patch [deleted file]
package/kernel/mac80211/patches/rtl/096-v6.16-wifi-rtw88-usb-Enable-RX-aggregation-for-RTL8814AU.patch [deleted file]
package/kernel/mac80211/patches/rtl/097-v6.16-wifi-rtw88-Set-AMPDU-factor-to-hardware-for-RTL8814A.patch [deleted file]
package/kernel/mac80211/patches/rtl/098-v6.16-wifi-rtw88-Don-t-set-SUPPORTS_AMSDU_IN_AMPDU-for-RTL.patch [deleted file]
package/kernel/mac80211/patches/rtl/099-v6.16-wifi-rtw88-Fix-the-module-names-printed-in-dmesg.patch [deleted file]
package/kernel/mac80211/patches/rtl/100-v6.16-wifi-rtw88-sdio-map-mgmt-frames-to-queue-TX_DESC_QSE.patch [deleted file]
package/kernel/mac80211/patches/rtl/101-v6.16-wifi-rtw88-sdio-call-rtw_sdio_indicate_tx_status-unc.patch [deleted file]
package/kernel/mac80211/patches/rtl/102-v6.16-wifi-rtw88-do-not-ignore-hardware-read-error-during-.patch [deleted file]
package/kernel/mac80211/patches/rtl/103-v6.16-wifi-rtw88-Fix-RX-aggregation-settings-for-RTL8723DS.patch [deleted file]
package/kernel/mac80211/patches/rtl/104-v6.16-wifi-rtw88-Handle-RTL8723D-S-with-blank-efuse.patch [deleted file]
package/kernel/mac80211/patches/rtl/105-v6.16-wifi-rtw88-rtw8822bu-VID-PID-for-BUFFALO-WI-U2-866DM.patch [deleted file]
package/kernel/mac80211/patches/rtl/106-v6.16-wifi-rtw88-usb-Reduce-control-message-timeout-to-500.patch [deleted file]
package/kernel/mac80211/patches/rtl/107-v6.16-wifi-rtw88-usb-Upload-the-firmware-in-bigger-chunks.patch [deleted file]
package/kernel/mac80211/patches/rtl/108-v6.16-wifi-rtw88-Fix-the-random-error-beacon-valid-message.patch [deleted file]
package/kernel/mac80211/patches/rtl/109-v6.16-wifi-rtw88-fix-the-para-buffer-size-to-avoid-reading.patch [deleted file]
package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch
package/kernel/mac80211/patches/subsys/210-ap_scan.patch
package/kernel/mac80211/patches/subsys/220-allow-ibss-mixed.patch
package/kernel/mac80211/patches/subsys/230-avoid-crashing-missing-band.patch
package/kernel/mac80211/patches/subsys/301-mac80211-sta-randomize-BA-session-dialog-token-alloc.patch
package/kernel/mac80211/patches/subsys/305-mac80211-increase-quantum-for-airtime-scheduler.patch
package/kernel/mac80211/patches/subsys/310-cfg80211-allow-grace-period-for-DFS-available-after-.patch
package/kernel/mac80211/patches/subsys/320-mac80211-add-AQL-support-for-broadcast-packets.patch
package/kernel/mac80211/patches/subsys/330-wifi-mac80211-Do-not-schedule-stopped-TXQs.patch
package/kernel/mac80211/patches/subsys/331-wifi-mac80211-Don-t-call-fq_flow_idx-for-management-.patch
package/kernel/mac80211/patches/subsys/332-wifi-mac80211-Check-802.11-encaps-offloading-in-ieee.patch
package/kernel/mac80211/patches/subsys/333-Reapply-wifi-mac80211-Update-skb-s-control-block-key.patch
package/kernel/mac80211/patches/subsys/350-mac80211-allow-scanning-while-on-radar-channel.patch
package/kernel/mac80211/patches/subsys/360-mac80211-factor-out-part-of-ieee80211_calc_expected_.patch
package/kernel/mac80211/patches/subsys/361-mac80211-estimate-expected-throughput-if-not-provide.patch
package/kernel/mac80211/patches/subsys/400-v6.16-wifi-mac80211-do-not-offer-a-mesh-path-if-forwarding.patch [deleted file]

index 2dcd70f7e1b6dbe54aa1267ed3ffe055c0af45bf..23f639ee00ef91c664057d62c0e893ab2e692dd9 100644 (file)
@@ -10,13 +10,13 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=mac80211
 
-PKG_VERSION:=6.14.11
+PKG_VERSION:=6.16
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-2.0-only
 PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/
-PKG_HASH:=1f6620485f0b33046e87aa2c6ac04ae529e9b5e83e318652d89939b192c6e348
+PKG_HASH:=67f11320509dd18e5e2c58cb81e9f6c7d19b09f5229baa5880ed4dab71c19052
 
 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(if $(BUILD_VARIANT),$(PKG_NAME)-$(BUILD_VARIANT)/)backports-$(PKG_VERSION)
index a7e11679a3196d88f02591561a2458b794e95ecf..1fb9d5037654715dbc123b638f1847e230d1fbeb 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Sven Eckelmann <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath10k/core.c
 +++ b/drivers/net/wireless/ath/ath10k/core.c
-@@ -3539,6 +3539,16 @@ int ath10k_core_register(struct ath10k *
+@@ -3546,6 +3546,16 @@ int ath10k_core_register(struct ath10k *
  
        queue_work(ar->workqueue, &ar->register_work);
  
index ec055b20bfb7e60f34791240e1fee6d4d3c8289a..89d0c5ca37419fb961add496c715dd8b4d399839 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath10k/mac.c
 +++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -9934,6 +9934,21 @@ static int ath10k_mac_init_rd(struct ath
+@@ -9951,6 +9951,21 @@ static int ath10k_mac_init_rd(struct ath
        return 0;
  }
  
@@ -22,7 +22,7 @@
  int ath10k_mac_register(struct ath10k *ar)
  {
        static const u32 cipher_suites[] = {
-@@ -10296,6 +10311,12 @@ int ath10k_mac_register(struct ath10k *a
+@@ -10313,6 +10328,12 @@ int ath10k_mac_register(struct ath10k *a
  
        ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER;
  
index f6247f092c713255c7365d4998033a0c72da52e4..938be272ff59010c95286a90db1d8c609aede5d0 100644 (file)
@@ -40,7 +40,7 @@ Signed-off-by: Mathias Kresin <[email protected]>
        if (ret)
 --- a/drivers/net/wireless/ath/ath10k/mac.c
 +++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -10312,7 +10312,7 @@ int ath10k_mac_register(struct ath10k *a
+@@ -10329,7 +10329,7 @@ int ath10k_mac_register(struct ath10k *a
        ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER;
  
  #ifdef CPTCFG_MAC80211_LEDS
index f1770cfbe02468b6b83fb6c9b26520531b15731c..a9765022c498a8ff54703009a976dc28bb2459e0 100644 (file)
@@ -28,8 +28,8 @@ Forwarded: no
 
 --- a/drivers/net/wireless/ath/ath10k/mac.c
 +++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -1022,6 +1022,40 @@ static inline int ath10k_vdev_setup_sync
-       return ar->last_wmi_vdev_start_status;
+@@ -1043,6 +1043,40 @@ static inline int ath10k_vdev_delete_syn
+       return 0;
  }
  
 +static u32 ath10k_get_max_antenna_gain(struct ath10k *ar,
@@ -69,7 +69,7 @@ Forwarded: no
  static int ath10k_monitor_vdev_start(struct ath10k *ar, int vdev_id)
  {
        struct cfg80211_chan_def *chandef = NULL;
-@@ -1054,7 +1088,8 @@ static int ath10k_monitor_vdev_start(str
+@@ -1075,7 +1109,8 @@ static int ath10k_monitor_vdev_start(str
        arg.channel.min_power = 0;
        arg.channel.max_power = channel->max_power * 2;
        arg.channel.max_reg_power = channel->max_reg_power * 2;
@@ -79,7 +79,7 @@ Forwarded: no
  
        reinit_completion(&ar->vdev_setup_done);
        reinit_completion(&ar->vdev_delete_done);
-@@ -1500,7 +1535,8 @@ static int ath10k_vdev_start_restart(str
+@@ -1521,7 +1556,8 @@ static int ath10k_vdev_start_restart(str
        arg.channel.min_power = 0;
        arg.channel.max_power = chandef->chan->max_power * 2;
        arg.channel.max_reg_power = chandef->chan->max_reg_power * 2;
@@ -89,7 +89,7 @@ Forwarded: no
  
        if (arvif->vdev_type == WMI_VDEV_TYPE_AP) {
                arg.ssid = arvif->u.ap.ssid;
-@@ -3431,7 +3467,8 @@ static int ath10k_update_channel_list(st
+@@ -3452,7 +3488,8 @@ static int ath10k_update_channel_list(st
                        ch->min_power = 0;
                        ch->max_power = channel->max_power * 2;
                        ch->max_reg_power = channel->max_reg_power * 2;
index beec6a95eafe7415ff6106f771ad396f5a6ad103..6cb1038e2b11e77f00492bedea5e11c3bfb9e48e 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Ansuel Smith <[email protected]>
  #include <linux/property.h>
  #include <linux/dmi.h>
  #include <linux/ctype.h>
-@@ -3411,6 +3412,8 @@ static int ath10k_core_probe_fw(struct a
+@@ -3418,6 +3419,8 @@ static int ath10k_core_probe_fw(struct a
  
        device_get_mac_address(ar->dev, ar->mac_addr);
  
index cfcf5a091af065388c647e321eeff113bc0b56d5..661fc86e16f546f3e7ce794292b76541fd9c6794 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: David Bauer <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath10k/mac.c
 +++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -10104,7 +10104,6 @@ int ath10k_mac_register(struct ath10k *a
+@@ -10121,7 +10121,6 @@ int ath10k_mac_register(struct ath10k *a
        ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA);
        ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
        ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);
index 272876288b7d8375943baf93e467eed4ba048926..c2f3f737e6baa770c4f17661237f20f9e5d3ee91 100644 (file)
@@ -136,11 +136,11 @@ Signed-off-by: Robert Marko <[email protected]>
 +#define QRTR_INSTANCE_MASK                    GENMASK(7, 0)
 +
  int ath11k_mhi_start(struct ath11k_pci *ar_pci);
- void ath11k_mhi_stop(struct ath11k_pci *ar_pci);
+ void ath11k_mhi_stop(struct ath11k_pci *ar_pci, bool is_suspend);
  int ath11k_mhi_register(struct ath11k_pci *ar_pci);
 --- a/drivers/net/wireless/ath/ath11k/pci.c
 +++ b/drivers/net/wireless/ath/ath11k/pci.c
-@@ -374,13 +374,20 @@ static void ath11k_pci_sw_reset(struct a
+@@ -376,13 +376,20 @@ static void ath11k_pci_sw_reset(struct a
  static void ath11k_pci_init_qmi_ce_config(struct ath11k_base *ab)
  {
        struct ath11k_qmi_ce_cfg *cfg = &ab->qmi.ce_cfg;
index 40d3b8065c6d277e6de69474eb4085709742c008..a1ba8ec7ba143aaa57fd8750edefdcbbb77cee1e 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Ziyang Huang <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath11k/qmi.c
 +++ b/drivers/net/wireless/ath/ath11k/qmi.c
-@@ -2030,6 +2030,7 @@ static int ath11k_qmi_assign_target_mem_
+@@ -2041,6 +2041,7 @@ static int ath11k_qmi_assign_target_mem_
        struct device_node *hremote_node = NULL;
        struct resource res;
        u32 host_ddr_sz;
@@ -18,30 +18,30 @@ Signed-off-by: Ziyang Huang <[email protected]>
        int i, idx, ret;
  
        for (i = 0, idx = 0; i < ab->qmi.mem_seg_count; i++) {
-@@ -2069,7 +2070,9 @@ static int ath11k_qmi_assign_target_mem_
+@@ -2080,7 +2081,9 @@ static int ath11k_qmi_assign_target_mem_
                        idx++;
                        break;
                case BDF_MEM_REGION_TYPE:
 -                      ab->qmi.target_mem[idx].paddr = ab->hw_params.bdf_addr;
-+                      if(of_property_read_u32(dev->of_node, "qcom,bdf-addr", &addr))
++                      if (of_property_read_u32(dev->of_node, "qcom,bdf-addr", &addr))
 +                              addr = ab->hw_params.bdf_addr;
 +                      ab->qmi.target_mem[idx].paddr = addr;
-                       ab->qmi.target_mem[idx].vaddr = NULL;
+                       ab->qmi.target_mem[idx].iaddr = NULL;
                        ab->qmi.target_mem[idx].size = ab->qmi.target_mem[i].size;
                        ab->qmi.target_mem[idx].type = ab->qmi.target_mem[i].type;
-@@ -2091,8 +2094,9 @@ static int ath11k_qmi_assign_target_mem_
+@@ -2102,8 +2105,9 @@ static int ath11k_qmi_assign_target_mem_
                                        if (!ab->qmi.target_mem[idx].iaddr)
                                                return -EIO;
                                } else {
 -                                      ab->qmi.target_mem[idx].paddr =
 -                                              ATH11K_QMI_CALDB_ADDRESS;
-+                                      if(of_property_read_u32(dev->of_node, "qcom,caldb-addr", &addr))
++                                      if (of_property_read_u32(dev->of_node, "qcom,caldb-addr", &addr))
 +                                              addr = ATH11K_QMI_CALDB_ADDRESS;
 +                                      ab->qmi.target_mem[idx].paddr = addr;
+                                       ab->qmi.target_mem[idx].iaddr = NULL;
                                }
                        } else {
-                               ab->qmi.target_mem[idx].paddr = 0;
-@@ -2297,6 +2301,7 @@ static int ath11k_qmi_load_file_target_m
+@@ -2309,6 +2313,7 @@ static int ath11k_qmi_load_file_target_m
        struct qmi_wlanfw_bdf_download_resp_msg_v01 resp;
        struct qmi_txn txn;
        const u8 *temp = data;
@@ -49,7 +49,7 @@ Signed-off-by: Ziyang Huang <[email protected]>
        void __iomem *bdf_addr = NULL;
        int ret = 0;
        u32 remaining = len;
-@@ -2308,7 +2313,9 @@ static int ath11k_qmi_load_file_target_m
+@@ -2320,7 +2325,9 @@ static int ath11k_qmi_load_file_target_m
        memset(&resp, 0, sizeof(resp));
  
        if (ab->hw_params.fixed_bdf_addr) {
index fbc26cd96b3e05795453ba93a867aa24d0b65af2..264e9eb4cb287fa81c7d72b0cb5ffad4695f9a13 100644 (file)
@@ -42,7 +42,7 @@ Signed-off-by: Robert Marko <[email protected]>
 +ath11k-$(CPTCFG_ATH11K_THERMAL) += thermal.o
  ath11k-$(CPTCFG_ATH11K_SPECTRAL) += spectral.o
  ath11k-$(CONFIG_PM) += wow.o
+ ath11k-$(CONFIG_DEV_COREDUMP) += coredump.o
 --- a/drivers/net/wireless/ath/ath11k/thermal.h
 +++ b/drivers/net/wireless/ath/ath11k/thermal.h
 @@ -26,7 +26,7 @@ struct ath11k_thermal {
@@ -62,5 +62,5 @@ Signed-off-by: Robert Marko <[email protected]>
  ATH11K_SPECTRAL=
 +ATH11K_THERMAL=
  ATH12K=
+ ATH12K_AHB=
  ATH12K_DEBUG=
- ATH12K_DEBUGFS=
index 4b1bd698630e8658fe3a5b83f9317908efe62576..fa9c0052549150a7132c01d622daabc285412d21 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Robert Marko <[email protected]>
        {
                .hw_rev = ATH11K_HW_IPQ8074,
                .name = "ipq8074 hw2.0",
-@@ -2280,7 +2280,8 @@ static void ath11k_core_reset(struct wor
+@@ -2481,7 +2481,8 @@ static void ath11k_core_reset(struct wor
  static int ath11k_init_hw_params(struct ath11k_base *ab)
  {
        const struct ath11k_hw_params *hw_params = NULL;
@@ -41,7 +41,7 @@ Signed-off-by: Robert Marko <[email protected]>
  
        for (i = 0; i < ARRAY_SIZE(ath11k_hw_params); i++) {
                hw_params = &ath11k_hw_params[i];
-@@ -2296,7 +2297,31 @@ static int ath11k_init_hw_params(struct
+@@ -2497,7 +2498,31 @@ static int ath11k_init_hw_params(struct
  
        ab->hw_params = *hw_params;
  
index a428684cba6f34f6d9a056aa6c192e0af171c3b5..cb173d2c4f9226167797bd019471a1b676d89405 100644 (file)
@@ -92,10 +92,10 @@ Signed-off-by: George Moussalem <[email protected]>
 +      },
  };
  
- static inline struct ath11k_pdev *ath11k_core_get_single_pdev(struct ath11k_base *ab)
+ static const struct dmi_system_id ath11k_pm_quirk_table[] = {
 --- a/drivers/net/wireless/ath/ath11k/core.h
 +++ b/drivers/net/wireless/ath/ath11k/core.h
-@@ -149,6 +149,7 @@ enum ath11k_hw_rev {
+@@ -151,6 +151,7 @@ enum ath11k_hw_rev {
        ATH11K_HW_IPQ5018_HW10,
        ATH11K_HW_QCA2066_HW21,
        ATH11K_HW_QCA6698AQ_HW21,
index 07eaf872798d5065028510ef0ec343cd91197060..fd4922b8cba72721997640eb7a00daca2b55caa1 100644 (file)
@@ -68,16 +68,16 @@ Signed-off-by: George Moussalem <[email protected]>
                return -EOPNOTSUPP;
 --- a/drivers/net/wireless/ath/ath11k/hif.h
 +++ b/drivers/net/wireless/ath/ath11k/hif.h
-@@ -31,6 +31,7 @@ struct ath11k_hif_ops {
-       void (*ce_irq_enable)(struct ath11k_base *ab);
+@@ -32,6 +32,7 @@ struct ath11k_hif_ops {
        void (*ce_irq_disable)(struct ath11k_base *ab);
        void (*get_ce_msi_idx)(struct ath11k_base *ab, u32 ce_id, u32 *msi_idx);
+       void (*coredump_download)(struct ath11k_base *ab);
 +      void (*config_static_window)(struct ath11k_base *ab);
  };
  
  static inline void ath11k_hif_ce_irq_enable(struct ath11k_base *ab)
-@@ -146,4 +147,12 @@ static inline void ath11k_get_ce_msi_idx
-               *msi_data_idx = ce_id;
+@@ -159,4 +160,12 @@ static inline void ath11k_hif_coredump_d
+               ab->hif.ops->coredump_download(ab);
  }
  
 +static inline void ath11k_hif_config_static_window(struct ath11k_base *ab)
@@ -91,7 +91,7 @@ Signed-off-by: George Moussalem <[email protected]>
  #endif /* _HIF_H_ */
 --- a/drivers/net/wireless/ath/ath11k/qmi.c
 +++ b/drivers/net/wireless/ath/ath11k/qmi.c
-@@ -2189,6 +2189,8 @@ static int ath11k_qmi_request_device_inf
+@@ -2201,6 +2201,8 @@ static int ath11k_qmi_request_device_inf
        if (!ab->hw_params.ce_remap)
                ab->mem_ce = ab->mem;
  
index e73b8da3795b4303072a15311463969edc66193a..e67e4a7e8b6e7805bb52882de6070750d3b39f40 100644 (file)
@@ -79,7 +79,7 @@ Signed-off-by: George Moussalem <[email protected]>
  
 --- a/drivers/net/wireless/ath/ath11k/core.h
 +++ b/drivers/net/wireless/ath/ath11k/core.h
-@@ -45,6 +45,9 @@
+@@ -47,6 +47,9 @@
  #define ATH11K_INVALID_HW_MAC_ID      0xFF
  #define ATH11K_CONNECTION_LOSS_HZ     (3 * HZ)
  
@@ -89,7 +89,7 @@ Signed-off-by: George Moussalem <[email protected]>
  /* SMBIOS type containing Board Data File Name Extension */
  #define ATH11K_SMBIOS_BDF_EXT_TYPE 0xF8
  
-@@ -952,6 +955,7 @@ struct ath11k_base {
+@@ -966,6 +969,7 @@ struct ath11k_base {
        struct list_head peers;
        wait_queue_head_t peer_mapping_wq;
        u8 mac_addr[ETH_ALEN];
@@ -99,7 +99,7 @@ Signed-off-by: George Moussalem <[email protected]>
        struct ath11k_targ_cap target_caps;
 --- a/drivers/net/wireless/ath/ath11k/pci.c
 +++ b/drivers/net/wireless/ath/ath11k/pci.c
-@@ -389,6 +389,8 @@ static void ath11k_pci_init_qmi_ce_confi
+@@ -391,6 +391,8 @@ static void ath11k_pci_init_qmi_ce_confi
        } else
                ab->qmi.service_ins_id = ab->hw_params.qmi_service_ins_id;
  
index 3339cfc43c7b70a34b688050e60e97f4c7eb0a2f..6888b9a3645bfcf1031f2a7303eb8335ea718b7e 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Ziyang Huang <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath11k/qmi.c
 +++ b/drivers/net/wireless/ath/ath11k/qmi.c
-@@ -2106,6 +2106,18 @@ static int ath11k_qmi_assign_target_mem_
+@@ -2118,6 +2118,18 @@ static int ath11k_qmi_assign_target_mem_
                        ab->qmi.target_mem[idx].type = ab->qmi.target_mem[i].type;
                        idx++;
                        break;
index 352e68fcecabbd2a456fb9c46b7820ddeac8bb73..1f0b63c81b7ff567f2b349b30d46b4f55aa66e7a 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Rameshkumar Sundaram <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath11k/mac.c
 +++ b/drivers/net/wireless/ath/ath11k/mac.c
-@@ -4220,7 +4220,9 @@ static int ath11k_install_key(struct ath
+@@ -4232,7 +4232,9 @@ static int ath11k_install_key(struct ath
                return 0;
  
        if (cmd == DISABLE_KEY) {
diff --git a/package/kernel/mac80211/patches/ath12k/001-wifi-ath12k-add-11d-scan-offload-support-and-handle-country-code-for-WCN7850.patch b/package/kernel/mac80211/patches/ath12k/001-wifi-ath12k-add-11d-scan-offload-support-and-handle-country-code-for-WCN7850.patch
deleted file mode 100644 (file)
index e93a591..0000000
+++ /dev/null
@@ -1,924 +0,0 @@
-From patchwork Thu Sep  5 02:35:08 2024
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Kang Yang <[email protected]>
-X-Patchwork-Id: 13791624
-X-Patchwork-Delegate: [email protected]
-Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
- [205.220.180.131])
-       (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
-       (No client certificate requested)
-       by smtp.subspace.kernel.org (Postfix) with ESMTPS id D313D33CFC
-       for <[email protected]>; Thu,  5 Sep 2024 02:36:17 +0000 (UTC)
-Authentication-Results: smtp.subspace.kernel.org;
- arc=none smtp.client-ip=205.220.180.131
-ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
-       t=1725503779; cv=none;
- b=blv4mH95IN2AR7Rt90gw/V7DnZRtr3upgAP50X6ew3jh0CusPG6/OTO9CSJVthJnqHU3Y3GT88jaeMzb9+f2xzqgl7+E35TmwN3uf6dFmbp7CD8LL0W6xu76ZZgFGxzRspv9YoVy/fydZY6I4JRc2faWqI540+n9bHEXdSJTZMM=
-ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org;
-       s=arc-20240116; t=1725503779; c=relaxed/simple;
-       bh=vjzfDc6UXtw2Li6Q3bAgcW0K1rcTpi3dAxkQgbT5ogI=;
-       h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:
-        MIME-Version:Content-Type;
- b=VMgF0PfIOoXmfB6EARb/O+dooXutjAm/cnemJ0RC7uc8TSIAusH1ffc6jF1XndEp+nPTWnuMQ5/d1cE/bPeIvSTxrtWaUepnKNjQDrNKm4NrqmjR446CT9t0VHG16RZ1cmCmU74qXnfgus4XfTqD093lc1N5Q/YRh/kwmcCzxhY=
-ARC-Authentication-Results: i=1; smtp.subspace.kernel.org;
- dmarc=pass (p=none dis=none) header.from=quicinc.com;
- spf=pass smtp.mailfrom=quicinc.com;
- dkim=pass (2048-bit key) header.d=quicinc.com [email protected]
- header.b=E5hktrdm; arc=none smtp.client-ip=205.220.180.131
-Authentication-Results: smtp.subspace.kernel.org;
- dmarc=pass (p=none dis=none) header.from=quicinc.com
-Authentication-Results: smtp.subspace.kernel.org;
- spf=pass smtp.mailfrom=quicinc.com
-Authentication-Results: smtp.subspace.kernel.org;
-       dkim=pass (2048-bit key) header.d=quicinc.com [email protected]
- header.b="E5hktrdm"
-Received: from pps.filterd (m0279869.ppops.net [127.0.0.1])
-       by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id
- 484MRZwS008193;
-       Thu, 5 Sep 2024 02:36:12 GMT
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=
-       cc:content-transfer-encoding:content-type:date:from:in-reply-to
-       :message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
-       No6X3gHpioHamjfMDccV8LJEZBGk/uDqbZ/fuGUTvJM=; b=E5hktrdmmOb3KcP6
-       Qi3M5Y06Yd8RxNJTps8WMEoXZ7xzROVuhmRmlG/mw21NjBMTTMgtjcaen/n8Anj3
-       Ash1VFK6s7PrLcwoUT/uui6hzleGE+X9Wh8DJXYnZKKWmeQ+8E0yEzNR0kt9FG0n
-       S+asFc8VYEJHid6QDNAfM9e4JqJgU3NGXYJBTBM2lpdbqeWU7LEYnVTGCqvOPaH2
-       K+QDwvNiNeXlqbaxnqCYimUrSDnTbSUoiVxSpTe9/muWWAB+6YuUbXRfTceqgcd1
-       xFIOE1KrtAowMOk5mO3tn6Tjl7nJzewVUm9hncBRfynP8k2jt1xosMezL42dmb56
-       a9VWLQ==
-Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com
- [129.46.96.20])
-       by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 41bt674mq1-1
-       (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
-       Thu, 05 Sep 2024 02:36:11 +0000 (GMT)
-Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com
- [10.47.209.197])
-       by NALASPPMTA03.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id
- 4852aAdV010181
-       (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
-       Thu, 5 Sep 2024 02:36:10 GMT
-Received: from kangyang.ap.qualcomm.com (10.80.80.8) by
- nalasex01b.na.qualcomm.com (10.47.209.197) with Microsoft SMTP Server
- (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
- 15.2.1544.9; Wed, 4 Sep 2024 19:36:09 -0700
-From: Kang Yang <[email protected]>
-Subject: [PATCH v3 1/4] wifi: ath12k: add configure country code for WCN7850
-Date: Thu, 5 Sep 2024 10:35:08 +0800
-Message-ID: <[email protected]>
-X-Mailer: git-send-email 2.34.1.windows.1
-In-Reply-To: <[email protected]>
-References: <[email protected]>
-Precedence: bulk
-X-Mailing-List: [email protected]
-List-Id: <linux-wireless.vger.kernel.org>
-List-Subscribe: <mailto:[email protected]>
-List-Unsubscribe: <mailto:[email protected]>
-MIME-Version: 1.0
-X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To
- nalasex01b.na.qualcomm.com (10.47.209.197)
-X-QCInternal: smtphost
-X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800
- signatures=585085
-X-Proofpoint-ORIG-GUID: FzfHe7cZy6IUVu8IKORVKLxkYG9f8WUl
-X-Proofpoint-GUID: FzfHe7cZy6IUVu8IKORVKLxkYG9f8WUl
-X-Proofpoint-Virus-Version: vendor=baseguard
- engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29
- definitions=2024-09-05_01,2024-09-04_01,2024-09-02_01
-X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
- malwarescore=0 adultscore=0
- bulkscore=0 mlxscore=0 impostorscore=0 suspectscore=0 phishscore=0
- mlxlogscore=999 lowpriorityscore=0 spamscore=0 clxscore=1015
- priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1
- engine=8.19.0-2407110000 definitions=main-2409050018
-
-From: Wen Gong <[email protected]>
-
-Add handler to send WMI_SET_CURRENT_COUNTRY_CMDID to firmware, which
-is used for WCN7850 to update country code.
-
-Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
-
-Signed-off-by: Wen Gong <[email protected]>
-Signed-off-by: Kang Yang <[email protected]>
-Acked-by: Jeff Johnson <[email protected]>
----
- drivers/net/wireless/ath/ath12k/wmi.c | 36 +++++++++++++++++++++++++++
- drivers/net/wireless/ath/ath12k/wmi.h | 13 ++++++++++
- 2 files changed, 49 insertions(+)
-
---- a/drivers/net/wireless/ath/ath12k/wmi.c
-+++ b/drivers/net/wireless/ath/ath12k/wmi.c
-@@ -171,6 +171,8 @@ static const struct ath12k_wmi_tlv_polic
-               .min_len = sizeof(struct ath12k_wmi_p2p_noa_info) },
-       [WMI_TAG_P2P_NOA_EVENT] = {
-               .min_len = sizeof(struct wmi_p2p_noa_event) },
-+      [WMI_TAG_11D_NEW_COUNTRY_EVENT] = {
-+              .min_len = sizeof(struct wmi_11d_new_cc_event) },
- };
- static __le32 ath12k_wmi_tlv_hdr(u32 cmd, u32 len)
-@@ -2531,7 +2533,10 @@ int ath12k_wmi_send_scan_start_cmd(struc
-       cmd->scan_id = cpu_to_le32(arg->scan_id);
-       cmd->scan_req_id = cpu_to_le32(arg->scan_req_id);
-       cmd->vdev_id = cpu_to_le32(arg->vdev_id);
--      cmd->scan_priority = cpu_to_le32(arg->scan_priority);
-+      if (ar->state_11d == ATH12K_11D_PREPARING)
-+              arg->scan_priority = WMI_SCAN_PRIORITY_MEDIUM;
-+      else
-+              arg->scan_priority = WMI_SCAN_PRIORITY_LOW;
-       cmd->notify_scan_events = cpu_to_le32(arg->notify_scan_events);
-       ath12k_wmi_copy_scan_event_cntrl_flags(cmd, arg);
-@@ -3253,6 +3258,110 @@ out:
-       return ret;
- }
-+int ath12k_wmi_send_set_current_country_cmd(struct ath12k *ar,
-+                                          struct wmi_set_current_country_arg *arg)
-+{
-+      struct ath12k_wmi_pdev *wmi = ar->wmi;
-+      struct wmi_set_current_country_cmd *cmd;
-+      struct sk_buff *skb;
-+      int ret;
-+
-+      skb = ath12k_wmi_alloc_skb(wmi->wmi_ab, sizeof(*cmd));
-+      if (!skb)
-+              return -ENOMEM;
-+
-+      cmd = (struct wmi_set_current_country_cmd *)skb->data;
-+      cmd->tlv_header =
-+              ath12k_wmi_tlv_cmd_hdr(WMI_TAG_SET_CURRENT_COUNTRY_CMD,
-+                                     sizeof(*cmd));
-+
-+      cmd->pdev_id = cpu_to_le32(ar->pdev->pdev_id);
-+      memcpy(&cmd->new_alpha2, &arg->alpha2, sizeof(arg->alpha2));
-+      ret = ath12k_wmi_cmd_send(wmi, skb, WMI_SET_CURRENT_COUNTRY_CMDID);
-+
-+      ath12k_dbg(ar->ab, ATH12K_DBG_WMI,
-+                 "set current country pdev id %d alpha2 %c%c\n",
-+                 ar->pdev->pdev_id,
-+                 arg->alpha2[0],
-+                 arg->alpha2[1]);
-+
-+      if (ret) {
-+              ath12k_warn(ar->ab,
-+                          "failed to send WMI_SET_CURRENT_COUNTRY_CMDID: %d\n", ret);
-+              dev_kfree_skb(skb);
-+      }
-+
-+      return ret;
-+}
-+
-+int ath12k_wmi_send_11d_scan_start_cmd(struct ath12k *ar,
-+                                     struct wmi_11d_scan_start_arg *arg)
-+{
-+      struct ath12k_wmi_pdev *wmi = ar->wmi;
-+      struct wmi_11d_scan_start_cmd *cmd;
-+      struct sk_buff *skb;
-+      int ret;
-+
-+      skb = ath12k_wmi_alloc_skb(wmi->wmi_ab, sizeof(*cmd));
-+      if (!skb)
-+              return -ENOMEM;
-+
-+      cmd = (struct wmi_11d_scan_start_cmd *)skb->data;
-+      cmd->tlv_header =
-+              ath12k_wmi_tlv_cmd_hdr(WMI_TAG_11D_SCAN_START_CMD,
-+                                     sizeof(*cmd));
-+
-+      cmd->vdev_id = cpu_to_le32(arg->vdev_id);
-+      cmd->scan_period_msec = cpu_to_le32(arg->scan_period_msec);
-+      cmd->start_interval_msec = cpu_to_le32(arg->start_interval_msec);
-+      ret = ath12k_wmi_cmd_send(wmi, skb, WMI_11D_SCAN_START_CMDID);
-+
-+      ath12k_dbg(ar->ab, ATH12K_DBG_WMI,
-+                 "send 11d scan start vdev id %d period %d ms internal %d ms\n",
-+                 arg->vdev_id, arg->scan_period_msec,
-+                 arg->start_interval_msec);
-+
-+      if (ret) {
-+              ath12k_warn(ar->ab,
-+                          "failed to send WMI_11D_SCAN_START_CMDID: %d\n", ret);
-+              dev_kfree_skb(skb);
-+      }
-+
-+      return ret;
-+}
-+
-+int ath12k_wmi_send_11d_scan_stop_cmd(struct ath12k *ar, u32 vdev_id)
-+{
-+      struct ath12k_wmi_pdev *wmi = ar->wmi;
-+      struct wmi_11d_scan_stop_cmd *cmd;
-+      struct sk_buff *skb;
-+      int ret;
-+
-+      skb = ath12k_wmi_alloc_skb(wmi->wmi_ab, sizeof(*cmd));
-+      if (!skb)
-+              return -ENOMEM;
-+
-+      cmd = (struct wmi_11d_scan_stop_cmd *)skb->data;
-+      cmd->tlv_header =
-+              ath12k_wmi_tlv_cmd_hdr(WMI_TAG_11D_SCAN_STOP_CMD,
-+                                     sizeof(*cmd));
-+
-+      cmd->vdev_id = cpu_to_le32(vdev_id);
-+      ret = ath12k_wmi_cmd_send(wmi, skb, WMI_11D_SCAN_STOP_CMDID);
-+
-+      ath12k_dbg(ar->ab, ATH12K_DBG_WMI,
-+                 "send 11d scan stop vdev id %d\n",
-+                 cmd->vdev_id);
-+
-+      if (ret) {
-+              ath12k_warn(ar->ab,
-+                          "failed to send WMI_11D_SCAN_STOP_CMDID: %d\n", ret);
-+              dev_kfree_skb(skb);
-+      }
-+
-+      return ret;
-+}
-+
- int
- ath12k_wmi_send_twt_enable_cmd(struct ath12k *ar, u32 pdev_id)
- {
-@@ -5873,6 +5982,50 @@ static void ath12k_wmi_op_ep_tx_credits(
-       wake_up(&ab->wmi_ab.tx_credits_wq);
- }
-+static int ath12k_reg_11d_new_cc_event(struct ath12k_base *ab, struct sk_buff *skb)
-+{
-+      const struct wmi_11d_new_cc_event *ev;
-+      struct ath12k *ar;
-+      struct ath12k_pdev *pdev;
-+      const void **tb;
-+      int ret, i;
-+
-+      tb = ath12k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC);
-+      if (IS_ERR(tb)) {
-+              ret = PTR_ERR(tb);
-+              ath12k_warn(ab, "failed to parse tlv: %d\n", ret);
-+              return ret;
-+      }
-+
-+      ev = tb[WMI_TAG_11D_NEW_COUNTRY_EVENT];
-+      if (!ev) {
-+              kfree(tb);
-+              ath12k_warn(ab, "failed to fetch 11d new cc ev");
-+              return -EPROTO;
-+      }
-+
-+      spin_lock_bh(&ab->base_lock);
-+      memcpy(&ab->new_alpha2, &ev->new_alpha2, REG_ALPHA2_LEN);
-+      spin_unlock_bh(&ab->base_lock);
-+
-+      ath12k_dbg(ab, ATH12K_DBG_WMI, "wmi 11d new cc %c%c\n",
-+                 ab->new_alpha2[0],
-+                 ab->new_alpha2[1]);
-+
-+      kfree(tb);
-+
-+      for (i = 0; i < ab->num_radios; i++) {
-+              pdev = &ab->pdevs[i];
-+              ar = pdev->ar;
-+              ar->state_11d = ATH12K_11D_IDLE;
-+              complete(&ar->completed_11d_scan);
-+      }
-+
-+      queue_work(ab->workqueue, &ab->update_11d_work);
-+
-+      return 0;
-+}
-+
- static void ath12k_wmi_htc_tx_complete(struct ath12k_base *ab,
-                                      struct sk_buff *skb)
- {
-@@ -7586,6 +7739,9 @@ static void ath12k_wmi_op_rx(struct ath1
-       case WMI_OBSS_COLOR_COLLISION_DETECTION_EVENTID:
-               /* debug might flood hence silently ignore (no-op) */
-               break;
-+      case WMI_11D_NEW_COUNTRY_EVENTID:
-+              ath12k_reg_11d_new_cc_event(ab, skb);
-+              break;
-       /* TODO: Add remaining events */
-       default:
-               ath12k_dbg(ab, ATH12K_DBG_WMI, "Unknown eventid: 0x%x\n", id);
---- a/drivers/net/wireless/ath/ath12k/wmi.h
-+++ b/drivers/net/wireless/ath/ath12k/wmi.h
-@@ -3990,6 +3990,28 @@ struct wmi_init_country_cmd {
-       } cc_info;
- } __packed;
-+struct wmi_11d_scan_start_arg {
-+      u32 vdev_id;
-+      u32 scan_period_msec;
-+      u32 start_interval_msec;
-+};
-+
-+struct wmi_11d_scan_start_cmd {
-+      __le32 tlv_header;
-+      __le32 vdev_id;
-+      __le32 scan_period_msec;
-+      __le32 start_interval_msec;
-+} __packed;
-+
-+struct wmi_11d_scan_stop_cmd {
-+      __le32 tlv_header;
-+      __le32 vdev_id;
-+} __packed;
-+
-+struct wmi_11d_new_cc_event {
-+      __le32 new_alpha2;
-+} __packed;
-+
- struct wmi_delba_send_cmd {
-       __le32 tlv_header;
-       __le32 vdev_id;
-@@ -4074,6 +4096,16 @@ struct ath12k_wmi_eht_rate_set_params {
- #define REG_ALPHA2_LEN 2
- #define MAX_6G_REG_RULES 5
-+struct wmi_set_current_country_arg {
-+      u8 alpha2[REG_ALPHA2_LEN];
-+};
-+
-+struct wmi_set_current_country_cmd {
-+      __le32 tlv_header;
-+      __le32 pdev_id;
-+      __le32 new_alpha2;
-+} __packed;
-+
- enum wmi_start_event_param {
-       WMI_VDEV_START_RESP_EVENT = 0,
-       WMI_VDEV_RESTART_RESP_EVENT,
-@@ -5714,11 +5746,17 @@ int ath12k_wmi_send_bcn_offload_control_
-                                           u32 vdev_id, u32 bcn_ctrl_op);
- int ath12k_wmi_send_init_country_cmd(struct ath12k *ar,
-                                    struct ath12k_wmi_init_country_arg *arg);
-+int
-+ath12k_wmi_send_set_current_country_cmd(struct ath12k *ar,
-+                                      struct wmi_set_current_country_arg *arg);
- int ath12k_wmi_peer_rx_reorder_queue_setup(struct ath12k *ar,
-                                          int vdev_id, const u8 *addr,
-                                          dma_addr_t paddr, u8 tid,
-                                          u8 ba_window_size_valid,
-                                          u32 ba_window_size);
-+int ath12k_wmi_send_11d_scan_start_cmd(struct ath12k *ar,
-+                                     struct wmi_11d_scan_start_arg *arg);
-+int ath12k_wmi_send_11d_scan_stop_cmd(struct ath12k *ar, u32 vdev_id);
- int
- ath12k_wmi_rx_reord_queue_remove(struct ath12k *ar,
-                                struct ath12k_wmi_rx_reorder_queue_remove_arg *arg);
---- a/drivers/net/wireless/ath/ath12k/core.c
-+++ b/drivers/net/wireless/ath/ath12k/core.c
-@@ -1251,6 +1251,7 @@ void ath12k_core_halt(struct ath12k *ar)
-       cancel_delayed_work_sync(&ar->scan.timeout);
-       cancel_work_sync(&ar->regd_update_work);
-       cancel_work_sync(&ab->rfkill_work);
-+      cancel_work_sync(&ab->update_11d_work);
-       rcu_assign_pointer(ab->pdevs_active[ar->pdev_idx], NULL);
-       synchronize_rcu();
-@@ -1258,6 +1259,34 @@ void ath12k_core_halt(struct ath12k *ar)
-       idr_init(&ar->txmgmt_idr);
- }
-+static void ath12k_update_11d(struct work_struct *work)
-+{
-+      struct ath12k_base *ab = container_of(work, struct ath12k_base, update_11d_work);
-+      struct ath12k *ar;
-+      struct ath12k_pdev *pdev;
-+      struct wmi_set_current_country_arg arg = {};
-+      int ret, i;
-+
-+      spin_lock_bh(&ab->base_lock);
-+      memcpy(&arg.alpha2, &ab->new_alpha2, 2);
-+      spin_unlock_bh(&ab->base_lock);
-+
-+      ath12k_dbg(ab, ATH12K_DBG_WMI, "update 11d new cc %c%c\n",
-+                 arg.alpha2[0], arg.alpha2[1]);
-+
-+      for (i = 0; i < ab->num_radios; i++) {
-+              pdev = &ab->pdevs[i];
-+              ar = pdev->ar;
-+
-+              memcpy(&ar->alpha2, &arg.alpha2, 2);
-+              ret = ath12k_wmi_send_set_current_country_cmd(ar, &arg);
-+              if (ret)
-+                      ath12k_warn(ar->ab,
-+                                  "pdev id %d failed set current country code: %d\n",
-+                                  i, ret);
-+      }
-+}
-+
- static void ath12k_core_pre_reconfigure_recovery(struct ath12k_base *ab)
- {
-       struct ath12k_hw_group *ag = ab->ag;
-@@ -1283,8 +1312,10 @@ static void ath12k_core_pre_reconfigure_
-                       ar = &ah->radio[j];
-                       ath12k_mac_drain_tx(ar);
-+                      ar->state_11d = ATH12K_11D_IDLE;
-+                      complete(&ar->completed_11d_scan);
-                       complete(&ar->scan.started);
--                      complete(&ar->scan.completed);
-+                      complete_all(&ar->scan.completed);
-                       complete(&ar->scan.on_channel);
-                       complete(&ar->peer_assoc_done);
-                       complete(&ar->peer_delete_done);
-@@ -1953,6 +1984,7 @@ struct ath12k_base *ath12k_core_alloc(st
-       INIT_WORK(&ab->reset_work, ath12k_core_reset);
-       INIT_WORK(&ab->rfkill_work, ath12k_rfkill_work);
-       INIT_WORK(&ab->dump_work, ath12k_coredump_upload);
-+      INIT_WORK(&ab->update_11d_work, ath12k_update_11d);
-       timer_setup(&ab->rx_replenish_retry, ath12k_ce_rx_replenish_retry, 0);
-       init_completion(&ab->htc_suspend);
---- a/drivers/net/wireless/ath/ath12k/core.h
-+++ b/drivers/net/wireless/ath/ath12k/core.h
-@@ -224,6 +224,12 @@ enum ath12k_hw_group_flags {
-       ATH12K_GROUP_FLAG_UNREGISTER,
- };
-+enum ath12k_11d_state {
-+      ATH12K_11D_IDLE,
-+      ATH12K_11D_PREPARING,
-+      ATH12K_11D_RUNNING,
-+};
-+
- enum ath12k_dev_flags {
-       ATH12K_FLAG_CAC_RUNNING,
-       ATH12K_FLAG_CRASH_FLUSH,
-@@ -361,6 +367,8 @@ struct ath12k_vif_iter {
- #define ATH12K_RX_RATE_TABLE_11AX_NUM 576
- #define ATH12K_RX_RATE_TABLE_NUM 320
-+#define ATH12K_SCAN_TIMEOUT_HZ (20 * HZ)
-+
- struct ath12k_rx_peer_rate_stats {
-       u64 ht_mcs_count[HAL_RX_MAX_MCS_HT + 1];
-       u64 vht_mcs_count[HAL_RX_MAX_MCS_VHT + 1];
-@@ -713,6 +721,13 @@ struct ath12k {
-       struct wiphy_radio_freq_range freq_range;
-+      /* Protected by wiphy::mtx lock. */
-+      u32 vdev_id_11d_scan;
-+      struct completion completed_11d_scan;
-+      enum ath12k_11d_state state_11d;
-+      u8 alpha2[REG_ALPHA2_LEN];
-+      bool regdom_set_by_user;
-+
-       bool nlo_enabled;
-       struct completion mlo_setup_done;
-@@ -985,6 +1000,8 @@ struct ath12k_base {
-       /* continuous recovery fail count */
-       atomic_t fail_cont_count;
-       unsigned long reset_fail_timeout;
-+      struct work_struct update_11d_work;
-+      u8 new_alpha2[2];
-       struct {
-               /* protected by data_lock */
-               u32 fw_crash_counter;
---- a/drivers/net/wireless/ath/ath12k/mac.c
-+++ b/drivers/net/wireless/ath/ath12k/mac.c
-@@ -3340,6 +3340,11 @@ static void ath12k_bss_assoc(struct ath1
-       if (ret)
-               ath12k_warn(ar->ab, "failed to set vdev %i OBSS PD parameters: %d\n",
-                           arvif->vdev_id, ret);
-+
-+      if (test_bit(WMI_TLV_SERVICE_11D_OFFLOAD, ar->ab->wmi_ab.svc_map) &&
-+          ahvif->vdev_type == WMI_VDEV_TYPE_STA &&
-+          ahvif->vdev_subtype == WMI_VDEV_SUBTYPE_NONE)
-+              ath12k_mac_11d_scan_stop_all(ar->ab);
- }
- static void ath12k_bss_disassoc(struct ath12k *ar,
-@@ -4094,7 +4099,7 @@ void __ath12k_mac_scan_finish(struct ath
-               fallthrough;
-       case ATH12K_SCAN_STARTING:
-               cancel_delayed_work(&ar->scan.timeout);
--              complete(&ar->scan.completed);
-+              complete_all(&ar->scan.completed);
-               wiphy_work_queue(ar->ah->hw->wiphy, &ar->scan.vdev_clean_wk);
-               break;
-       }
-@@ -4438,7 +4443,12 @@ static int ath12k_mac_op_hw_scan(struct
-       ret = ath12k_start_scan(ar, arg);
-       if (ret) {
--              ath12k_warn(ar->ab, "failed to start hw scan: %d\n", ret);
-+              if (ret == -EBUSY)
-+                      ath12k_dbg(ar->ab, ATH12K_DBG_MAC,
-+                                 "scan engine is busy 11d state %d\n", ar->state_11d);
-+              else
-+                      ath12k_warn(ar->ab, "failed to start hw scan: %d\n", ret);
-+
-               spin_lock_bh(&ar->data_lock);
-               ar->scan.state = ATH12K_SCAN_IDLE;
-               spin_unlock_bh(&ar->data_lock);
-@@ -4465,6 +4475,11 @@ exit:
-               kfree(arg);
-       }
-+      if (ar->state_11d == ATH12K_11D_PREPARING &&
-+          ahvif->vdev_type == WMI_VDEV_TYPE_STA &&
-+          ahvif->vdev_subtype == WMI_VDEV_SUBTYPE_NONE)
-+              ath12k_mac_11d_scan_start(ar, arvif->vdev_id);
-+
-       return ret;
- }
-@@ -7383,7 +7398,7 @@ static int ath12k_mac_start(struct ath12
-       /* TODO: Do we need to enable ANI? */
--      ath12k_reg_update_chan_list(ar);
-+      ath12k_reg_update_chan_list(ar, false);
-       ar->num_started_vdevs = 0;
-       ar->num_created_vdevs = 0;
-@@ -7564,6 +7579,9 @@ static void ath12k_mac_stop(struct ath12
-       wiphy_work_cancel(ath12k_ar_to_hw(ar)->wiphy, &ar->scan.vdev_clean_wk);
-       cancel_work_sync(&ar->regd_update_work);
-       cancel_work_sync(&ar->ab->rfkill_work);
-+      cancel_work_sync(&ar->ab->update_11d_work);
-+      ar->state_11d = ATH12K_11D_IDLE;
-+      complete(&ar->completed_11d_scan);
-       spin_lock_bh(&ar->data_lock);
-       list_for_each_entry_safe(ppdu_stats, tmp, &ar->ppdu_stats_info, list) {
-@@ -7857,6 +7875,117 @@ static void ath12k_mac_op_update_vif_off
-       ath12k_mac_update_vif_offload(&ahvif->deflink);
- }
-+static bool ath12k_mac_vif_ap_active_any(struct ath12k_base *ab)
-+{
-+      struct ath12k *ar;
-+      struct ath12k_pdev *pdev;
-+      struct ath12k_link_vif *arvif;
-+      int i;
-+
-+      for (i = 0; i < ab->num_radios; i++) {
-+              pdev = &ab->pdevs[i];
-+              ar = pdev->ar;
-+              list_for_each_entry(arvif, &ar->arvifs, list) {
-+                      if (arvif->is_up && arvif->ahvif->vdev_type == WMI_VDEV_TYPE_AP)
-+                              return true;
-+              }
-+      }
-+      return false;
-+}
-+
-+void ath12k_mac_11d_scan_start(struct ath12k *ar, u32 vdev_id)
-+{
-+      struct wmi_11d_scan_start_arg arg;
-+      int ret;
-+
-+      lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
-+
-+      if (ar->regdom_set_by_user)
-+              goto fin;
-+
-+      if (ar->vdev_id_11d_scan != ATH12K_11D_INVALID_VDEV_ID)
-+              goto fin;
-+
-+      if (!test_bit(WMI_TLV_SERVICE_11D_OFFLOAD, ar->ab->wmi_ab.svc_map))
-+              goto fin;
-+
-+      if (ath12k_mac_vif_ap_active_any(ar->ab))
-+              goto fin;
-+
-+      arg.vdev_id = vdev_id;
-+      arg.start_interval_msec = 0;
-+      arg.scan_period_msec = ATH12K_SCAN_11D_INTERVAL;
-+
-+      ath12k_dbg(ar->ab, ATH12K_DBG_MAC,
-+                 "mac start 11d scan for vdev %d\n", vdev_id);
-+
-+      ret = ath12k_wmi_send_11d_scan_start_cmd(ar, &arg);
-+      if (ret) {
-+              ath12k_warn(ar->ab, "failed to start 11d scan vdev %d ret: %d\n",
-+                          vdev_id, ret);
-+      } else {
-+              ar->vdev_id_11d_scan = vdev_id;
-+              if (ar->state_11d == ATH12K_11D_PREPARING)
-+                      ar->state_11d = ATH12K_11D_RUNNING;
-+      }
-+
-+fin:
-+      if (ar->state_11d == ATH12K_11D_PREPARING) {
-+              ar->state_11d = ATH12K_11D_IDLE;
-+              complete(&ar->completed_11d_scan);
-+      }
-+}
-+
-+void ath12k_mac_11d_scan_stop(struct ath12k *ar)
-+{
-+      int ret;
-+      u32 vdev_id;
-+
-+      lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
-+
-+      if (!test_bit(WMI_TLV_SERVICE_11D_OFFLOAD, ar->ab->wmi_ab.svc_map))
-+              return;
-+
-+      ath12k_dbg(ar->ab, ATH12K_DBG_MAC, "mac stop 11d for vdev %d\n",
-+                 ar->vdev_id_11d_scan);
-+
-+      if (ar->state_11d == ATH12K_11D_PREPARING) {
-+              ar->state_11d = ATH12K_11D_IDLE;
-+              complete(&ar->completed_11d_scan);
-+      }
-+
-+      if (ar->vdev_id_11d_scan != ATH12K_11D_INVALID_VDEV_ID) {
-+              vdev_id = ar->vdev_id_11d_scan;
-+
-+              ret = ath12k_wmi_send_11d_scan_stop_cmd(ar, vdev_id);
-+              if (ret) {
-+                      ath12k_warn(ar->ab,
-+                                  "failed to stopt 11d scan vdev %d ret: %d\n",
-+                                  vdev_id, ret);
-+              } else {
-+                      ar->vdev_id_11d_scan = ATH12K_11D_INVALID_VDEV_ID;
-+                      ar->state_11d = ATH12K_11D_IDLE;
-+                      complete(&ar->completed_11d_scan);
-+              }
-+      }
-+}
-+
-+void ath12k_mac_11d_scan_stop_all(struct ath12k_base *ab)
-+{
-+      struct ath12k *ar;
-+      struct ath12k_pdev *pdev;
-+      int i;
-+
-+      ath12k_dbg(ab, ATH12K_DBG_MAC, "mac stop soc 11d scan\n");
-+
-+      for (i = 0; i < ab->num_radios; i++) {
-+              pdev = &ab->pdevs[i];
-+              ar = pdev->ar;
-+
-+              ath12k_mac_11d_scan_stop(ar);
-+      }
-+}
-+
- int ath12k_mac_vdev_create(struct ath12k *ar, struct ath12k_link_vif *arvif)
- {
-       struct ath12k_hw *ah = ar->ah;
-@@ -7991,6 +8120,7 @@ int ath12k_mac_vdev_create(struct ath12k
-                                   arvif->vdev_id, ret);
-                       goto err_peer_del;
-               }
-+              ath12k_mac_11d_scan_stop_all(ar->ab);
-               break;
-       case WMI_VDEV_TYPE_STA:
-               param_id = WMI_STA_PS_PARAM_RX_WAKE_POLICY;
-@@ -8029,6 +8159,13 @@ int ath12k_mac_vdev_create(struct ath12k
-                                   arvif->vdev_id, ret);
-                       goto err_peer_del;
-               }
-+
-+              if (test_bit(WMI_TLV_SERVICE_11D_OFFLOAD, ab->wmi_ab.svc_map) &&
-+                  ahvif->vdev_type == WMI_VDEV_TYPE_STA &&
-+                  ahvif->vdev_subtype == WMI_VDEV_SUBTYPE_NONE) {
-+                      reinit_completion(&ar->completed_11d_scan);
-+                      ar->state_11d = ATH12K_11D_PREPARING;
-+              }
-               break;
-       default:
-               break;
-@@ -8821,6 +8958,11 @@ ath12k_mac_vdev_start_restart(struct ath
-                       return ret;
-       }
-+      if (test_bit(WMI_TLV_SERVICE_11D_OFFLOAD, ab->wmi_ab.svc_map) &&
-+          ahvif->vdev_type == WMI_VDEV_TYPE_STA &&
-+          ahvif->vdev_subtype == WMI_VDEV_SUBTYPE_NONE)
-+              ath12k_mac_11d_scan_stop(ar);
-+
-       if (ahvif->vdev_type == WMI_VDEV_TYPE_AP) {
-               arg.ssid = ahvif->u.ap.ssid;
-               arg.ssid_len = ahvif->u.ap.ssid_len;
-@@ -9395,6 +9537,14 @@ ath12k_mac_op_unassign_vif_chanctx(struc
-           ar->num_started_vdevs == 1 && ar->monitor_vdev_created)
-               ath12k_mac_monitor_stop(ar);
-+      if (test_bit(WMI_TLV_SERVICE_11D_OFFLOAD, ab->wmi_ab.svc_map) &&
-+          ahvif->vdev_type == WMI_VDEV_TYPE_STA &&
-+          ahvif->vdev_subtype == WMI_VDEV_SUBTYPE_NONE &&
-+          ar->state_11d != ATH12K_11D_PREPARING) {
-+              reinit_completion(&ar->completed_11d_scan);
-+              ar->state_11d = ATH12K_11D_PREPARING;
-+      }
-+
-       ath12k_mac_remove_link_interface(hw, arvif);
-       ath12k_mac_unassign_link_vif(arvif);
- }
-@@ -9958,6 +10108,14 @@ ath12k_mac_op_reconfig_complete(struct i
-               ath12k_warn(ar->ab, "pdev %d successfully recovered\n",
-                           ar->pdev->pdev_id);
-+              if (ar->ab->hw_params->current_cc_support &&
-+                  ar->alpha2[0] != 0 && ar->alpha2[1] != 0) {
-+                      struct wmi_set_current_country_arg arg = {};
-+
-+                      memcpy(&arg.alpha2, ar->alpha2, 2);
-+                      ath12k_wmi_send_set_current_country_cmd(ar, &arg);
-+              }
-+
-               if (ab->is_reset) {
-                       recovery_count = atomic_inc_return(&ab->recovery_count);
-@@ -11173,6 +11331,9 @@ static void ath12k_mac_setup(struct ath1
-       wiphy_work_init(&ar->wmi_mgmt_tx_work, ath12k_mgmt_over_wmi_tx_work);
-       skb_queue_head_init(&ar->wmi_mgmt_tx_queue);
-+
-+      ar->vdev_id_11d_scan = ATH12K_11D_INVALID_VDEV_ID;
-+      init_completion(&ar->completed_11d_scan);
- }
- static int __ath12k_mac_mlo_setup(struct ath12k *ar)
---- a/drivers/net/wireless/ath/ath12k/mac.h
-+++ b/drivers/net/wireless/ath/ath12k/mac.h
-@@ -66,6 +66,13 @@ struct ath12k_mac_get_any_chanctx_conf_a
- extern const struct htt_rx_ring_tlv_filter ath12k_mac_mon_status_filter_default;
-+#define ATH12K_SCAN_11D_INTERVAL              600000
-+#define ATH12K_11D_INVALID_VDEV_ID            0xFFFF
-+
-+void ath12k_mac_11d_scan_start(struct ath12k *ar, u32 vdev_id);
-+void ath12k_mac_11d_scan_stop(struct ath12k *ar);
-+void ath12k_mac_11d_scan_stop_all(struct ath12k_base *ab);
-+
- void ath12k_mac_destroy(struct ath12k_hw_group *ag);
- void ath12k_mac_unregister(struct ath12k_hw_group *ag);
- int ath12k_mac_register(struct ath12k_hw_group *ag);
---- a/drivers/net/wireless/ath/ath12k/reg.c
-+++ b/drivers/net/wireless/ath/ath12k/reg.c
-@@ -48,6 +48,7 @@ ath12k_reg_notifier(struct wiphy *wiphy,
- {
-       struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy);
-       struct ath12k_wmi_init_country_arg arg;
-+      struct wmi_set_current_country_arg current_arg = {};
-       struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
-       struct ath12k *ar = ath12k_ah_to_ar(ah, 0);
-       int ret, i;
-@@ -77,27 +78,38 @@ ath12k_reg_notifier(struct wiphy *wiphy,
-               return;
-       }
--      /* Set the country code to the firmware and wait for
--       * the WMI_REG_CHAN_LIST_CC EVENT for updating the
--       * reg info
--       */
--      arg.flags = ALPHA_IS_SET;
--      memcpy(&arg.cc_info.alpha2, request->alpha2, 2);
--      arg.cc_info.alpha2[2] = 0;
--
-       /* Allow fresh updates to wiphy regd */
-       ah->regd_updated = false;
-       /* Send the reg change request to all the radios */
-       for_each_ar(ah, ar, i) {
--              ret = ath12k_wmi_send_init_country_cmd(ar, &arg);
--              if (ret)
--                      ath12k_warn(ar->ab,
--                                  "INIT Country code set to fw failed : %d\n", ret);
-+              if (ar->ab->hw_params->current_cc_support) {
-+                      memcpy(&current_arg.alpha2, request->alpha2, 2);
-+                      memcpy(&ar->alpha2, &current_arg.alpha2, 2);
-+                      ret = ath12k_wmi_send_set_current_country_cmd(ar, &current_arg);
-+                      if (ret)
-+                              ath12k_warn(ar->ab,
-+                                          "failed set current country code: %d\n", ret);
-+              } else {
-+                      arg.flags = ALPHA_IS_SET;
-+                      memcpy(&arg.cc_info.alpha2, request->alpha2, 2);
-+                      arg.cc_info.alpha2[2] = 0;
-+
-+                      ret = ath12k_wmi_send_init_country_cmd(ar, &arg);
-+                      if (ret)
-+                              ath12k_warn(ar->ab,
-+                                          "failed set INIT Country code: %d\n", ret);
-+              }
-+
-+              wiphy_lock(wiphy);
-+              ath12k_mac_11d_scan_stop(ar);
-+              wiphy_unlock(wiphy);
-+
-+              ar->regdom_set_by_user = true;
-       }
- }
--int ath12k_reg_update_chan_list(struct ath12k *ar)
-+int ath12k_reg_update_chan_list(struct ath12k *ar, bool wait)
- {
-       struct ieee80211_supported_band **bands;
-       struct ath12k_wmi_scan_chan_list_arg *arg;
-@@ -106,7 +118,35 @@ int ath12k_reg_update_chan_list(struct a
-       struct ath12k_wmi_channel_arg *ch;
-       enum nl80211_band band;
-       int num_channels = 0;
--      int i, ret;
-+      int i, ret, left;
-+
-+      if (wait && ar->state_11d != ATH12K_11D_IDLE) {
-+              left = wait_for_completion_timeout(&ar->completed_11d_scan,
-+                                                 ATH12K_SCAN_TIMEOUT_HZ);
-+              if (!left) {
-+                      ath12k_dbg(ar->ab, ATH12K_DBG_REG,
-+                                 "failed to receive 11d scan complete: timed out\n");
-+                      ar->state_11d = ATH12K_11D_IDLE;
-+              }
-+              ath12k_dbg(ar->ab, ATH12K_DBG_REG,
-+                         "reg 11d scan wait left time %d\n", left);
-+      }
-+
-+      if (wait &&
-+          (ar->scan.state == ATH12K_SCAN_STARTING ||
-+          ar->scan.state == ATH12K_SCAN_RUNNING)) {
-+              left = wait_for_completion_timeout(&ar->scan.completed,
-+                                                 ATH12K_SCAN_TIMEOUT_HZ);
-+              if (!left)
-+                      ath12k_dbg(ar->ab, ATH12K_DBG_REG,
-+                                 "failed to receive hw scan complete: timed out\n");
-+
-+              ath12k_dbg(ar->ab, ATH12K_DBG_REG,
-+                         "reg hw scan wait left time %d\n", left);
-+      }
-+
-+      if (ar->ah->state == ATH12K_HW_STATE_RESTARTING)
-+              return 0;
-       bands = hw->wiphy->bands;
-       for (band = 0; band < NUM_NL80211_BANDS; band++) {
-@@ -295,7 +335,7 @@ int ath12k_regd_update(struct ath12k *ar
-        */
-       for_each_ar(ah, ar, i) {
-               ab = ar->ab;
--              ret = ath12k_reg_update_chan_list(ar);
-+              ret = ath12k_reg_update_chan_list(ar, true);
-               if (ret)
-                       goto err;
-       }
---- a/drivers/net/wireless/ath/ath12k/reg.h
-+++ b/drivers/net/wireless/ath/ath12k/reg.h
-@@ -1,7 +1,7 @@
- /* SPDX-License-Identifier: BSD-3-Clause-Clear */
- /*
-  * Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
-- * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
-+ * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
-  */
- #ifndef ATH12K_REG_H
-@@ -96,6 +96,6 @@ struct ieee80211_regdomain *ath12k_reg_b
-                                                 struct ath12k_reg_info *reg_info,
-                                                 bool intersect);
- int ath12k_regd_update(struct ath12k *ar, bool init);
--int ath12k_reg_update_chan_list(struct ath12k *ar);
-+int ath12k_reg_update_chan_list(struct ath12k *ar, bool wait);
- #endif
---- a/drivers/net/wireless/ath/ath12k/hw.c
-+++ b/drivers/net/wireless/ath/ath12k/hw.c
-@@ -928,6 +928,7 @@ static const struct ath12k_hw_params ath
-               .iova_mask = 0,
-               .supports_aspm = false,
-+              .current_cc_support = false,
-       },
-       {
-               .name = "wcn7850 hw2.0",
-@@ -1008,6 +1009,7 @@ static const struct ath12k_hw_params ath
-               .iova_mask = ATH12K_PCIE_MAX_PAYLOAD_SIZE - 1,
-               .supports_aspm = true,
-+              .current_cc_support = true,
-       },
-       {
-               .name = "qcn9274 hw2.0",
-@@ -1084,6 +1086,7 @@ static const struct ath12k_hw_params ath
-               .iova_mask = 0,
-               .supports_aspm = false,
-+              .current_cc_support = false,
-       },
- };
---- a/drivers/net/wireless/ath/ath12k/hw.h
-+++ b/drivers/net/wireless/ath/ath12k/hw.h
-@@ -190,6 +190,7 @@ struct ath12k_hw_params {
-       bool reoq_lut_support:1;
-       bool supports_shadow_regs:1;
-       bool supports_aspm:1;
-+      bool current_cc_support:1;
-       u32 num_tcl_banks;
-       u32 max_tx_ring;
diff --git a/package/kernel/mac80211/patches/ath12k/003-1-v6.16-wifi-ath12k-Pass-correct-values-of-center-freq1-and-.patch b/package/kernel/mac80211/patches/ath12k/003-1-v6.16-wifi-ath12k-Pass-correct-values-of-center-freq1-and-.patch
deleted file mode 100644 (file)
index 78dea13..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-From b1b01e46a3db5ad44d1e4691ba37c1e0832cd5cf Mon Sep 17 00:00:00 2001
-From: Suraj P Kizhakkethil <[email protected]>
-Date: Tue, 4 Mar 2025 15:23:14 +0530
-Subject: [PATCH 1/2] wifi: ath12k: Pass correct values of center freq1 and
- center freq2 for 160 MHz
-
-Currently, for 160 MHz bandwidth, center frequency1 and
-center frequency2 are not passed correctly to the firmware.
-Set center frequency1 as the center frequency
-of the primary 80 MHz channel segment and center frequency2 as
-the center frequency of the 160 MHz channel and pass the values
-to the firmware.
-
-Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
-
-Signed-off-by: Suraj P Kizhakkethil <[email protected]>
-Reviewed-by: Aditya Kumar Singh <[email protected]>
-Link: https://patch.msgid.link/[email protected]
-Signed-off-by: Jeff Johnson <[email protected]>
----
- drivers/net/wireless/ath/ath12k/wmi.c | 16 +++++++++++++---
- 1 file changed, 13 insertions(+), 3 deletions(-)
-
---- a/drivers/net/wireless/ath/ath12k/wmi.c
-+++ b/drivers/net/wireless/ath/ath12k/wmi.c
-@@ -1000,14 +1000,24 @@ int ath12k_wmi_vdev_down(struct ath12k *
- static void ath12k_wmi_put_wmi_channel(struct ath12k_wmi_channel_params *chan,
-                                      struct wmi_vdev_start_req_arg *arg)
- {
-+      u32 center_freq1 = arg->band_center_freq1;
-+
-       memset(chan, 0, sizeof(*chan));
-       chan->mhz = cpu_to_le32(arg->freq);
--      chan->band_center_freq1 = cpu_to_le32(arg->band_center_freq1);
--      if (arg->mode == MODE_11AC_VHT80_80)
-+      chan->band_center_freq1 = cpu_to_le32(center_freq1);
-+      if (arg->mode == MODE_11BE_EHT160) {
-+              if (arg->freq > center_freq1)
-+                      chan->band_center_freq1 = cpu_to_le32(center_freq1 + 40);
-+              else
-+                      chan->band_center_freq1 = cpu_to_le32(center_freq1 - 40);
-+
-+              chan->band_center_freq2 = cpu_to_le32(center_freq1);
-+      } else if (arg->mode == MODE_11BE_EHT80_80) {
-               chan->band_center_freq2 = cpu_to_le32(arg->band_center_freq2);
--      else
-+      } else {
-               chan->band_center_freq2 = 0;
-+      }
-       chan->info |= le32_encode_bits(arg->mode, WMI_CHAN_INFO_MODE);
-       if (arg->passive)
diff --git a/package/kernel/mac80211/patches/ath12k/003-2-v6.16-wifi-ath12k-Pass-correct-values-of-center-freq1-and-.patch b/package/kernel/mac80211/patches/ath12k/003-2-v6.16-wifi-ath12k-Pass-correct-values-of-center-freq1-and-.patch
deleted file mode 100644 (file)
index 3f7f05e..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-From 5e44b181bec8e2fe3826033360fc1a42bb432191 Mon Sep 17 00:00:00 2001
-From: Sriram R <[email protected]>
-Date: Tue, 4 Mar 2025 15:23:15 +0530
-Subject: [PATCH 2/2] wifi: ath12k: Pass correct values of center freq1 and
- center freq2 for 320 MHz
-
-Currently, for 320 MHz bandwidth, center frequency1 and
-center frequency2 are not passed correctly to the firmware.
-Set center frequency1 as the center frequency of the
-primary 160 MHz channel segment and center frequency2 as the center
-frequency of the 320 MHz channel and pass the values
-to the firmware.
-
-Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
-
-Signed-off-by: Sriram R <[email protected]>
-Signed-off-by: Suraj P Kizhakkethil <[email protected]>
-Reviewed-by: Aditya Kumar Singh <[email protected]>
-Link: https://patch.msgid.link/[email protected]
-Signed-off-by: Jeff Johnson <[email protected]>
----
- drivers/net/wireless/ath/ath12k/wmi.c | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
---- a/drivers/net/wireless/ath/ath12k/wmi.c
-+++ b/drivers/net/wireless/ath/ath12k/wmi.c
-@@ -1006,7 +1006,15 @@ static void ath12k_wmi_put_wmi_channel(s
-       chan->mhz = cpu_to_le32(arg->freq);
-       chan->band_center_freq1 = cpu_to_le32(center_freq1);
--      if (arg->mode == MODE_11BE_EHT160) {
-+      if (arg->mode == MODE_11BE_EHT320) {
-+              if (arg->freq > center_freq1)
-+                      chan->band_center_freq1 = cpu_to_le32(center_freq1 + 80);
-+              else
-+                      chan->band_center_freq1 = cpu_to_le32(center_freq1 - 80);
-+
-+              chan->band_center_freq2 = cpu_to_le32(center_freq1);
-+
-+      } else if (arg->mode == MODE_11BE_EHT160) {
-               if (arg->freq > center_freq1)
-                       chan->band_center_freq1 = cpu_to_le32(center_freq1 + 40);
-               else
index 398f4d44512b237c6effb817c171708d1d700f86..9bbc75247d9ba5b01de79e907ce07aec9bb7069b 100644 (file)
@@ -130,7 +130,7 @@ Best regards,
 
 --- a/drivers/net/wireless/ath/ath12k/wmi.c
 +++ b/drivers/net/wireless/ath/ath12k/wmi.c
-@@ -2743,6 +2743,9 @@ int ath12k_wmi_send_scan_chan_list_cmd(s
+@@ -2832,6 +2832,9 @@ int ath12k_wmi_send_scan_chan_list_cmd(s
                max_chan_limit = (wmi->wmi_ab->max_msg_len[ar->pdev_idx] - len) /
                        sizeof(*chan_info);
  
@@ -142,7 +142,7 @@ Best regards,
                arg->nallchans -= num_send_chans;
 --- a/drivers/net/wireless/ath/ath12k/wmi.h
 +++ b/drivers/net/wireless/ath/ath12k/wmi.h
-@@ -3873,6 +3873,8 @@ struct wmi_stop_scan_cmd {
+@@ -3947,6 +3947,8 @@ struct wmi_stop_scan_cmd {
        __le32 pdev_id;
  } __packed;
  
index a8aa752db32cfe292199c83c708a37dd82e3c0ec..71b8f86eed74abf85aea03c1324ca96833aa1914 100644 (file)
@@ -124,14 +124,14 @@ Best regards,
 
 --- a/drivers/net/wireless/ath/ath12k/mac.c
 +++ b/drivers/net/wireless/ath/ath12k/mac.c
-@@ -6432,9 +6432,7 @@ static void ath12k_mac_setup_ht_vht_cap(
+@@ -6985,9 +6985,7 @@ static void ath12k_mac_setup_ht_vht_cap(
                                                    rate_cap_rx_chainmask);
        }
  
--      if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP &&
+-      if (cap->supported_bands & WMI_HOST_WLAN_5GHZ_CAP &&
 -          (ar->ab->hw_params->single_pdev_only ||
 -           !ar->supports_6ghz)) {
-+      if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP) {
++      if (cap->supported_bands & WMI_HOST_WLAN_5GHZ_CAP) {
                band = &ar->mac.sbands[NL80211_BAND_5GHZ];
                ht_cap = cap->band[NL80211_BAND_5GHZ].ht_cap_info;
                if (ht_cap_info)
index 0ab44b54a51389c6f68b3693b21fe9b0c151fa8b..9fdc89960d49b66cbf414dadcde3bd8a87450d0c 100644 (file)
@@ -131,8 +131,8 @@ Acked-by: Jeff Johnson <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath12k/mac.c
 +++ b/drivers/net/wireless/ath/ath12k/mac.c
-@@ -3215,6 +3215,125 @@ static int ath12k_setup_peer_smps(struct
-                                        ath12k_smps_map[smps]);
+@@ -3173,6 +3173,125 @@ static u32 ath12k_mac_ieee80211_sta_bw_t
+       return bw;
  }
  
 +static int ath12k_mac_set_he_txbf_conf(struct ath12k_link_vif *arvif)
@@ -257,7 +257,7 @@ Acked-by: Jeff Johnson <[email protected]>
  static void ath12k_bss_assoc(struct ath12k *ar,
                             struct ath12k_link_vif *arvif,
                             struct ieee80211_bss_conf *bss_conf)
-@@ -3229,6 +3348,7 @@ static void ath12k_bss_assoc(struct ath1
+@@ -3187,6 +3306,7 @@ static void ath12k_bss_assoc(struct ath1
        struct ath12k_sta *ahsta;
        struct ath12k_peer *peer;
        bool is_auth = false;
@@ -265,7 +265,7 @@ Acked-by: Jeff Johnson <[email protected]>
        int ret;
  
        lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
-@@ -3272,8 +3392,26 @@ static void ath12k_bss_assoc(struct ath1
+@@ -3230,8 +3350,26 @@ static void ath12k_bss_assoc(struct ath1
  
        ath12k_peer_assoc_prepare(ar, arvif, arsta, peer_arg, false);
  
@@ -292,7 +292,7 @@ Acked-by: Jeff Johnson <[email protected]>
        ret = ath12k_wmi_send_peer_assoc_cmd(ar, peer_arg);
        if (ret) {
                ath12k_warn(ar->ab, "failed to run peer assoc for %pM vdev %i: %d\n",
-@@ -3677,6 +3815,13 @@ static void ath12k_mac_bss_info_changed(
+@@ -3850,6 +3988,13 @@ static void ath12k_mac_bss_info_changed(
                ether_addr_copy(arvif->bssid, info->bssid);
  
        if (changed & BSS_CHANGED_BEACON_ENABLED) {
@@ -306,7 +306,7 @@ Acked-by: Jeff Johnson <[email protected]>
                ath12k_control_beaconing(arvif, info);
  
                if (arvif->is_up && info->he_support &&
-@@ -6598,11 +6743,14 @@ static void ath12k_mac_copy_he_cap(struc
+@@ -7151,11 +7296,14 @@ static void ath12k_mac_copy_he_cap(struc
  
        he_cap_elem->mac_cap_info[1] &=
                IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_MASK;
@@ -324,7 +324,7 @@ Acked-by: Jeff Johnson <[email protected]>
        he_cap_elem->phy_cap_info[5] |= num_tx_chains - 1;
  
        switch (iftype) {
-@@ -7734,72 +7882,6 @@ static int ath12k_mac_setup_vdev_create_
+@@ -8454,72 +8602,6 @@ static int ath12k_mac_setup_vdev_create_
        return 0;
  }
  
@@ -336,7 +336,7 @@ Acked-by: Jeff Johnson <[email protected]>
 -      u32 *hecap_phy_ptr = NULL;
 -      u32 hemode;
 -
--      if (pdev->cap.supported_bands & WMI_HOST_WLAN_2G_CAP)
+-      if (pdev->cap.supported_bands & WMI_HOST_WLAN_2GHZ_CAP)
 -              cap_band = &pdev_cap->band[NL80211_BAND_2GHZ];
 -      else
 -              cap_band = &pdev_cap->band[NL80211_BAND_5GHZ];
@@ -397,7 +397,7 @@ Acked-by: Jeff Johnson <[email protected]>
  static void ath12k_mac_update_vif_offload(struct ath12k_link_vif *arvif)
  {
        struct ath12k_vif *ahvif = arvif->ahvif;
-@@ -8978,14 +9060,6 @@ ath12k_mac_vdev_start_restart(struct ath
+@@ -9706,14 +9788,6 @@ ath12k_mac_vdev_start_restart(struct ath
                spin_unlock_bh(&ab->base_lock);
  
                /* TODO: Notify if secondary 80Mhz also needs radar detection */
@@ -414,9 +414,9 @@ Acked-by: Jeff Johnson <[email protected]>
        arg.passive |= !!(chandef->chan->flags & IEEE80211_CHAN_NO_IR);
 --- a/drivers/net/wireless/ath/ath12k/mac.h
 +++ b/drivers/net/wireless/ath/ath12k/mac.h
-@@ -51,6 +51,21 @@ struct ath12k_generic_iter {
- #define ATH12K_DEFAULT_SCAN_LINK      IEEE80211_MLD_MAX_NUM_LINKS
- #define ATH12K_NUM_MAX_LINKS          (IEEE80211_MLD_MAX_NUM_LINKS + 1)
+@@ -56,6 +56,21 @@ struct ath12k_generic_iter {
+ #define ATH12K_NUM_MAX_ACTIVE_LINKS_PER_DEVICE        2
  
 +#define HECAP_PHY_SUBFMR_GET(hecap_phy) \
 +      u8_get_bits(hecap_phy[3], IEEE80211_HE_PHY_CAP3_SU_BEAMFORMER)
@@ -438,7 +438,7 @@ Acked-by: Jeff Johnson <[email protected]>
        ATH12K_BW_40    = 1,
 --- a/drivers/net/wireless/ath/ath12k/wmi.h
 +++ b/drivers/net/wireless/ath/ath12k/wmi.h
-@@ -3079,31 +3079,6 @@ struct ath12k_wmi_rx_reorder_queue_remov
+@@ -3131,31 +3131,6 @@ struct ath12k_wmi_rx_reorder_queue_remov
  #define WMI_VDEV_PARAM_TXBF_SU_TX_BFER BIT(2)
  #define WMI_VDEV_PARAM_TXBF_MU_TX_BFER BIT(3)
  
@@ -470,7 +470,7 @@ Acked-by: Jeff Johnson <[email protected]>
  #define HE_MODE_SU_TX_BFEE    BIT(0)
  #define HE_MODE_SU_TX_BFER    BIT(1)
  #define HE_MODE_MU_TX_BFEE    BIT(2)
-@@ -3115,8 +3090,11 @@ struct ath12k_wmi_rx_reorder_queue_remov
+@@ -3167,8 +3142,11 @@ struct ath12k_wmi_rx_reorder_queue_remov
  #define HE_DL_MUOFDMA_ENABLE  1
  #define HE_UL_MUOFDMA_ENABLE  1
  #define HE_DL_MUMIMO_ENABLE   1
index d733b5be23ffb83c28c30cd2d4f640a4b65eb2f3..d11e94f8dbc1d50def69828e45e7204d4b9e7954 100644 (file)
@@ -131,7 +131,7 @@ Acked-by: Jeff Johnson <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath12k/mac.c
 +++ b/drivers/net/wireless/ath/ath12k/mac.c
-@@ -3334,6 +3334,58 @@ static int ath12k_mac_vif_recalc_sta_he_
+@@ -3292,6 +3292,58 @@ static int ath12k_mac_vif_recalc_sta_he_
        return 0;
  }
  
@@ -190,7 +190,7 @@ Acked-by: Jeff Johnson <[email protected]>
  static void ath12k_bss_assoc(struct ath12k *ar,
                             struct ath12k_link_vif *arvif,
                             struct ieee80211_bss_conf *bss_conf)
-@@ -3821,6 +3873,12 @@ static void ath12k_mac_bss_info_changed(
+@@ -3994,6 +4046,12 @@ static void ath12k_mac_bss_info_changed(
                                ath12k_warn(ar->ab,
                                            "failed to set HE TXBF config for vdev: %d\n",
                                            arvif->vdev_id);
@@ -205,7 +205,7 @@ Acked-by: Jeff Johnson <[email protected]>
  
 --- a/drivers/net/wireless/ath/ath12k/wmi.h
 +++ b/drivers/net/wireless/ath/ath12k/wmi.h
-@@ -1152,6 +1152,7 @@ enum wmi_tlv_vdev_param {
+@@ -1176,6 +1176,7 @@ enum wmi_tlv_vdev_param {
        WMI_VDEV_PARAM_BSS_COLOR,
        WMI_VDEV_PARAM_SET_HEMU_MODE,
        WMI_VDEV_PARAM_HEOPS_0_31 = 0x8003,
@@ -213,7 +213,7 @@ Acked-by: Jeff Johnson <[email protected]>
  };
  
  enum wmi_tlv_peer_flags {
-@@ -3096,6 +3097,26 @@ struct ath12k_wmi_rx_reorder_queue_remov
+@@ -3148,6 +3149,26 @@ struct ath12k_wmi_rx_reorder_queue_remov
  #define HE_MU_BFER_ENABLE     1
  #define HE_SU_BFER_ENABLE     1
  
index ee0f20fe1747c060ef4e78d19f3b8a13f8d85125..bf72cefca298fb8c7c6615fe630413da31445cf2 100644 (file)
@@ -130,7 +130,7 @@ Acked-by: Jeff Johnson <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath12k/mac.c
 +++ b/drivers/net/wireless/ath/ath12k/mac.c
-@@ -6786,12 +6786,24 @@ static __le16 ath12k_mac_setup_he_6ghz_c
+@@ -7339,12 +7339,24 @@ static __le16 ath12k_mac_setup_he_6ghz_c
        return cpu_to_le16(bcap->he_6ghz_capa);
  }
  
@@ -156,7 +156,7 @@ Acked-by: Jeff Johnson <[email protected]>
  
        he_cap->has_he = true;
        memcpy(he_cap_elem->mac_cap_info, band_cap->he_cap_info,
-@@ -6829,13 +6841,7 @@ static void ath12k_mac_copy_he_cap(struc
+@@ -7384,13 +7396,7 @@ static void ath12k_mac_copy_he_cap(struc
                break;
        }
  
index 848fd412f968bac2393a003db3759a7c53ea19dd..d85077af3fcdc86778519dd50106774bb53d6bff 100644 (file)
@@ -128,7 +128,7 @@ Acked-by: Jeff Johnson <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath12k/mac.c
 +++ b/drivers/net/wireless/ath/ath12k/mac.c
-@@ -6786,20 +6786,40 @@ static __le16 ath12k_mac_setup_he_6ghz_c
+@@ -7339,20 +7339,40 @@ static __le16 ath12k_mac_setup_he_6ghz_c
        return cpu_to_le16(bcap->he_6ghz_capa);
  }
  
@@ -177,7 +177,7 @@ Acked-by: Jeff Johnson <[email protected]>
                                   int iftype, u8 num_tx_chains,
                                   struct ieee80211_sta_he_cap *he_cap)
  {
-@@ -6841,7 +6861,7 @@ static void ath12k_mac_copy_he_cap(struc
+@@ -7396,7 +7416,7 @@ static void ath12k_mac_copy_he_cap(struc
                break;
        }
  
@@ -186,7 +186,7 @@ Acked-by: Jeff Johnson <[email protected]>
        memset(he_cap->ppe_thres, 0, sizeof(he_cap->ppe_thres));
        if (he_cap_elem->phy_cap_info[6] &
            IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT)
-@@ -7030,7 +7050,7 @@ static int ath12k_mac_copy_sband_iftype_
+@@ -7586,7 +7606,7 @@ static int ath12k_mac_copy_sband_iftype_
  
                data[idx].types_mask = BIT(i);
  
index dae1682ead01a92c7eae2bb9abe57a9d60587488..49ef320c25d09be0270eeb3160aa6ef2f932c69a 100644 (file)
@@ -127,7 +127,7 @@ Acked-by: Jeff Johnson <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath12k/wmi.c
 +++ b/drivers/net/wireless/ath/ath12k/wmi.c
-@@ -2266,8 +2266,8 @@ int ath12k_wmi_send_peer_assoc_cmd(struc
+@@ -2333,8 +2333,8 @@ int ath12k_wmi_send_peer_assoc_cmd(struc
                he_mcs->tlv_header = ath12k_wmi_tlv_cmd_hdr(WMI_TAG_HE_RATE_SET,
                                                            sizeof(*he_mcs));
  
@@ -140,7 +140,7 @@ Acked-by: Jeff Johnson <[email protected]>
  
 --- a/drivers/net/wireless/ath/ath12k/wmi.h
 +++ b/drivers/net/wireless/ath/ath12k/wmi.h
-@@ -4083,7 +4083,9 @@ struct ath12k_wmi_vht_rate_set_params {
+@@ -4157,7 +4157,9 @@ struct ath12k_wmi_vht_rate_set_params {
  
  struct ath12k_wmi_he_rate_set_params {
        __le32 tlv_header;
index 3f63eb08d17db80bb099a5d4b95d6cf7039c2013..b7ad233e2edd683d72c0f6dcc229985b97223b5c 100644 (file)
@@ -127,7 +127,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath12k/mac.c
 +++ b/drivers/net/wireless/ath/ath12k/mac.c
-@@ -518,6 +518,18 @@ ath12k_mac_max_vht_nss(const u16 *vht_mc
+@@ -521,6 +521,18 @@ ath12k_mac_max_vht_nss(const u16 *vht_mc
        return 1;
  }
  
@@ -146,7 +146,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  static u8 ath12k_parse_mpdudensity(u8 mpdudensity)
  {
  /*  From IEEE Std 802.11-2020 defined values for "Minimum MPDU Start Spacing":
-@@ -2135,9 +2147,15 @@ static void ath12k_peer_assoc_h_ht(struc
+@@ -2053,9 +2065,15 @@ static void ath12k_peer_assoc_h_ht(struc
                arg->peer_rate_caps |= WMI_HOST_RC_CW40_FLAG;
        }
  
@@ -165,7 +165,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
                        arg->peer_rate_caps |= WMI_HOST_RC_SGI_FLAG;
        }
  
-@@ -2260,11 +2278,12 @@ static void ath12k_peer_assoc_h_vht(stru
+@@ -2178,11 +2196,12 @@ static void ath12k_peer_assoc_h_vht(stru
        struct ieee80211_link_sta *link_sta;
        struct cfg80211_chan_def def;
        enum nl80211_band band;
@@ -180,7 +180,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  
        lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
  
-@@ -2317,6 +2336,25 @@ static void ath12k_peer_assoc_h_vht(stru
+@@ -2235,6 +2254,25 @@ static void ath12k_peer_assoc_h_vht(stru
        if (link_sta->bandwidth == IEEE80211_STA_RX_BW_160)
                arg->bw_160 = true;
  
@@ -206,7 +206,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
        /* Calculate peer NSS capability from VHT capabilities if STA
         * supports VHT.
         */
-@@ -2356,6 +2394,72 @@ static void ath12k_peer_assoc_h_vht(stru
+@@ -2274,6 +2312,72 @@ static void ath12k_peer_assoc_h_vht(stru
        /* TODO: rxnss_override */
  }
  
@@ -279,7 +279,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  static void ath12k_peer_assoc_h_he(struct ath12k *ar,
                                   struct ath12k_link_vif *arvif,
                                   struct ath12k_link_sta *arsta,
-@@ -2366,18 +2470,28 @@ static void ath12k_peer_assoc_h_he(struc
+@@ -2284,18 +2388,28 @@ static void ath12k_peer_assoc_h_he(struc
        const struct ieee80211_sta_he_cap *he_cap;
        struct ieee80211_bss_conf *link_conf;
        struct ieee80211_link_sta *link_sta;
@@ -310,7 +310,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
                return;
        }
  
-@@ -2392,6 +2506,12 @@ static void ath12k_peer_assoc_h_he(struc
+@@ -2310,6 +2424,12 @@ static void ath12k_peer_assoc_h_he(struc
        if (!he_cap->has_he)
                return;
  
@@ -323,7 +323,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
        arg->he_flag = true;
  
        support_160 = !!(he_cap->he_cap_elem.phy_cap_info[0] &
-@@ -2497,25 +2617,47 @@ static void ath12k_peer_assoc_h_he(struc
+@@ -2415,25 +2535,47 @@ static void ath12k_peer_assoc_h_he(struc
        if (he_cap->he_cap_elem.mac_cap_info[0] & IEEE80211_HE_MAC_CAP0_TWT_REQ)
                arg->twt_requester = true;
  
@@ -373,7 +373,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
                fallthrough;
  
        default:
-@@ -2523,11 +2665,36 @@ static void ath12k_peer_assoc_h_he(struc
+@@ -2441,11 +2583,36 @@ static void ath12k_peer_assoc_h_he(struc
                arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80] = v;
  
                v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80);
@@ -410,7 +410,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  }
  
  static void ath12k_peer_assoc_h_he_6ghz(struct ath12k *ar,
-@@ -2863,6 +3030,7 @@ static void ath12k_peer_assoc_h_phymode(
+@@ -2781,6 +2948,7 @@ static void ath12k_peer_assoc_h_phymode(
        enum nl80211_band band;
        const u8 *ht_mcs_mask;
        const u16 *vht_mcs_mask;
@@ -418,7 +418,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
        enum wmi_phy_mode phymode = MODE_UNKNOWN;
  
        lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
-@@ -2876,6 +3044,7 @@ static void ath12k_peer_assoc_h_phymode(
+@@ -2794,6 +2962,7 @@ static void ath12k_peer_assoc_h_phymode(
        band = def.chan->band;
        ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs;
        vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs;
@@ -426,7 +426,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  
        link_sta = ath12k_mac_get_link_sta(arsta);
        if (!link_sta) {
-@@ -2891,7 +3060,8 @@ static void ath12k_peer_assoc_h_phymode(
+@@ -2809,7 +2978,8 @@ static void ath12k_peer_assoc_h_phymode(
                                phymode = MODE_11BE_EHT40_2G;
                        else
                                phymode = MODE_11BE_EHT20_2G;
@@ -436,7 +436,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
                        if (link_sta->bandwidth == IEEE80211_STA_RX_BW_80)
                                phymode = MODE_11AX_HE80_2G;
                        else if (link_sta->bandwidth == IEEE80211_STA_RX_BW_40)
-@@ -2921,7 +3091,8 @@ static void ath12k_peer_assoc_h_phymode(
+@@ -2839,7 +3009,8 @@ static void ath12k_peer_assoc_h_phymode(
                /* Check EHT first */
                if (link_sta->eht_cap.has_eht) {
                        phymode = ath12k_mac_get_phymode_eht(ar, link_sta);
@@ -446,7 +446,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
                        phymode = ath12k_mac_get_phymode_he(ar, link_sta);
                } else if (link_sta->vht_cap.vht_supported &&
                    !ath12k_peer_assoc_h_vht_masked(vht_mcs_mask)) {
-@@ -4190,10 +4361,13 @@ static struct ath12k_link_vif *ath12k_ma
+@@ -3623,10 +3794,13 @@ static void ath12k_mac_init_arvif(struct
  
        for (i = 0; i < ARRAY_SIZE(arvif->bitrate_mask.control); i++) {
                arvif->bitrate_mask.control[i].legacy = 0xffffffff;
@@ -459,8 +459,8 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
 +                     sizeof(arvif->bitrate_mask.control[i].he_mcs));
        }
  
-       /* Allocate Default Queue now and reassign during actual vdev create */
-@@ -5083,6 +5257,20 @@ ath12k_mac_bitrate_mask_num_vht_rates(st
+       /* Handle MLO related assignments */
+@@ -5282,6 +5456,20 @@ ath12k_mac_bitrate_mask_num_vht_rates(st
  }
  
  static int
@@ -481,7 +481,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  ath12k_mac_set_peer_vht_fixed_rate(struct ath12k_link_vif *arvif,
                                   struct ath12k_link_sta *arsta,
                                   const struct cfg80211_bitrate_mask *mask,
-@@ -5128,6 +5316,60 @@ ath12k_mac_set_peer_vht_fixed_rate(struc
+@@ -5327,6 +5515,60 @@ ath12k_mac_set_peer_vht_fixed_rate(struc
        return ret;
  }
  
@@ -542,7 +542,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  static int ath12k_mac_station_assoc(struct ath12k *ar,
                                    struct ath12k_link_vif *arvif,
                                    struct ath12k_link_sta *arsta,
-@@ -5140,7 +5382,7 @@ static int ath12k_mac_station_assoc(stru
+@@ -5339,7 +5581,7 @@ static int ath12k_mac_station_assoc(stru
        struct cfg80211_chan_def def;
        enum nl80211_band band;
        struct cfg80211_bitrate_mask *mask;
@@ -551,7 +551,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
        u8 link_id = arvif->link_id;
  
        lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
-@@ -5180,9 +5422,10 @@ static int ath12k_mac_station_assoc(stru
+@@ -5379,9 +5621,10 @@ static int ath12k_mac_station_assoc(stru
        }
  
        num_vht_rates = ath12k_mac_bitrate_mask_num_vht_rates(ar, band, mask);
@@ -564,8 +564,8 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
         * fixed param.
         * Note that all other rates and NSS will be disabled for this peer.
         */
-@@ -5193,8 +5436,9 @@ static int ath12k_mac_station_assoc(stru
-       }
+@@ -5397,8 +5640,9 @@ static int ath12k_mac_station_assoc(stru
+       spin_unlock_bh(&ar->data_lock);
  
        if (link_sta->vht_cap.vht_supported && num_vht_rates == 1) {
 -              ret = ath12k_mac_set_peer_vht_fixed_rate(arvif, arsta, mask,
@@ -576,7 +576,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
                if (ret)
                        return ret;
        }
-@@ -5258,8 +5502,9 @@ static void ath12k_sta_rc_update_wk(stru
+@@ -5462,8 +5706,9 @@ static void ath12k_sta_rc_update_wk(stru
        enum nl80211_band band;
        const u8 *ht_mcs_mask;
        const u16 *vht_mcs_mask;
@@ -588,7 +588,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
        const struct cfg80211_bitrate_mask *mask;
        enum wmi_phy_mode peer_phymode;
        struct ath12k_link_sta *arsta;
-@@ -5279,6 +5524,7 @@ static void ath12k_sta_rc_update_wk(stru
+@@ -5483,6 +5728,7 @@ static void ath12k_sta_rc_update_wk(stru
        band = def.chan->band;
        ht_mcs_mask = arvif->bitrate_mask.control[band].ht_mcs;
        vht_mcs_mask = arvif->bitrate_mask.control[band].vht_mcs;
@@ -596,7 +596,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  
        spin_lock_bh(&ar->data_lock);
  
-@@ -5293,8 +5539,10 @@ static void ath12k_sta_rc_update_wk(stru
+@@ -5497,8 +5743,10 @@ static void ath12k_sta_rc_update_wk(stru
        spin_unlock_bh(&ar->data_lock);
  
        nss = max_t(u32, 1, nss);
@@ -609,7 +609,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  
        struct ath12k_wmi_peer_assoc_arg *peer_arg __free(kfree) =
                                        kzalloc(sizeof(*peer_arg), GFP_KERNEL);
-@@ -5377,6 +5625,8 @@ static void ath12k_sta_rc_update_wk(stru
+@@ -5581,6 +5829,8 @@ static void ath12k_sta_rc_update_wk(stru
                mask = &arvif->bitrate_mask;
                num_vht_rates = ath12k_mac_bitrate_mask_num_vht_rates(ar, band,
                                                                      mask);
@@ -618,7 +618,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  
                /* Peer_assoc_prepare will reject vht rates in
                 * bitrate_mask if its not available in range format and
-@@ -5399,11 +5649,24 @@ static void ath12k_sta_rc_update_wk(stru
+@@ -5603,11 +5853,24 @@ static void ath12k_sta_rc_update_wk(stru
                if (link_sta->vht_cap.vht_supported && num_vht_rates == 1) {
                        ath12k_mac_set_peer_vht_fixed_rate(arvif, arsta, mask,
                                                           band);
@@ -645,7 +645,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
                        ath12k_peer_assoc_prepare(ar, arvif, arsta,
                                                  peer_arg, true);
  
-@@ -9903,19 +10166,40 @@ ath12k_mac_has_single_legacy_rate(struct
+@@ -11036,19 +11299,40 @@ ath12k_mac_has_single_legacy_rate(struct
        if (ath12k_mac_bitrate_mask_num_vht_rates(ar, band, mask))
                return false;
  
@@ -686,7 +686,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
        int i;
  
        /* No need to consider legacy here. Basic rates are always present
-@@ -9942,7 +10226,24 @@ ath12k_mac_bitrate_mask_get_single_nss(s
+@@ -11075,7 +11359,24 @@ ath12k_mac_bitrate_mask_get_single_nss(s
                        return false;
        }
  
@@ -712,7 +712,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
                return false;
  
        if (ht_nss_mask == 0)
-@@ -9989,54 +10290,182 @@ ath12k_mac_get_single_legacy_rate(struct
+@@ -11122,54 +11423,182 @@ ath12k_mac_get_single_legacy_rate(struct
        return 0;
  }
  
@@ -914,7 +914,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
        return 0;
  }
  
-@@ -10065,6 +10494,31 @@ ath12k_mac_vht_mcs_range_present(struct
+@@ -11198,6 +11627,31 @@ ath12k_mac_vht_mcs_range_present(struct
        return true;
  }
  
@@ -946,7 +946,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  static void ath12k_mac_set_bitrate_mask_iter(void *data,
                                             struct ieee80211_sta *sta)
  {
-@@ -10073,7 +10527,10 @@ static void ath12k_mac_set_bitrate_mask_
+@@ -11206,7 +11660,10 @@ static void ath12k_mac_set_bitrate_mask_
        struct ath12k_link_sta *arsta;
        struct ath12k *ar = arvif->ar;
  
@@ -958,7 +958,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
        if (!arsta || arsta->arvif != arvif)
                return;
  
-@@ -10111,6 +10568,61 @@ static void ath12k_mac_disable_peer_fixe
+@@ -11244,6 +11701,61 @@ static void ath12k_mac_disable_peer_fixe
                            arsta->addr, ret);
  }
  
@@ -1020,7 +1020,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  static int
  ath12k_mac_op_set_bitrate_mask(struct ieee80211_hw *hw,
                               struct ieee80211_vif *vif,
-@@ -10123,13 +10635,17 @@ ath12k_mac_op_set_bitrate_mask(struct ie
+@@ -11256,13 +11768,17 @@ ath12k_mac_op_set_bitrate_mask(struct ie
        enum nl80211_band band;
        const u8 *ht_mcs_mask;
        const u16 *vht_mcs_mask;
@@ -1039,7 +1039,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  
        lockdep_assert_wiphy(hw->wiphy);
  
-@@ -10144,14 +10660,18 @@ ath12k_mac_op_set_bitrate_mask(struct ie
+@@ -11277,14 +11793,18 @@ ath12k_mac_op_set_bitrate_mask(struct ie
        band = def.chan->band;
        ht_mcs_mask = mask->control[band].ht_mcs;
        vht_mcs_mask = mask->control[band].vht_mcs;
@@ -1059,7 +1059,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
        /* mac80211 doesn't support sending a fixed HT/VHT MCS alone, rather it
         * requires passing at least one of used basic rates along with them.
         * Fixed rate setting across different preambles(legacy, HT, VHT) is
-@@ -10168,18 +10688,31 @@ ath12k_mac_op_set_bitrate_mask(struct ie
+@@ -11301,18 +11821,31 @@ ath12k_mac_op_set_bitrate_mask(struct ie
                                    arvif->vdev_id, ret);
                        goto out;
                }
@@ -1095,7 +1095,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  
                /* If multiple rates across different preambles are given
                 * we can reconfigure this info with all peers using PEER_ASSOC
-@@ -10211,9 +10744,21 @@ ath12k_mac_op_set_bitrate_mask(struct ie
+@@ -11344,9 +11877,21 @@ ath12k_mac_op_set_bitrate_mask(struct ie
                         */
                        ath12k_warn(ar->ab,
                                    "Setting more than one MCS Value in bitrate mask not supported\n");
@@ -1118,7 +1118,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
                ieee80211_iterate_stations_mtx(hw,
                                               ath12k_mac_disable_peer_fixed_rate,
                                               arvif);
-@@ -10224,9 +10769,10 @@ ath12k_mac_op_set_bitrate_mask(struct ie
+@@ -11357,9 +11902,10 @@ ath12k_mac_op_set_bitrate_mask(struct ie
                                               arvif);
        }
  
@@ -1133,8 +1133,8 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  
 --- a/drivers/net/wireless/ath/ath12k/wmi.h
 +++ b/drivers/net/wireless/ath/ath12k/wmi.h
-@@ -220,6 +220,22 @@ enum WMI_HOST_WLAN_BAND {
-       WMI_HOST_WLAN_2G_5G_CAP = 3,
+@@ -222,6 +222,22 @@ enum WMI_HOST_WLAN_BAND {
+       WMI_HOST_WLAN_2GHZ_5GHZ_CAP     = 3,
  };
  
 +/* Parameters used for WMI_VDEV_PARAM_AUTORATE_MISC_CFG command.
@@ -1156,7 +1156,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
  enum wmi_cmd_group {
        /* 0 to 2 are reserved */
        WMI_GRP_START = 0x3,
-@@ -1145,7 +1161,9 @@ enum wmi_tlv_vdev_param {
+@@ -1169,7 +1185,9 @@ enum wmi_tlv_vdev_param {
        WMI_VDEV_PARAM_HE_RANGE_EXT,
        WMI_VDEV_PARAM_ENABLE_BCAST_PROBE_RESPONSE,
        WMI_VDEV_PARAM_FILS_MAX_CHANNEL_GUARD_TIME,
@@ -1166,7 +1166,7 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
        WMI_VDEV_PARAM_SET_HE_SOUNDING_MODE = 0x87,
        WMI_VDEV_PARAM_6GHZ_PARAMS = 0x99,
        WMI_VDEV_PARAM_PROTOTYPE = 0x8000,
-@@ -3579,6 +3597,15 @@ struct wmi_force_fw_hang_cmd {
+@@ -3631,6 +3649,15 @@ struct wmi_force_fw_hang_cmd {
        __le32 delay_time_ms;
  } __packed;
  
index 922cdf17fd4e696e14c3b6874d15c80a3527e29f..55c9aa94f601721a6b40979acb8568daf66fec72 100644 (file)
@@ -124,7 +124,7 @@ Acked-by: Jeff Johnson <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath12k/mac.c
 +++ b/drivers/net/wireless/ath/ath12k/mac.c
-@@ -207,7 +207,7 @@ ath12k_phymodes[NUM_NL80211_BANDS][ATH12
+@@ -209,7 +209,7 @@ ath12k_phymodes[NUM_NL80211_BANDS][ATH12
                        [NL80211_CHAN_WIDTH_40] = MODE_11BE_EHT40,
                        [NL80211_CHAN_WIDTH_80] = MODE_11BE_EHT80,
                        [NL80211_CHAN_WIDTH_160] = MODE_11BE_EHT160,
@@ -133,7 +133,7 @@ Acked-by: Jeff Johnson <[email protected]>
                        [NL80211_CHAN_WIDTH_320] = MODE_11BE_EHT320,
        },
        [NL80211_BAND_6GHZ] = {
-@@ -218,7 +218,7 @@ ath12k_phymodes[NUM_NL80211_BANDS][ATH12
+@@ -220,7 +220,7 @@ ath12k_phymodes[NUM_NL80211_BANDS][ATH12
                        [NL80211_CHAN_WIDTH_40] = MODE_11BE_EHT40,
                        [NL80211_CHAN_WIDTH_80] = MODE_11BE_EHT80,
                        [NL80211_CHAN_WIDTH_160] = MODE_11BE_EHT160,
@@ -142,7 +142,7 @@ Acked-by: Jeff Johnson <[email protected]>
                        [NL80211_CHAN_WIDTH_320] = MODE_11BE_EHT320,
        },
  
-@@ -2638,17 +2638,6 @@ static void ath12k_peer_assoc_h_he(struc
+@@ -2556,17 +2556,6 @@ static void ath12k_peer_assoc_h_he(struc
  
        switch (link_sta->bandwidth) {
        case IEEE80211_STA_RX_BW_160:
@@ -160,7 +160,7 @@ Acked-by: Jeff Johnson <[email protected]>
                v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_160);
                arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v;
  
-@@ -2935,16 +2924,11 @@ static enum wmi_phy_mode ath12k_mac_get_
+@@ -2853,16 +2842,11 @@ static enum wmi_phy_mode ath12k_mac_get_
                                                    struct ieee80211_link_sta *link_sta)
  {
        if (link_sta->bandwidth == IEEE80211_STA_RX_BW_160) {
@@ -181,7 +181,7 @@ Acked-by: Jeff Johnson <[email protected]>
        }
  
        if (link_sta->bandwidth == IEEE80211_STA_RX_BW_80)
-@@ -2966,11 +2950,8 @@ static enum wmi_phy_mode ath12k_mac_get_
+@@ -2884,11 +2868,8 @@ static enum wmi_phy_mode ath12k_mac_get_
                if (link_sta->he_cap.he_cap_elem.phy_cap_info[0] &
                     IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G)
                        return MODE_11AX_HE160;
@@ -195,7 +195,7 @@ Acked-by: Jeff Johnson <[email protected]>
        }
  
        if (link_sta->bandwidth == IEEE80211_STA_RX_BW_80)
-@@ -2998,14 +2979,10 @@ static enum wmi_phy_mode ath12k_mac_get_
+@@ -2916,14 +2897,10 @@ static enum wmi_phy_mode ath12k_mac_get_
                    IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G)
                        return MODE_11BE_EHT160;
  
@@ -211,7 +211,7 @@ Acked-by: Jeff Johnson <[email protected]>
        }
  
        if (link_sta->bandwidth == IEEE80211_STA_RX_BW_80)
-@@ -7077,8 +7054,6 @@ static void ath12k_mac_set_hemcsmap(stru
+@@ -7630,8 +7607,6 @@ static void ath12k_mac_set_hemcsmap(stru
        mcs_nss->tx_mcs_80 = cpu_to_le16(txmcs_map & 0xffff);
        mcs_nss->rx_mcs_160 = cpu_to_le16(rxmcs_map & 0xffff);
        mcs_nss->tx_mcs_160 = cpu_to_le16(txmcs_map & 0xffff);
@@ -220,7 +220,7 @@ Acked-by: Jeff Johnson <[email protected]>
  }
  
  static void ath12k_mac_copy_he_cap(struct ath12k *ar,
-@@ -7100,6 +7075,7 @@ static void ath12k_mac_copy_he_cap(struc
+@@ -7653,6 +7628,7 @@ static void ath12k_mac_copy_he_cap(struc
                IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G |
                IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
                IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G;
@@ -228,7 +228,7 @@ Acked-by: Jeff Johnson <[email protected]>
        he_cap_elem->phy_cap_info[0] &=
                ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G;
        he_cap_elem->phy_cap_info[5] &=
-@@ -10176,10 +10152,6 @@ static __le16
+@@ -11309,10 +11285,6 @@ static __le16
  ath12k_mac_get_tx_mcs_map(const struct ieee80211_sta_he_cap *he_cap)
  {
        if (he_cap->he_cap_elem.phy_cap_info[0] &
@@ -241,7 +241,7 @@ Acked-by: Jeff Johnson <[email protected]>
  
 --- a/drivers/net/wireless/ath/ath12k/wmi.c
 +++ b/drivers/net/wireless/ath/ath12k/wmi.c
-@@ -1021,8 +1021,6 @@ static void ath12k_wmi_put_wmi_channel(s
+@@ -1066,8 +1066,6 @@ static void ath12k_wmi_put_wmi_channel(s
                        chan->band_center_freq1 = cpu_to_le32(center_freq1 - 40);
  
                chan->band_center_freq2 = cpu_to_le32(center_freq1);
@@ -252,7 +252,7 @@ Acked-by: Jeff Johnson <[email protected]>
        }
 --- a/drivers/net/wireless/ath/ath12k/wmi.h
 +++ b/drivers/net/wireless/ath/ath12k/wmi.h
-@@ -3726,7 +3726,6 @@ struct wmi_vdev_install_key_arg {
+@@ -3798,7 +3798,6 @@ struct wmi_vdev_install_key_arg {
  #define WMI_HOST_MAX_HE_RATE_SET              3
  #define WMI_HECAP_TXRX_MCS_NSS_IDX_80         0
  #define WMI_HECAP_TXRX_MCS_NSS_IDX_160                1
index 24114e92acb51cf8429455c958a8b83d1916765c..aeaeefeeb0f7dd8daf9c379fb56effd3a6129f0e 100644 (file)
@@ -139,7 +139,7 @@ Acked-by: Jeff Johnson <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath12k/core.h
 +++ b/drivers/net/wireless/ath/ath12k/core.h
-@@ -789,6 +789,8 @@ struct ath12k_pdev_cap {
+@@ -879,6 +879,8 @@ struct ath12k_pdev_cap {
        struct ath12k_band_cap band[NUM_NL80211_BANDS];
        u32 eml_cap;
        u32 mld_cap;
@@ -150,7 +150,7 @@ Acked-by: Jeff Johnson <[email protected]>
  struct mlo_timestamp {
 --- a/drivers/net/wireless/ath/ath12k/mac.c
 +++ b/drivers/net/wireless/ath/ath12k/mac.c
-@@ -2267,6 +2267,34 @@ ath12k_peer_assoc_h_vht_limit(u16 tx_mcs
+@@ -2185,6 +2185,34 @@ ath12k_peer_assoc_h_vht_limit(u16 tx_mcs
        return tx_mcs_set;
  }
  
@@ -185,7 +185,7 @@ Acked-by: Jeff Johnson <[email protected]>
  static void ath12k_peer_assoc_h_vht(struct ath12k *ar,
                                    struct ath12k_link_vif *arvif,
                                    struct ath12k_link_sta *arsta,
-@@ -2284,6 +2312,7 @@ static void ath12k_peer_assoc_h_vht(stru
+@@ -2202,6 +2230,7 @@ static void ath12k_peer_assoc_h_vht(stru
        u8 max_nss, vht_mcs;
        int i, vht_nss, nss_idx;
        bool user_rate_valid = true;
@@ -193,7 +193,7 @@ Acked-by: Jeff Johnson <[email protected]>
  
        lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
  
-@@ -2388,10 +2417,24 @@ static void ath12k_peer_assoc_h_vht(stru
+@@ -2306,10 +2335,24 @@ static void ath12k_peer_assoc_h_vht(stru
        /* TODO:  Check */
        arg->tx_max_mcs_nss = 0xFF;
  
@@ -221,7 +221,7 @@ Acked-by: Jeff Johnson <[email protected]>
  }
  
  static int ath12k_mac_get_max_he_mcs_map(u16 mcs_map, int nss)
-@@ -2484,6 +2527,7 @@ static void ath12k_peer_assoc_h_he(struc
+@@ -2402,6 +2445,7 @@ static void ath12k_peer_assoc_h_he(struc
        u16 he_tx_mcs = 0, v = 0;
        int he_nss, nss_idx;
        bool user_rate_valid = true;
@@ -229,7 +229,7 @@ Acked-by: Jeff Johnson <[email protected]>
  
        if (WARN_ON(ath12k_mac_vif_link_chan(vif, link_id, &def)))
                return;
-@@ -2681,9 +2725,25 @@ static void ath12k_peer_assoc_h_he(struc
+@@ -2599,9 +2643,25 @@ static void ath12k_peer_assoc_h_he(struc
        max_nss = min(max_nss, ar->num_tx_chains);
        arg->peer_nss = min(link_sta->rx_nss, max_nss);
  
@@ -257,7 +257,7 @@ Acked-by: Jeff Johnson <[email protected]>
  }
  
  static void ath12k_peer_assoc_h_he_6ghz(struct ath12k *ar,
-@@ -2924,10 +2984,13 @@ static enum wmi_phy_mode ath12k_mac_get_
+@@ -2842,10 +2902,13 @@ static enum wmi_phy_mode ath12k_mac_get_
                                                    struct ieee80211_link_sta *link_sta)
  {
        if (link_sta->bandwidth == IEEE80211_STA_RX_BW_160) {
@@ -273,7 +273,7 @@ Acked-by: Jeff Johnson <[email protected]>
                return MODE_11AC_VHT160;
        }
  
-@@ -6826,10 +6889,8 @@ ath12k_create_vht_cap(struct ath12k *ar,
+@@ -7379,10 +7442,8 @@ ath12k_create_vht_cap(struct ath12k *ar,
  
        ath12k_set_vht_txbf_cap(ar, &vht_cap.cap);
  
@@ -286,19 +286,19 @@ Acked-by: Jeff Johnson <[email protected]>
  
        rxmcs_map = 0;
        txmcs_map = 0;
-@@ -11437,7 +11498,8 @@ ath12k_mac_setup_radio_iface_comb(struct
-       comb[0].radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) |
-                                       BIT(NL80211_CHAN_WIDTH_20) |
-                                       BIT(NL80211_CHAN_WIDTH_40) |
--                                      BIT(NL80211_CHAN_WIDTH_80);
-+                                      BIT(NL80211_CHAN_WIDTH_80) |
-+                                      BIT(NL80211_CHAN_WIDTH_160);
+@@ -12654,7 +12715,8 @@ ath12k_mac_setup_radio_iface_comb(struct
+               comb[0].radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) |
+                                               BIT(NL80211_CHAN_WIDTH_20) |
+                                               BIT(NL80211_CHAN_WIDTH_40) |
+-                                              BIT(NL80211_CHAN_WIDTH_80);
++                                              BIT(NL80211_CHAN_WIDTH_80) |
++                                              BIT(NL80211_CHAN_WIDTH_160);
+       }
  
        return 0;
- }
-@@ -11811,6 +11873,9 @@ static int ath12k_mac_hw_register(struct
-       ieee80211_hw_set(hw, SUPPORTS_TX_FRAG);
+@@ -13031,6 +13093,9 @@ static int ath12k_mac_hw_register(struct
        ieee80211_hw_set(hw, REPORTS_LOW_ACK);
+       ieee80211_hw_set(hw, NO_VIRTUAL_MONITOR);
  
 +      if (cap->nss_ratio_enabled)
 +              ieee80211_hw_set(hw, SUPPORTS_VHT_EXT_NSS_BW);
@@ -308,7 +308,7 @@ Acked-by: Jeff Johnson <[email protected]>
                ieee80211_hw_set(hw, TX_AMPDU_SETUP_IN_HW);
 --- a/drivers/net/wireless/ath/ath12k/mac.h
 +++ b/drivers/net/wireless/ath/ath12k/mac.h
-@@ -38,6 +38,8 @@ struct ath12k_generic_iter {
+@@ -41,6 +41,8 @@ struct ath12k_generic_iter {
  #define IEEE80211_DISABLE_VHT_MCS_SUPPORT_0_11        BIT(24)
  
  #define ATH12K_CHAN_WIDTH_NUM                 14
@@ -319,7 +319,7 @@ Acked-by: Jeff Johnson <[email protected]>
  #define ATH12K_TX_POWER_MIN_VAL       0
 --- a/drivers/net/wireless/ath/ath12k/wmi.c
 +++ b/drivers/net/wireless/ath/ath12k/wmi.c
-@@ -525,6 +525,10 @@ ath12k_pull_mac_phy_cap_svc_ready_ext(st
+@@ -537,6 +537,10 @@ ath12k_pull_mac_phy_cap_svc_ready_ext(st
                pdev_cap->he_mcs = le32_to_cpu(mac_caps->he_supp_mcs_5g);
                pdev_cap->tx_chain_mask = le32_to_cpu(mac_caps->tx_chain_mask_5g);
                pdev_cap->rx_chain_mask = le32_to_cpu(mac_caps->rx_chain_mask_5g);
@@ -330,7 +330,7 @@ Acked-by: Jeff Johnson <[email protected]>
        } else {
                return -EINVAL;
        }
-@@ -1014,7 +1018,8 @@ static void ath12k_wmi_put_wmi_channel(s
+@@ -1059,7 +1063,8 @@ static void ath12k_wmi_put_wmi_channel(s
  
                chan->band_center_freq2 = cpu_to_le32(center_freq1);
  
@@ -342,7 +342,7 @@ Acked-by: Jeff Johnson <[email protected]>
                else
 --- a/drivers/net/wireless/ath/ath12k/wmi.h
 +++ b/drivers/net/wireless/ath/ath12k/wmi.h
-@@ -2290,6 +2290,21 @@ enum wmi_direct_buffer_module {
+@@ -2328,6 +2328,21 @@ enum wmi_direct_buffer_module {
        WMI_DIRECT_BUF_MAX
  };
  
@@ -364,7 +364,7 @@ Acked-by: Jeff Johnson <[email protected]>
  struct ath12k_wmi_pdev_band_arg {
        u32 pdev_id;
        u32 start_freq;
-@@ -2606,6 +2621,12 @@ struct ath12k_wmi_hw_mode_cap_params {
+@@ -2647,6 +2662,12 @@ struct ath12k_wmi_hw_mode_cap_params {
  } __packed;
  
  #define WMI_MAX_HECAP_PHY_SIZE                 (3)
@@ -377,17 +377,3 @@ Acked-by: Jeff Johnson <[email protected]>
  
  /* pdev_id is present in lower 16 bits of pdev_and_hw_link_ids in
   * ath12k_wmi_mac_phy_caps_params & ath12k_wmi_caps_ext_params.
-@@ -2647,6 +2668,13 @@ struct ath12k_wmi_mac_phy_caps_params {
-       __le32 he_cap_info_2g_ext;
-       __le32 he_cap_info_5g_ext;
-       __le32 he_cap_info_internal;
-+      __le32 wireless_modes;
-+      __le32 low_2ghz_chan_freq;
-+      __le32 high_2ghz_chan_freq;
-+      __le32 low_5ghz_chan_freq;
-+      __le32 high_5ghz_chan_freq;
-+      __le32 nss_ratio;
-+
- } __packed;
- struct ath12k_wmi_hal_reg_caps_ext_params {
index fbace1f705d50e1ca49b218bf0a3b457573dff05..fd618f784f1d6f59de2fb34e0af78466941fe5f7 100644 (file)
@@ -132,7 +132,7 @@ Acked-by: Jeff Johnson <[email protected]>
 
 --- a/drivers/net/wireless/ath/ath12k/mac.c
 +++ b/drivers/net/wireless/ath/ath12k/mac.c
-@@ -2726,8 +2726,10 @@ static void ath12k_peer_assoc_h_he(struc
+@@ -2644,8 +2644,10 @@ static void ath12k_peer_assoc_h_he(struc
        arg->peer_nss = min(link_sta->rx_nss, max_nss);
  
        if (arg->peer_phymode == MODE_11AX_HE160) {
@@ -144,7 +144,7 @@ Acked-by: Jeff Johnson <[email protected]>
                arg->peer_bw_rxnss_override = ATH12K_BW_NSS_MAP_ENABLE;
  
                if (!rx_nss) {
-@@ -6912,6 +6914,12 @@ ath12k_create_vht_cap(struct ath12k *ar,
+@@ -7465,6 +7467,12 @@ ath12k_create_vht_cap(struct ath12k *ar,
        vht_cap.vht_mcs.rx_mcs_map = cpu_to_le16(rxmcs_map);
        vht_cap.vht_mcs.tx_mcs_map = cpu_to_le16(txmcs_map);
  
@@ -157,7 +157,7 @@ Acked-by: Jeff Johnson <[email protected]>
        return vht_cap;
  }
  
-@@ -7092,11 +7100,12 @@ static void ath12k_mac_set_hemcsmap(stru
+@@ -7645,11 +7653,12 @@ static void ath12k_mac_set_hemcsmap(stru
                                    struct ieee80211_sta_he_cap *he_cap)
  {
        struct ieee80211_he_mcs_nss_supp *mcs_nss = &he_cap->he_mcs_nss_supp;
@@ -173,7 +173,7 @@ Acked-by: Jeff Johnson <[email protected]>
        for (i = 0; i < 8; i++) {
                if (i < ar->num_tx_chains &&
                    (ar->cfg_tx_chainmask >> cap->tx_chain_mask_shift) & BIT(i))
-@@ -7109,12 +7118,24 @@ static void ath12k_mac_set_hemcsmap(stru
+@@ -7662,12 +7671,24 @@ static void ath12k_mac_set_hemcsmap(stru
                        rxmcs_map |= IEEE80211_HE_MCS_SUPPORT_0_11 << (i * 2);
                else
                        rxmcs_map |= IEEE80211_HE_MCS_NOT_SUPPORTED << (i * 2);
index fb9cfd889144fe2a5670bd9e47dc65a4411703ab..9f435f92df069432be6f4d00663f24e9c6d16a57 100644 (file)
@@ -12,7 +12,7 @@ This reverts commit cdad737160571a98cc4933a62c9f2728e965ab27.
 
 --- a/drivers/net/wireless/ath/ath12k/ce.h
 +++ b/drivers/net/wireless/ath/ath12k/ce.h
-@@ -148,7 +148,7 @@ struct ath12k_ce_pipe {
+@@ -159,7 +159,7 @@ struct ath12k_ce_pipe {
        void (*send_cb)(struct ath12k_ce_pipe *pipe);
        void (*recv_cb)(struct ath12k_base *ab, struct sk_buff *skb);
  
@@ -44,7 +44,7 @@ This reverts commit cdad737160571a98cc4933a62c9f2728e965ab27.
  
        return IRQ_HANDLED;
  }
-@@ -683,7 +683,7 @@ static int ath12k_pci_config_irq(struct
+@@ -684,7 +684,7 @@ static int ath12k_pci_config_irq(struct
  
                irq_idx = ATH12K_PCI_IRQ_CE0_OFFSET + i;
  
@@ -53,7 +53,7 @@ This reverts commit cdad737160571a98cc4933a62c9f2728e965ab27.
  
                ret = request_irq(irq, ath12k_pci_ce_interrupt_handler,
                                  ab_pci->irq_flags, irq_name[irq_idx],
-@@ -970,7 +970,7 @@ static void ath12k_pci_aspm_restore(stru
+@@ -967,7 +967,7 @@ static void ath12k_pci_aspm_restore(stru
                                                   PCI_EXP_LNKCTL_ASPMC);
  }
  
@@ -62,7 +62,7 @@ This reverts commit cdad737160571a98cc4933a62c9f2728e965ab27.
  {
        int i;
  
-@@ -980,7 +980,7 @@ static void ath12k_pci_cancel_workqueue(
+@@ -977,7 +977,7 @@ static void ath12k_pci_cancel_workqueue(
                if (ath12k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR)
                        continue;
  
@@ -71,7 +71,7 @@ This reverts commit cdad737160571a98cc4933a62c9f2728e965ab27.
        }
  }
  
-@@ -988,7 +988,7 @@ static void ath12k_pci_ce_irq_disable_sy
+@@ -985,7 +985,7 @@ static void ath12k_pci_ce_irq_disable_sy
  {
        ath12k_pci_ce_irqs_disable(ab);
        ath12k_pci_sync_ce_irqs(ab);
diff --git a/package/kernel/mac80211/patches/ath9k/509-ath9k-use-devm-for-irq-and-ioremap-resource.patch b/package/kernel/mac80211/patches/ath9k/509-ath9k-use-devm-for-irq-and-ioremap-resource.patch
deleted file mode 100644 (file)
index 8642389..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-From 454255e44bf48d8498ac3413389513138ab57bf6 Mon Sep 17 00:00:00 2001
-From: Rosen Penev <[email protected]>
-Date: Sat, 4 Jan 2025 14:24:46 -0800
-Subject: [PATCH] wifi: ath9k: ahb: do ioremap resource in one step
-
-Simplifies probe slightly and adds extra error codes.
-
-Switching from devm_ioremap to the platform variant ends up calling
-devm_request_mem_region, which reserves the memory region for the
-various wmacs. Per board, there is only one wmac and after some fairly
-thorough analysis, there are no overlapping memory regions between wmacs
-and other devices on the ahb.
-
-Tested on a TP-Link Archer C7v2.
-
-Signed-off-by: Rosen Penev <[email protected]>
----
- drivers/net/wireless/ath/ath9k/ahb.c | 13 +++----------
- 1 file changed, 3 insertions(+), 10 deletions(-)
-
---- a/drivers/net/wireless/ath/ath9k/ahb.c
-+++ b/drivers/net/wireless/ath/ath9k/ahb.c
-@@ -74,7 +74,6 @@ static int ath_ahb_probe(struct platform
-       void __iomem *mem;
-       struct ath_softc *sc;
-       struct ieee80211_hw *hw;
--      struct resource *res;
-       const struct platform_device_id *id = platform_get_device_id(pdev);
-       int irq;
-       int ret = 0;
-@@ -86,16 +85,10 @@ static int ath_ahb_probe(struct platform
-               return -EINVAL;
-       }
--      res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
--      if (res == NULL) {
--              dev_err(&pdev->dev, "no memory resource found\n");
--              return -ENXIO;
--      }
--
--      mem = devm_ioremap(&pdev->dev, res->start, resource_size(res));
--      if (mem == NULL) {
-+      mem = devm_platform_ioremap_resource(pdev, 0);
-+      if (IS_ERR(mem)) {
-               dev_err(&pdev->dev, "ioremap failed\n");
--              return -ENOMEM;
-+              return PTR_ERR(mem);
-       }
-       irq = platform_get_irq(pdev, 0);
index 4149e86e45e12db5476dd8251d465c6138ec0ae7..b92c19849e01269d23d41eba57a6ec270ed4df6b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/ath9k.h
 +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
-@@ -845,6 +845,9 @@ static inline int ath9k_dump_btcoex(stru
+@@ -844,6 +844,9 @@ static inline int ath9k_dump_btcoex(stru
  #ifdef CPTCFG_MAC80211_LEDS
  void ath_init_leds(struct ath_softc *sc);
  void ath_deinit_leds(struct ath_softc *sc);
@@ -10,7 +10,7 @@
  #else
  static inline void ath_init_leds(struct ath_softc *sc)
  {
-@@ -981,6 +984,13 @@ void ath_ant_comb_scan(struct ath_softc
+@@ -980,6 +983,13 @@ void ath_ant_comb_scan(struct ath_softc
  
  #define ATH9K_NUM_CHANCTX  2 /* supports 2 operating channels */
  
@@ -24,7 +24,7 @@
  struct ath_softc {
        struct ieee80211_hw *hw;
        struct device *dev;
-@@ -1036,9 +1046,8 @@ struct ath_softc {
+@@ -1035,9 +1045,8 @@ struct ath_softc {
        spinlock_t chan_lock;
  
  #ifdef CPTCFG_MAC80211_LEDS
index d7fe5b79f0a98d7eaf30cad86e112e468fcca3da..7b0dd850b164b57e1abd1dda76f3fe3f14f48fc6 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  #include "common.h"
  #include "debug.h"
-@@ -1048,6 +1050,10 @@ struct ath_softc {
+@@ -1047,6 +1049,10 @@ struct ath_softc {
  #ifdef CPTCFG_MAC80211_LEDS
        const char *led_default_trigger;
        struct list_head leds;
index fe471923d215cf032d13e211f54ef24a83a980a3..9992ccfe37aa0475d78cf1b9bb201689cb029e08 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Rafał Miłecki <[email protected]>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -984,8 +984,36 @@ static struct wireless_dev *brcmf_cfg802
+@@ -983,8 +983,36 @@ static struct wireless_dev *brcmf_cfg802
        struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
        struct brcmf_pub *drvr = cfg->pub;
        struct wireless_dev *wdev;
index b9907f61296654005b5d95840fc1a4d69d15fa84..9063bba8474ec3145fda8a489613c7c89e5de36c 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Phil Elwell <[email protected]>
  #include <net/cfg80211.h>
  #include <net/netlink.h>
  #include <uapi/linux/if_arp.h>
-@@ -8215,31 +8216,45 @@ static void brcmf_cfg80211_reg_notifier(
+@@ -8223,31 +8224,45 @@ static void brcmf_cfg80211_reg_notifier(
        struct brcmf_if *ifp = brcmf_get_ifp(cfg->pub, 0);
        struct brcmf_pub *drvr = cfg->pub;
        struct brcmf_fil_country_le ccreq;
index a05171be48dfd522a8542ee5e184d7aa4b47afa7..089c0ea158a6505110c577f8c10724521cfaa0d2 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <[email protected]>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -3342,6 +3342,7 @@ brcmf_cfg80211_set_power_mgmt(struct wip
+@@ -3343,6 +3343,7 @@ brcmf_cfg80211_set_power_mgmt(struct wip
                        bphy_err(drvr, "error (%d)\n", err);
        }
  
index 54cf073229a95d12a84bec406a23b887a483f456..74a373ec62e592a87f8d756d5a40cba2f0bda9de 100644 (file)
@@ -121,9 +121,9 @@ JIRA: SWWLAN-136577
  {
        struct brcmf_bus *bus_if = dev_get_drvdata(dev);
        struct brcmf_pub *drvr = bus_if->drvr;
-@@ -1363,10 +1363,13 @@ int brcmf_attach(struct device *dev)
-       brcmf_fweh_register(drvr, BRCMF_E_PSM_WATCHDOG,
-                           brcmf_psm_watchdog_notify);
+@@ -1365,10 +1365,13 @@ int brcmf_attach(struct device *dev)
+       brcmf_fwvid_get_cfg80211_ops(drvr);
  
 -      ret = brcmf_bus_started(drvr, drvr->ops);
 -      if (ret != 0) {
@@ -151,17 +151,17 @@ JIRA: SWWLAN-136577
  #undef pr_fmt
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.h
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.h
-@@ -94,7 +94,8 @@ struct brcmf_cfg80211_info;
-       BRCMF_ENUM_DEF(FIFO_CREDIT_MAP, 74) \
-       BRCMF_ENUM_DEF(ACTION_FRAME_RX, 75) \
-       BRCMF_ENUM_DEF(TDLS_PEER_EVENT, 92) \
--      BRCMF_ENUM_DEF(BCMC_CREDIT_SUPPORT, 127)
-+      BRCMF_ENUM_DEF(BCMC_CREDIT_SUPPORT, 127) \
+@@ -98,7 +98,8 @@ struct brcmf_cfg80211_info;
+       BRCMF_ABSTRACT_ENUM_DEF(EXT_AUTH_REQ, 0) \
+       BRCMF_ABSTRACT_ENUM_DEF(EXT_AUTH_FRAME_RX, 1) \
+       BRCMF_ABSTRACT_ENUM_DEF(MGMT_FRAME_TXSTATUS, 2) \
+-      BRCMF_ABSTRACT_ENUM_DEF(MGMT_FRAME_OFFCHAN_DONE, 3)
++      BRCMF_ABSTRACT_ENUM_DEF(MGMT_FRAME_OFFCHAN_DONE, 3) \
 +      BRCMF_ENUM_DEF(ULP, 146)
  
  #define BRCMF_ENUM_DEF(id, val) \
        BRCMF_E_##id = (val),
-@@ -102,6 +103,12 @@ struct brcmf_cfg80211_info;
+@@ -106,6 +107,12 @@ struct brcmf_cfg80211_info;
  /* firmware event codes sent by the dongle */
  enum brcmf_fweh_event_code {
        BRCMF_FWEH_EVENT_ENUM_DEFLIST
@@ -174,7 +174,7 @@ JIRA: SWWLAN-136577
  };
  #undef BRCMF_ENUM_DEF
  
-@@ -280,6 +287,28 @@ struct brcmf_if_event {
+@@ -284,6 +291,28 @@ struct brcmf_if_event {
        u8 role;
  };
  
@@ -692,7 +692,7 @@ JIRA: SWWLAN-136577
  #endif /* BRCMFMAC_SDIO_H */
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
-@@ -1202,7 +1202,7 @@ static void brcmf_usb_probe_phase2(struc
+@@ -1211,7 +1211,7 @@ static void brcmf_usb_probe_phase2(struc
                goto error;
  
        /* Attach to the common driver interface */
@@ -701,7 +701,7 @@ JIRA: SWWLAN-136577
        if (ret)
                goto error;
  
-@@ -1282,7 +1282,7 @@ static int brcmf_usb_probe_cb(struct brc
+@@ -1291,7 +1291,7 @@ static int brcmf_usb_probe_cb(struct brc
                ret = brcmf_alloc(devinfo->dev, devinfo->settings);
                if (ret)
                        goto fail;
index 285eb99fac1eee0a1ca8181108bc3d688a8dd057..23a9c62b1873126cbc0dc5e3888cb71eeca6702d 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Chi-hsien Lin <[email protected]>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -2495,43 +2495,50 @@ brcmf_cfg80211_connect(struct wiphy *wip
+@@ -2496,43 +2496,50 @@ brcmf_cfg80211_connect(struct wiphy *wip
                goto done;
        }
  
index be9e39e71af161f57be020a7e002311005cee019..8bd63cd2d55e33cb3cad86b3455ccf348e3d8c65 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Álvaro Fernández Rojas <[email protected]>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -7994,6 +7994,7 @@ static s32 brcmf_translate_country_code(
+@@ -8002,6 +8002,7 @@ static s32 brcmf_translate_country_code(
        return 0;
  }
  
@@ -17,7 +17,7 @@ Signed-off-by: Álvaro Fernández Rojas <[email protected]>
  static int
  brcmf_parse_dump_obss(char *buf, struct brcmf_dump_survey *survey)
  {
-@@ -8216,6 +8217,7 @@ exit:
+@@ -8224,6 +8225,7 @@ exit:
                brcmf_set_mpc(ifp, 1);
        return err;
  }
@@ -25,7 +25,7 @@ Signed-off-by: Álvaro Fernández Rojas <[email protected]>
  
  static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy,
                                        struct regulatory_request *req)
-@@ -8382,8 +8384,10 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -8390,8 +8392,10 @@ struct brcmf_cfg80211_info *brcmf_cfg802
        if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_GTK))
                ops->set_rekey_data = brcmf_cfg80211_set_rekey_data;
  #endif
index 52060f434b6a1f5b7bb50579ab37b2e2bb18e779..c9cac8284fc4e174e514361103b669101dd0ce5e 100644 (file)
@@ -54,7 +54,7 @@ Signed-off-by: Robert Marko <[email protected]>
 +      depends on MHI_BUS
 +      depends on QRTR
 +      depends on QRTR_MHI
-       select PCI_PWRCTL_PWRSEQ if HAVE_PWRCTL
+       select PCI_PWRCTRL_PWRSEQ if HAVE_PWRCTRL
        help
          This module adds support for PCIE bus
 --- a/local-symbols
index 2d25f1c5c3ff2e0673e13954a253a7aaa90f1ba3..67211285873c419a4e0d20f3babe68ce3e64c38a 100644 (file)
        TP_printk("%s", __get_str(msg))
 --- a/drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h
 +++ b/drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h
-@@ -87,7 +87,11 @@ static inline void trace_ ## name(proto)
+@@ -88,7 +88,11 @@ static inline void trace_ ## name(proto)
  #endif
  
  #define DEV_ENTRY     __string(dev, dev_name(dev))
index 2c5235e49f1a388c099c01a5e3bff72d5d3c6a36..c296c346714ed71b2f6b6a075eabf707442de85f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath10k/snoc.c
 +++ b/drivers/net/wireless/ath/ath10k/snoc.c
-@@ -1635,10 +1635,10 @@ static int ath10k_fw_init(struct ath10k
+@@ -1638,10 +1638,10 @@ static int ath10k_fw_init(struct ath10k
  
        ar_snoc->fw.dev = &pdev->dev;
  
index a8ffce1e30dc1bc9b25f3f7aeb5ca65e87ab0c85..4180682e81e026f61b5eef5fd057448122280faf 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/intel/iwlwifi/mvm/tt.c
 +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tt.c
-@@ -638,8 +638,13 @@ static int iwl_mvm_tzone_get_temp(struct
+@@ -626,8 +626,13 @@ static int iwl_mvm_tzone_get_temp(struct
        return 0;
  }
  
@@ -14,7 +14,7 @@
  {
        struct iwl_mvm *mvm = thermal_zone_device_priv(device);
  
-@@ -682,13 +687,23 @@ static void iwl_mvm_thermal_zone_registe
+@@ -670,13 +675,23 @@ static void iwl_mvm_thermal_zone_registe
        for (i = 0 ; i < IWL_MAX_DTS_TRIPS; i++) {
                mvm->tz_device.trips[i].temperature = THERMAL_TEMP_INVALID;
                mvm->tz_device.trips[i].type = THERMAL_TRIP_PASSIVE;
index 031cc183ca2f12132b2857f35e3c9dffc465042a..9e027fecb6b4dc0668bfb0367fcdec3d38eb3372 100644 (file)
@@ -1,43 +1,54 @@
 --- a/net/wireless/core.c
 +++ b/net/wireless/core.c
-@@ -162,11 +162,15 @@ int cfg80211_switch_netns(struct cfg8021
+@@ -162,11 +162,19 @@ int cfg80211_switch_netns(struct cfg8021
        list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
                if (!wdev->netdev)
                        continue;
-+#if LINUX_VERSION_IS_GEQ(6,12,0)
-               wdev->netdev->netns_local = false;
+-              wdev->netdev->netns_immutable = false;
++#if LINUX_VERSION_IS_GEQ(6,15,0)
++              wdev->netdev->netns_immutable = true;
++#elif LINUX_VERSION_IS_GEQ(6,12,0)
++              wdev->netdev->netns_local = true;
 +#endif
                err = dev_change_net_namespace(wdev->netdev, net, "wlan%d");
                if (err)
                        break;
-+#if LINUX_VERSION_IS_GEQ(6,12,0)
-               wdev->netdev->netns_local = true;
++#if LINUX_VERSION_IS_GEQ(6,15,0)
+               wdev->netdev->netns_immutable = true;
++#elif LINUX_VERSION_IS_GEQ(6,12,0)
++              wdev->netdev->netns_local = true;
 +#endif
        }
  
        if (err) {
-@@ -178,11 +182,15 @@ int cfg80211_switch_netns(struct cfg8021
+@@ -178,11 +186,19 @@ int cfg80211_switch_netns(struct cfg8021
                                                     list) {
                        if (!wdev->netdev)
                                continue;
-+#if LINUX_VERSION_IS_GEQ(6,12,0)
-                       wdev->netdev->netns_local = false;
++#if LINUX_VERSION_IS_GEQ(6,15,0)
+                       wdev->netdev->netns_immutable = false;
++#elif LINUX_VERSION_IS_GEQ(6,12,0)
++                      wdev->netdev->netns_local = false;
 +#endif
                        err = dev_change_net_namespace(wdev->netdev, net,
                                                        "wlan%d");
                        WARN_ON(err);
-+#if LINUX_VERSION_IS_GEQ(6,12,0)
-                       wdev->netdev->netns_local = true;
++#if LINUX_VERSION_IS_GEQ(6,15,0)
+                       wdev->netdev->netns_immutable = true;
++#elif LINUX_VERSION_IS_GEQ(6,12,0)
++                      wdev->netdev->netns_local = true;
 +#endif
                }
  
                return err;
-@@ -1520,7 +1528,9 @@ static int cfg80211_netdev_notifier_call
+@@ -1521,7 +1537,11 @@ static int cfg80211_netdev_notifier_call
                SET_NETDEV_DEVTYPE(dev, &wiphy_type);
                wdev->netdev = dev;
                /* can only change netns with wiphy */
-+#if LINUX_VERSION_IS_GEQ(6,12,0)
-               dev->netns_local = true;
++#if LINUX_VERSION_IS_GEQ(6,15,0)
+               dev->netns_immutable = true;
++#elif LINUX_VERSION_IS_GEQ(6,12,0)
++              dev->netns_local = true;
 +#endif
  
                cfg80211_init_wdev(wdev);
index 1a093a77d9aa2e501b0cf517ded9b0221ea02ab1..1453bdaa155f5e487e6d9d0282f2d2331bcbeb9f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
-@@ -1579,7 +1579,11 @@ static int brcmf_usb_reset_device(struct
+@@ -1588,7 +1588,11 @@ static int brcmf_usb_reset_device(struct
  
  void brcmf_usb_exit(void)
  {
index 73a082a10c16ed9985cf90d87a51f1948e9351c9..ea6461dcccedb396ee25a95147f56f591375618d 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/virtual/mac80211_hwsim.c
 +++ b/drivers/net/wireless/virtual/mac80211_hwsim.c
-@@ -6670,6 +6670,7 @@ static void hwsim_virtio_rx_done(struct
+@@ -6672,6 +6672,7 @@ static void hwsim_virtio_rx_done(struct
  
  static int init_vqs(struct virtio_device *vdev)
  {
@@ -8,7 +8,7 @@
        struct virtqueue_info vqs_info[HWSIM_NUM_VQS] = {
                [HWSIM_VQ_TX] = { "tx", hwsim_virtio_tx_done },
                [HWSIM_VQ_RX] = { "rx", hwsim_virtio_rx_done },
-@@ -6677,6 +6678,19 @@ static int init_vqs(struct virtio_device
+@@ -6679,6 +6680,19 @@ static int init_vqs(struct virtio_device
  
        return virtio_find_vqs(vdev, HWSIM_NUM_VQS,
                               hwsim_vqs, vqs_info, NULL);
index 0fb34e83cba2ee0608c52621d3606228b79e5ab3..53631859f046234f4d2abd039af2ce71c273027e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/realtek/rtw88/usb.c
 +++ b/drivers/net/wireless/realtek/rtw88/usb.c
-@@ -909,7 +909,11 @@ static int rtw_usb_init_rx(struct rtw_de
+@@ -965,7 +965,11 @@ static int rtw_usb_init_rx(struct rtw_de
        struct sk_buff *rx_skb;
        int i;
  
index 523b5c67f42de5c1b4787a5d02b502577e560ee7..1e1b03514bca4b81f36ed7f684f15abb6985738e 100644 (file)
@@ -17,8 +17,8 @@ Signed-off-by: Christian Marangi <[email protected]>
 
 --- a/backport-include/net/genetlink.h
 +++ b/backport-include/net/genetlink.h
-@@ -172,4 +172,15 @@ static inline int genlmsg_parse(const st
- }
+@@ -192,4 +192,15 @@ int backport_genlmsg_multicast_allns(con
+ #define genlmsg_multicast_allns LINUX_BACKPORT(genlmsg_multicast_allns)
  #endif /* LINUX_VERSION_IS_LESS(5,2,0) */
  
 +#if LINUX_VERSION_IN_RANGE(5,15,0,5,15,169) || \
index dcaa086cf51f4e2d9aaf3a16321010cce4565832..838f0ffeee1c84c4c218402cf8e3428f43f87147 100644 (file)
        .llseek = generic_file_llseek,                                  \
  }
  
-@@ -448,8 +450,9 @@ STA_OPS_RW(agg_status);
+@@ -442,8 +444,9 @@ STA_OPS_RW(agg_status);
  
  /* link sta attributes */
  #define LINK_STA_OPS(name)                                            \
index e6111871c047de726d06467c7401550def59a41f..4a4a9b293d00f121f261e13250191f47171f9888 100644 (file)
@@ -11,7 +11,7 @@
   err_wiphy_new:
 --- a/drivers/net/wireless/marvell/libertas/main.c
 +++ b/drivers/net/wireless/marvell/libertas/main.c
-@@ -935,6 +935,7 @@ struct lbs_private *lbs_add_card(void *c
+@@ -852,6 +852,7 @@ struct lbs_private *lbs_add_card(void *c
                goto err_adapter;
        }
  
index 1a3be12de0c734a7c43d596e93cd1ec2113af1ac..fc57ff0b771fce03710ff3b82b53a9d3679758c0 100644 (file)
@@ -105,7 +105,7 @@ Signed-off-by: Pali Rohár <[email protected]>
  /*
   * This function initializes a command node.
   *
-@@ -193,8 +272,8 @@ static int mwifiex_dnld_cmd_to_fw(struct
+@@ -191,8 +270,8 @@ static int mwifiex_dnld_cmd_to_fw(struct
            cmd_code != HostCmd_CMD_FUNC_SHUTDOWN &&
            cmd_code != HostCmd_CMD_FUNC_INIT) {
                mwifiex_dbg(adapter, ERROR,
@@ -116,7 +116,7 @@ Signed-off-by: Pali Rohár <[email protected]>
                mwifiex_recycle_cmd_node(adapter, cmd_node);
                queue_work(adapter->workqueue, &adapter->main_work);
                return -1;
-@@ -655,8 +734,8 @@ int mwifiex_send_cmd(struct mwifiex_priv
+@@ -651,8 +730,8 @@ int mwifiex_send_cmd(struct mwifiex_priv
        /* Return error, since the command preparation failed */
        if (ret) {
                mwifiex_dbg(adapter, ERROR,
@@ -127,19 +127,7 @@ Signed-off-by: Pali Rohár <[email protected]>
                mwifiex_insert_cmd_to_free_q(adapter, cmd_node);
                return -1;
        }
-@@ -904,8 +983,9 @@ int mwifiex_process_cmdresp(struct mwifi
-       if (adapter->hw_status == MWIFIEX_HW_STATUS_INITIALIZING) {
-               if (ret) {
-                       mwifiex_dbg(adapter, ERROR,
--                                  "%s: cmd %#x failed during\t"
--                                  "initialization\n", __func__, cmdresp_no);
-+                                  "%s: cmd %s (%#x) failed during\t"
-+                                  "initialization\n", __func__,
-+                                  mwifiex_cmd_to_str(cmdresp_no), cmdresp_no);
-                       mwifiex_init_fw_complete(adapter);
-                       return -1;
-               } else if (adapter->last_init_cmd == cmdresp_no)
-@@ -1287,8 +1367,8 @@ mwifiex_process_sleep_confirm_resp(struc
+@@ -1262,8 +1341,8 @@ mwifiex_process_sleep_confirm_resp(struc
  
        if (command != HostCmd_CMD_802_11_PS_MODE_ENH) {
                mwifiex_dbg(adapter, ERROR,
@@ -152,7 +140,7 @@ Signed-off-by: Pali Rohár <[email protected]>
  
 --- a/drivers/net/wireless/marvell/mwifiex/main.h
 +++ b/drivers/net/wireless/marvell/mwifiex/main.h
-@@ -1096,6 +1096,8 @@ void mwifiex_cancel_all_pending_cmd(stru
+@@ -1090,6 +1090,8 @@ void mwifiex_cancel_all_pending_cmd(stru
  void mwifiex_cancel_pending_scan_cmd(struct mwifiex_adapter *adapter);
  void mwifiex_cancel_scan(struct mwifiex_adapter *adapter);
  
diff --git a/package/kernel/mac80211/patches/rt2x00/110-wifi-rt2x00-fix-remove-callback-type-mismatch.patch b/package/kernel/mac80211/patches/rt2x00/110-wifi-rt2x00-fix-remove-callback-type-mismatch.patch
deleted file mode 100644 (file)
index 0c9bb76..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-From: Felix Fietkau <[email protected]>
-Date: Sun, 6 Jul 2025 11:15:13 +0200
-Subject: [PATCH] wifi: rt2x00: fix remove callback type mismatch
-
-The function is used as remove callback for a platform driver.
-It was missed during the conversion from int to void
-
-Fixes: 0edb555a65d1 ("platform: Make platform_driver::remove() return void")
-Signed-off-by: Felix Fietkau <[email protected]>
----
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2x00soc.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00soc.c
-@@ -108,7 +108,7 @@ exit_free_device:
- }
- EXPORT_SYMBOL_GPL(rt2x00soc_probe);
--int rt2x00soc_remove(struct platform_device *pdev)
-+void rt2x00soc_remove(struct platform_device *pdev)
- {
-       struct ieee80211_hw *hw = platform_get_drvdata(pdev);
-       struct rt2x00_dev *rt2x00dev = hw->priv;
-@@ -119,8 +119,6 @@ int rt2x00soc_remove(struct platform_dev
-       rt2x00lib_remove_dev(rt2x00dev);
-       rt2x00soc_free_reg(rt2x00dev);
-       ieee80211_free_hw(hw);
--
--      return 0;
- }
- EXPORT_SYMBOL_GPL(rt2x00soc_remove);
---- a/drivers/net/wireless/ralink/rt2x00/rt2x00soc.h
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00soc.h
-@@ -17,7 +17,7 @@
-  * SoC driver handlers.
-  */
- int rt2x00soc_probe(struct platform_device *pdev, const struct rt2x00_ops *ops);
--int rt2x00soc_remove(struct platform_device *pdev);
-+void rt2x00soc_remove(struct platform_device *pdev);
- #ifdef CONFIG_PM
- int rt2x00soc_suspend(struct platform_device *pdev, pm_message_t state);
- int rt2x00soc_resume(struct platform_device *pdev);
index 957da81d054fd1e8173da1568d51e3ed0130d719..39d8edb9980d133d183b967f45e77b65ea8d2474 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Christian Marangi <[email protected]>
 
 --- a/local-symbols
 +++ b/local-symbols
-@@ -334,6 +334,7 @@ RT2X00_LIB_FIRMWARE=
+@@ -336,6 +336,7 @@ RT2X00_LIB_FIRMWARE=
  RT2X00_LIB_CRYPTO=
  RT2X00_LIB_LEDS=
  RT2X00_LIB_DEBUGFS=
diff --git a/package/kernel/mac80211/patches/rtl/065-v6.15-wifi-rtw88-Don-t-use-static-local-variable-in-rtw882.patch b/package/kernel/mac80211/patches/rtl/065-v6.15-wifi-rtw88-Don-t-use-static-local-variable-in-rtw882.patch
deleted file mode 100644 (file)
index ff04eea..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-From 0d1d165eff9d6cfad51113e18d9d8c9a8de27d6d Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Sun, 26 Jan 2025 16:04:21 +0200
-Subject: [PATCH] wifi: rtw88: Don't use static local variable in
- rtw8821c_set_tx_power_index_by_rate
-
-Some users want to plug two identical USB devices at the same time.
-This static variable could theoretically cause them to use incorrect
-TX power values.
-
-Move the variable to the caller and pass a pointer to it to
-rtw8821c_set_tx_power_index_by_rate().
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/rtw8821c.c | 14 ++++++++------
- 1 file changed, 8 insertions(+), 6 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
-@@ -680,11 +680,11 @@ static void query_phy_status(struct rtw_
- }
- static void
--rtw8821c_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path, u8 rs)
-+rtw8821c_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path,
-+                                  u8 rs, u32 *phy_pwr_idx)
- {
-       struct rtw_hal *hal = &rtwdev->hal;
-       static const u32 offset_txagc[2] = {0x1d00, 0x1d80};
--      static u32 phy_pwr_idx;
-       u8 rate, rate_idx, pwr_index, shift;
-       int j;
-@@ -692,12 +692,12 @@ rtw8821c_set_tx_power_index_by_rate(stru
-               rate = rtw_rate_section[rs][j];
-               pwr_index = hal->tx_pwr_tbl[path][rate];
-               shift = rate & 0x3;
--              phy_pwr_idx |= ((u32)pwr_index << (shift * 8));
-+              *phy_pwr_idx |= ((u32)pwr_index << (shift * 8));
-               if (shift == 0x3 || rate == DESC_RATEVHT1SS_MCS9) {
-                       rate_idx = rate & 0xfc;
-                       rtw_write32(rtwdev, offset_txagc[path] + rate_idx,
--                                  phy_pwr_idx);
--                      phy_pwr_idx = 0;
-+                                  *phy_pwr_idx);
-+                      *phy_pwr_idx = 0;
-               }
-       }
- }
-@@ -705,6 +705,7 @@ rtw8821c_set_tx_power_index_by_rate(stru
- static void rtw8821c_set_tx_power_index(struct rtw_dev *rtwdev)
- {
-       struct rtw_hal *hal = &rtwdev->hal;
-+      u32 phy_pwr_idx = 0;
-       int rs, path;
-       for (path = 0; path < hal->rf_path_num; path++) {
-@@ -712,7 +713,8 @@ static void rtw8821c_set_tx_power_index(
-                       if (rs == RTW_RATE_SECTION_HT_2S ||
-                           rs == RTW_RATE_SECTION_VHT_2S)
-                               continue;
--                      rtw8821c_set_tx_power_index_by_rate(rtwdev, path, rs);
-+                      rtw8821c_set_tx_power_index_by_rate(rtwdev, path, rs,
-+                                                          &phy_pwr_idx);
-               }
-       }
- }
diff --git a/package/kernel/mac80211/patches/rtl/066-v6.15-wifi-rtw88-Fix-a-typo-of-debug-message-in-rtw8723d_i.patch b/package/kernel/mac80211/patches/rtl/066-v6.15-wifi-rtw88-Fix-a-typo-of-debug-message-in-rtw8723d_i.patch
deleted file mode 100644 (file)
index a2404ba..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-From 105dc94233e48ff30e572a50fb39d7e3dec810fa Mon Sep 17 00:00:00 2001
-From: Andrew Kreimer <[email protected]>
-Date: Mon, 3 Feb 2025 20:08:27 +0200
-Subject: [PATCH] wifi: rtw88: Fix a typo of debug message in
- rtw8723d_iqk_check_tx_failed()
-
-There is a typo in debug messages:
- - afer -> after
-
-Fix it via codespell.
-
-Signed-off-by: Andrew Kreimer <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/rtw8723d.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/rtw8723d.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.c
-@@ -444,7 +444,7 @@ static u8 rtw8723d_iqk_check_tx_failed(s
-               rtw_read32(rtwdev, REG_IQK_RES_TX),
-               rtw_read32(rtwdev, REG_IQK_RES_TY));
-       rtw_dbg(rtwdev, RTW_DBG_RFK,
--              "[IQK] 0xe90(before IQK)= 0x%x, 0xe98(afer IQK) = 0x%x\n",
-+              "[IQK] 0xe90(before IQK)= 0x%x, 0xe98(after IQK) = 0x%x\n",
-               rtw_read32(rtwdev, 0xe90),
-               rtw_read32(rtwdev, 0xe98));
-@@ -472,7 +472,7 @@ static u8 rtw8723d_iqk_check_rx_failed(s
-               rtw_read32(rtwdev, REG_IQK_RES_RY));
-       rtw_dbg(rtwdev, RTW_DBG_RFK,
--              "[IQK] 0xea0(before IQK)= 0x%x, 0xea8(afer IQK) = 0x%x\n",
-+              "[IQK] 0xea0(before IQK)= 0x%x, 0xea8(after IQK) = 0x%x\n",
-               rtw_read32(rtwdev, 0xea0),
-               rtw_read32(rtwdev, 0xea8));
diff --git a/package/kernel/mac80211/patches/rtl/069-v6.15-wifi-rtw88-Extend-struct-rtw_pwr_track_tbl-for-RTL88.patch b/package/kernel/mac80211/patches/rtl/069-v6.15-wifi-rtw88-Extend-struct-rtw_pwr_track_tbl-for-RTL88.patch
deleted file mode 100644 (file)
index dec5d59..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-From 62f726848da42554e6d270dfda17ed19bfa3456f Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Tue, 4 Feb 2025 20:38:17 +0200
-Subject: [PATCH] wifi: rtw88: Extend struct rtw_pwr_track_tbl for RTL8814AU
-
-Currently this struct has the members required for chips with 2 RF
-paths. Add more members to support chips with 4 RF paths, like the
-RTL8814AU.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/main.h | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
---- a/drivers/net/wireless/realtek/rtw88/main.h
-+++ b/drivers/net/wireless/realtek/rtw88/main.h
-@@ -1131,14 +1131,26 @@ struct rtw_rfe_def {
-  * For 2G there are cck rate and ofdm rate with different settings.
-  */
- struct rtw_pwr_track_tbl {
-+      const u8 *pwrtrk_5gd_n[RTW_PWR_TRK_5G_NUM];
-+      const u8 *pwrtrk_5gd_p[RTW_PWR_TRK_5G_NUM];
-+      const u8 *pwrtrk_5gc_n[RTW_PWR_TRK_5G_NUM];
-+      const u8 *pwrtrk_5gc_p[RTW_PWR_TRK_5G_NUM];
-       const u8 *pwrtrk_5gb_n[RTW_PWR_TRK_5G_NUM];
-       const u8 *pwrtrk_5gb_p[RTW_PWR_TRK_5G_NUM];
-       const u8 *pwrtrk_5ga_n[RTW_PWR_TRK_5G_NUM];
-       const u8 *pwrtrk_5ga_p[RTW_PWR_TRK_5G_NUM];
-+      const u8 *pwrtrk_2gd_n;
-+      const u8 *pwrtrk_2gd_p;
-+      const u8 *pwrtrk_2gc_n;
-+      const u8 *pwrtrk_2gc_p;
-       const u8 *pwrtrk_2gb_n;
-       const u8 *pwrtrk_2gb_p;
-       const u8 *pwrtrk_2ga_n;
-       const u8 *pwrtrk_2ga_p;
-+      const u8 *pwrtrk_2g_cckd_n;
-+      const u8 *pwrtrk_2g_cckd_p;
-+      const u8 *pwrtrk_2g_cckc_n;
-+      const u8 *pwrtrk_2g_cckc_p;
-       const u8 *pwrtrk_2g_cckb_n;
-       const u8 *pwrtrk_2g_cckb_p;
-       const u8 *pwrtrk_2g_ccka_n;
diff --git a/package/kernel/mac80211/patches/rtl/070-v6.15-wifi-rtw88-Extend-rf_base_addr-and-rf_sipi_addr-for-.patch b/package/kernel/mac80211/patches/rtl/070-v6.15-wifi-rtw88-Extend-rf_base_addr-and-rf_sipi_addr-for-.patch
deleted file mode 100644 (file)
index 393c754..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From d80e7d9b6ba38102f92559dbb647330216ea290b Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Tue, 4 Feb 2025 20:38:43 +0200
-Subject: [PATCH] wifi: rtw88: Extend rf_base_addr and rf_sipi_addr for
- RTL8814AU
-
-These members of struct rtw_chip_info each have a size of 2. Increase
-their size to 4, which is the number of RF paths the RTL8814AU has.
-
-This is required to read and write the RF registers of the RTL8814AU.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/main.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/main.h
-+++ b/drivers/net/wireless/realtek/rtw88/main.h
-@@ -1240,8 +1240,8 @@ struct rtw_chip_info {
-       const struct rtw_hw_reg *dig;
-       const struct rtw_hw_reg *dig_cck;
--      u32 rf_base_addr[2];
--      u32 rf_sipi_addr[2];
-+      u32 rf_base_addr[RTW_RF_PATH_MAX];
-+      u32 rf_sipi_addr[RTW_RF_PATH_MAX];
-       const struct rtw_rf_sipi_addr *rf_sipi_read_addr;
-       u8 fix_rf_phy_num;
-       const struct rtw_ltecoex_addr *ltecoex_addr;
diff --git a/package/kernel/mac80211/patches/rtl/072-v6.15-wifi-rtw88-Constify-some-more-structs-and-arrays.patch b/package/kernel/mac80211/patches/rtl/072-v6.15-wifi-rtw88-Constify-some-more-structs-and-arrays.patch
deleted file mode 100644 (file)
index fe16a7e..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-From e66f3b5c7535bb508e9c561a047b32de4ddc1cda Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Tue, 4 Feb 2025 20:40:22 +0200
-Subject: [PATCH] wifi: rtw88: Constify some more structs and arrays
-
-These structs and arrays are never modified, so make them const:
-
-rtw_band_2ghz
-rtw_band_5ghz
-rtw_pci_tx_queue_idx_addr
-rtw_pci_ops
-rtw_cck_rates
-rtw_ofdm_rates
-rtw_ht_1s_rates
-rtw_ht_2s_rates
-rtw_vht_1s_rates
-rtw_vht_2s_rates
-rtw_rate_section
-rtw_rate_size
-rtw_sdio_ops
-rtw_usb_ops
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/main.c |  4 ++--
- drivers/net/wireless/realtek/rtw88/main.h |  2 +-
- drivers/net/wireless/realtek/rtw88/pci.c  |  4 ++--
- drivers/net/wireless/realtek/rtw88/phy.c  | 26 ++++++++++++++---------
- drivers/net/wireless/realtek/rtw88/phy.h  | 16 +++++++-------
- drivers/net/wireless/realtek/rtw88/sdio.c |  2 +-
- drivers/net/wireless/realtek/rtw88/usb.c  |  2 +-
- 7 files changed, 31 insertions(+), 25 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/main.c
-+++ b/drivers/net/wireless/realtek/rtw88/main.c
-@@ -136,7 +136,7 @@ u16 rtw_desc_to_bitrate(u8 desc_rate)
-       return rate.bitrate;
- }
--static struct ieee80211_supported_band rtw_band_2ghz = {
-+static const struct ieee80211_supported_band rtw_band_2ghz = {
-       .band = NL80211_BAND_2GHZ,
-       .channels = rtw_channeltable_2g,
-@@ -149,7 +149,7 @@ static struct ieee80211_supported_band r
-       .vht_cap = {0},
- };
--static struct ieee80211_supported_band rtw_band_5ghz = {
-+static const struct ieee80211_supported_band rtw_band_5ghz = {
-       .band = NL80211_BAND_5GHZ,
-       .channels = rtw_channeltable_5g,
---- a/drivers/net/wireless/realtek/rtw88/main.h
-+++ b/drivers/net/wireless/realtek/rtw88/main.h
-@@ -61,7 +61,7 @@ enum rtw_hci_type {
- };
- struct rtw_hci {
--      struct rtw_hci_ops *ops;
-+      const struct rtw_hci_ops *ops;
-       enum rtw_hci_type type;
-       u32 rpwm_addr;
---- a/drivers/net/wireless/realtek/rtw88/pci.c
-+++ b/drivers/net/wireless/realtek/rtw88/pci.c
-@@ -20,7 +20,7 @@ module_param_named(disable_aspm, rtw_pci
- MODULE_PARM_DESC(disable_msi, "Set Y to disable MSI interrupt support");
- MODULE_PARM_DESC(disable_aspm, "Set Y to disable PCI ASPM support");
--static u32 rtw_pci_tx_queue_idx_addr[] = {
-+static const u32 rtw_pci_tx_queue_idx_addr[] = {
-       [RTW_TX_QUEUE_BK]       = RTK_PCI_TXBD_IDX_BKQ,
-       [RTW_TX_QUEUE_BE]       = RTK_PCI_TXBD_IDX_BEQ,
-       [RTW_TX_QUEUE_VI]       = RTK_PCI_TXBD_IDX_VIQ,
-@@ -1591,7 +1591,7 @@ static void rtw_pci_destroy(struct rtw_d
-       rtw_pci_io_unmapping(rtwdev, pdev);
- }
--static struct rtw_hci_ops rtw_pci_ops = {
-+static const struct rtw_hci_ops rtw_pci_ops = {
-       .tx_write = rtw_pci_tx_write,
-       .tx_kick_off = rtw_pci_tx_kick_off,
-       .flush_queues = rtw_pci_flush_queues,
---- a/drivers/net/wireless/realtek/rtw88/phy.c
-+++ b/drivers/net/wireless/realtek/rtw88/phy.c
-@@ -52,44 +52,50 @@ static const u32 db_invert_table[12][8]
-        1995262315,    2511886432U,    3162277660U,    3981071706U}
- };
--u8 rtw_cck_rates[] = { DESC_RATE1M, DESC_RATE2M, DESC_RATE5_5M, DESC_RATE11M };
--u8 rtw_ofdm_rates[] = {
-+const u8 rtw_cck_rates[] = { DESC_RATE1M, DESC_RATE2M, DESC_RATE5_5M, DESC_RATE11M };
-+
-+const u8 rtw_ofdm_rates[] = {
-       DESC_RATE6M,  DESC_RATE9M,  DESC_RATE12M,
-       DESC_RATE18M, DESC_RATE24M, DESC_RATE36M,
-       DESC_RATE48M, DESC_RATE54M
- };
--u8 rtw_ht_1s_rates[] = {
-+
-+const u8 rtw_ht_1s_rates[] = {
-       DESC_RATEMCS0, DESC_RATEMCS1, DESC_RATEMCS2,
-       DESC_RATEMCS3, DESC_RATEMCS4, DESC_RATEMCS5,
-       DESC_RATEMCS6, DESC_RATEMCS7
- };
--u8 rtw_ht_2s_rates[] = {
-+
-+const u8 rtw_ht_2s_rates[] = {
-       DESC_RATEMCS8,  DESC_RATEMCS9,  DESC_RATEMCS10,
-       DESC_RATEMCS11, DESC_RATEMCS12, DESC_RATEMCS13,
-       DESC_RATEMCS14, DESC_RATEMCS15
- };
--u8 rtw_vht_1s_rates[] = {
-+
-+const u8 rtw_vht_1s_rates[] = {
-       DESC_RATEVHT1SS_MCS0, DESC_RATEVHT1SS_MCS1,
-       DESC_RATEVHT1SS_MCS2, DESC_RATEVHT1SS_MCS3,
-       DESC_RATEVHT1SS_MCS4, DESC_RATEVHT1SS_MCS5,
-       DESC_RATEVHT1SS_MCS6, DESC_RATEVHT1SS_MCS7,
-       DESC_RATEVHT1SS_MCS8, DESC_RATEVHT1SS_MCS9
- };
--u8 rtw_vht_2s_rates[] = {
-+
-+const u8 rtw_vht_2s_rates[] = {
-       DESC_RATEVHT2SS_MCS0, DESC_RATEVHT2SS_MCS1,
-       DESC_RATEVHT2SS_MCS2, DESC_RATEVHT2SS_MCS3,
-       DESC_RATEVHT2SS_MCS4, DESC_RATEVHT2SS_MCS5,
-       DESC_RATEVHT2SS_MCS6, DESC_RATEVHT2SS_MCS7,
-       DESC_RATEVHT2SS_MCS8, DESC_RATEVHT2SS_MCS9
- };
--u8 *rtw_rate_section[RTW_RATE_SECTION_MAX] = {
-+
-+const u8 * const rtw_rate_section[RTW_RATE_SECTION_MAX] = {
-       rtw_cck_rates, rtw_ofdm_rates,
-       rtw_ht_1s_rates, rtw_ht_2s_rates,
-       rtw_vht_1s_rates, rtw_vht_2s_rates
- };
- EXPORT_SYMBOL(rtw_rate_section);
--u8 rtw_rate_size[RTW_RATE_SECTION_MAX] = {
-+const u8 rtw_rate_size[RTW_RATE_SECTION_MAX] = {
-       ARRAY_SIZE(rtw_cck_rates),
-       ARRAY_SIZE(rtw_ofdm_rates),
-       ARRAY_SIZE(rtw_ht_1s_rates),
-@@ -2214,7 +2220,7 @@ static void rtw_phy_set_tx_power_index_b
- {
-       struct rtw_hal *hal = &rtwdev->hal;
-       u8 regd = rtw_regd_get(rtwdev);
--      u8 *rates;
-+      const u8 *rates;
-       u8 size;
-       u8 rate;
-       u8 pwr_idx;
-@@ -2274,7 +2280,7 @@ EXPORT_SYMBOL(rtw_phy_set_tx_power_level
- static void
- rtw_phy_tx_power_by_rate_config_by_path(struct rtw_hal *hal, u8 path,
--                                      u8 rs, u8 size, u8 *rates)
-+                                      u8 rs, u8 size, const u8 *rates)
- {
-       u8 rate;
-       u8 base_idx, rate_idx;
---- a/drivers/net/wireless/realtek/rtw88/phy.h
-+++ b/drivers/net/wireless/realtek/rtw88/phy.h
-@@ -7,14 +7,14 @@
- #include "debug.h"
--extern u8 rtw_cck_rates[];
--extern u8 rtw_ofdm_rates[];
--extern u8 rtw_ht_1s_rates[];
--extern u8 rtw_ht_2s_rates[];
--extern u8 rtw_vht_1s_rates[];
--extern u8 rtw_vht_2s_rates[];
--extern u8 *rtw_rate_section[];
--extern u8 rtw_rate_size[];
-+extern const u8 rtw_cck_rates[];
-+extern const u8 rtw_ofdm_rates[];
-+extern const u8 rtw_ht_1s_rates[];
-+extern const u8 rtw_ht_2s_rates[];
-+extern const u8 rtw_vht_1s_rates[];
-+extern const u8 rtw_vht_2s_rates[];
-+extern const u8 * const rtw_rate_section[];
-+extern const u8 rtw_rate_size[];
- void rtw_phy_init(struct rtw_dev *rtwdev);
- void rtw_phy_dynamic_mechanism(struct rtw_dev *rtwdev);
---- a/drivers/net/wireless/realtek/rtw88/sdio.c
-+++ b/drivers/net/wireless/realtek/rtw88/sdio.c
-@@ -1147,7 +1147,7 @@ static void rtw_sdio_declaim(struct rtw_
-       sdio_release_host(sdio_func);
- }
--static struct rtw_hci_ops rtw_sdio_ops = {
-+static const struct rtw_hci_ops rtw_sdio_ops = {
-       .tx_write = rtw_sdio_tx_write,
-       .tx_kick_off = rtw_sdio_tx_kick_off,
-       .setup = rtw_sdio_setup,
---- a/drivers/net/wireless/realtek/rtw88/usb.c
-+++ b/drivers/net/wireless/realtek/rtw88/usb.c
-@@ -881,7 +881,7 @@ static void rtw_usb_dynamic_rx_agg(struc
-       }
- }
--static struct rtw_hci_ops rtw_usb_ops = {
-+static const struct rtw_hci_ops rtw_usb_ops = {
-       .tx_write = rtw_usb_tx_write,
-       .tx_kick_off = rtw_usb_tx_kick_off,
-       .setup = rtw_usb_setup,
diff --git a/package/kernel/mac80211/patches/rtl/073-v6.15-wifi-rtw88-Rename-RTW_RATE_SECTION_MAX-to-RTW_RATE_S.patch b/package/kernel/mac80211/patches/rtl/073-v6.15-wifi-rtw88-Rename-RTW_RATE_SECTION_MAX-to-RTW_RATE_S.patch
deleted file mode 100644 (file)
index 4a6d512..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-From ad815f3920035a0c5b6ffe45bddc9fb308194b49 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Tue, 4 Feb 2025 20:40:58 +0200
-Subject: [PATCH] wifi: rtw88: Rename RTW_RATE_SECTION_MAX to
- RTW_RATE_SECTION_NUM
-
-It fits the meaning of the enum better.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/main.h     | 12 +++++-----
- drivers/net/wireless/realtek/rtw88/phy.c      | 24 +++++++++----------
- drivers/net/wireless/realtek/rtw88/rtw8821c.c |  2 +-
- drivers/net/wireless/realtek/rtw88/rtw8822b.c |  2 +-
- drivers/net/wireless/realtek/rtw88/rtw8822c.c |  2 +-
- drivers/net/wireless/realtek/rtw88/rtw88xxa.c |  2 +-
- drivers/net/wireless/realtek/rtw88/sar.c      |  2 +-
- 7 files changed, 23 insertions(+), 23 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/main.h
-+++ b/drivers/net/wireless/realtek/rtw88/main.h
-@@ -168,7 +168,7 @@ enum rtw_rate_section {
-       RTW_RATE_SECTION_VHT_2S,
-       /* keep last */
--      RTW_RATE_SECTION_MAX,
-+      RTW_RATE_SECTION_NUM,
- };
- enum rtw_wireless_set {
-@@ -1937,7 +1937,7 @@ union rtw_sar_cfg {
- struct rtw_sar {
-       enum rtw_sar_sources src;
--      union rtw_sar_cfg cfg[RTW_RF_PATH_MAX][RTW_RATE_SECTION_MAX];
-+      union rtw_sar_cfg cfg[RTW_RF_PATH_MAX][RTW_RATE_SECTION_NUM];
- };
- struct rtw_hal {
-@@ -1981,16 +1981,16 @@ struct rtw_hal {
-       s8 tx_pwr_by_rate_offset_5g[RTW_RF_PATH_MAX]
-                                  [DESC_RATE_MAX];
-       s8 tx_pwr_by_rate_base_2g[RTW_RF_PATH_MAX]
--                               [RTW_RATE_SECTION_MAX];
-+                               [RTW_RATE_SECTION_NUM];
-       s8 tx_pwr_by_rate_base_5g[RTW_RF_PATH_MAX]
--                               [RTW_RATE_SECTION_MAX];
-+                               [RTW_RATE_SECTION_NUM];
-       s8 tx_pwr_limit_2g[RTW_REGD_MAX]
-                         [RTW_CHANNEL_WIDTH_MAX]
--                        [RTW_RATE_SECTION_MAX]
-+                        [RTW_RATE_SECTION_NUM]
-                         [RTW_MAX_CHANNEL_NUM_2G];
-       s8 tx_pwr_limit_5g[RTW_REGD_MAX]
-                         [RTW_CHANNEL_WIDTH_MAX]
--                        [RTW_RATE_SECTION_MAX]
-+                        [RTW_RATE_SECTION_NUM]
-                         [RTW_MAX_CHANNEL_NUM_5G];
-       s8 tx_pwr_tbl[RTW_RF_PATH_MAX]
-                    [DESC_RATE_MAX];
---- a/drivers/net/wireless/realtek/rtw88/phy.c
-+++ b/drivers/net/wireless/realtek/rtw88/phy.c
-@@ -88,14 +88,14 @@ const u8 rtw_vht_2s_rates[] = {
-       DESC_RATEVHT2SS_MCS8, DESC_RATEVHT2SS_MCS9
- };
--const u8 * const rtw_rate_section[RTW_RATE_SECTION_MAX] = {
-+const u8 * const rtw_rate_section[RTW_RATE_SECTION_NUM] = {
-       rtw_cck_rates, rtw_ofdm_rates,
-       rtw_ht_1s_rates, rtw_ht_2s_rates,
-       rtw_vht_1s_rates, rtw_vht_2s_rates
- };
- EXPORT_SYMBOL(rtw_rate_section);
--const u8 rtw_rate_size[RTW_RATE_SECTION_MAX] = {
-+const u8 rtw_rate_size[RTW_RATE_SECTION_NUM] = {
-       ARRAY_SIZE(rtw_cck_rates),
-       ARRAY_SIZE(rtw_ofdm_rates),
-       ARRAY_SIZE(rtw_ht_1s_rates),
-@@ -1596,7 +1596,7 @@ static void rtw_phy_set_tx_power_limit(s
-       ch_idx = rtw_channel_to_idx(band, ch);
-       if (regd >= RTW_REGD_MAX || bw >= RTW_CHANNEL_WIDTH_MAX ||
--          rs >= RTW_RATE_SECTION_MAX || ch_idx < 0) {
-+          rs >= RTW_RATE_SECTION_NUM || ch_idx < 0) {
-               WARN(1,
-                    "wrong txpwr_lmt regd=%u, band=%u bw=%u, rs=%u, ch_idx=%u, pwr_limit=%d\n",
-                    regd, band, bw, rs, ch_idx, pwr_limit);
-@@ -1701,7 +1701,7 @@ rtw_cfg_txpwr_lmt_by_alt(struct rtw_dev
-       u8 bw, rs;
-       for (bw = 0; bw < RTW_CHANNEL_WIDTH_MAX; bw++)
--              for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++)
-+              for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++)
-                       __cfg_txpwr_lmt_by_alt(&rtwdev->hal, regd, regd_alt,
-                                              bw, rs);
- }
-@@ -2060,7 +2060,7 @@ static u8 rtw_phy_get_5g_tx_power_index(
-       return tx_power;
- }
--/* return RTW_RATE_SECTION_MAX to indicate rate is invalid */
-+/* return RTW_RATE_SECTION_NUM to indicate rate is invalid */
- static u8 rtw_phy_rate_to_rate_section(u8 rate)
- {
-       if (rate >= DESC_RATE1M && rate <= DESC_RATE11M)
-@@ -2076,7 +2076,7 @@ static u8 rtw_phy_rate_to_rate_section(u
-       else if (rate >= DESC_RATEVHT2SS_MCS0 && rate <= DESC_RATEVHT2SS_MCS9)
-               return RTW_RATE_SECTION_VHT_2S;
-       else
--              return RTW_RATE_SECTION_MAX;
-+              return RTW_RATE_SECTION_NUM;
- }
- static s8 rtw_phy_get_tx_power_limit(struct rtw_dev *rtwdev, u8 band,
-@@ -2094,7 +2094,7 @@ static s8 rtw_phy_get_tx_power_limit(str
-       if (regd > RTW_REGD_WW)
-               return power_limit;
--      if (rs == RTW_RATE_SECTION_MAX)
-+      if (rs == RTW_RATE_SECTION_NUM)
-               goto err;
-       /* only 20M BW with cck and ofdm */
-@@ -2138,7 +2138,7 @@ static s8 rtw_phy_get_tx_power_sar(struc
-               .rs = rs,
-       };
--      if (rs == RTW_RATE_SECTION_MAX)
-+      if (rs == RTW_RATE_SECTION_NUM)
-               goto err;
-       return rtw_query_sar(rtwdev, &arg);
-@@ -2227,7 +2227,7 @@ static void rtw_phy_set_tx_power_index_b
-       u8 bw;
-       int i;
--      if (rs >= RTW_RATE_SECTION_MAX)
-+      if (rs >= RTW_RATE_SECTION_NUM)
-               return;
-       rates = rtw_rate_section[rs];
-@@ -2258,7 +2258,7 @@ static void rtw_phy_set_tx_power_level_b
-       else
-               rs = RTW_RATE_SECTION_OFDM;
--      for (; rs < RTW_RATE_SECTION_MAX; rs++)
-+      for (; rs < RTW_RATE_SECTION_NUM; rs++)
-               rtw_phy_set_tx_power_index_by_rs(rtwdev, ch, path, rs);
- }
-@@ -2353,7 +2353,7 @@ void rtw_phy_tx_power_limit_config(struc
-       for (regd = 0; regd < RTW_REGD_MAX; regd++)
-               for (bw = 0; bw < RTW_CHANNEL_WIDTH_MAX; bw++)
--                      for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++)
-+                      for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++)
-                               __rtw_phy_tx_power_limit_config(hal, regd, bw, rs);
- }
-@@ -2389,7 +2389,7 @@ void rtw_phy_init_tx_power(struct rtw_de
-       /* init tx power limit */
-       for (regd = 0; regd < RTW_REGD_MAX; regd++)
-               for (bw = 0; bw < RTW_CHANNEL_WIDTH_MAX; bw++)
--                      for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++)
-+                      for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++)
-                               rtw_phy_init_tx_power_limit(rtwdev, regd, bw,
-                                                           rs);
- }
---- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
-@@ -709,7 +709,7 @@ static void rtw8821c_set_tx_power_index(
-       int rs, path;
-       for (path = 0; path < hal->rf_path_num; path++) {
--              for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) {
-+              for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) {
-                       if (rs == RTW_RATE_SECTION_HT_2S ||
-                           rs == RTW_RATE_SECTION_VHT_2S)
-                               continue;
---- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
-@@ -964,7 +964,7 @@ static void rtw8822b_set_tx_power_index(
-       int rs, path;
-       for (path = 0; path < hal->rf_path_num; path++) {
--              for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++)
-+              for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++)
-                       rtw8822b_set_tx_power_index_by_rate(rtwdev, path, rs,
-                                                           &phy_pwr_idx);
-       }
---- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
-@@ -2746,7 +2746,7 @@ static void rtw8822c_set_tx_power_index(
-       s8 diff_idx[4];
-       rtw8822c_set_write_tx_power_ref(rtwdev, pwr_ref_cck, pwr_ref_ofdm);
--      for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) {
-+      for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) {
-               for (j = 0; j < rtw_rate_size[rs]; j++) {
-                       rate = rtw_rate_section[rs][j];
-                       pwr_a = hal->tx_pwr_tbl[RF_PATH_A][rate];
---- a/drivers/net/wireless/realtek/rtw88/rtw88xxa.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw88xxa.c
-@@ -1637,7 +1637,7 @@ void rtw88xxa_set_tx_power_index(struct
-       int rs, path;
-       for (path = 0; path < hal->rf_path_num; path++) {
--              for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) {
-+              for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) {
-                       if (hal->rf_path_num == 1 &&
-                           (rs == RTW_RATE_SECTION_HT_2S ||
-                            rs == RTW_RATE_SECTION_VHT_2S))
---- a/drivers/net/wireless/realtek/rtw88/sar.c
-+++ b/drivers/net/wireless/realtek/rtw88/sar.c
-@@ -97,7 +97,7 @@ int rtw_set_sar_specs(struct rtw_dev *rt
-                       power, BIT(RTW_COMMON_SAR_FCT));
-               for (j = 0; j < RTW_RF_PATH_MAX; j++) {
--                      for (k = 0; k < RTW_RATE_SECTION_MAX; k++) {
-+                      for (k = 0; k < RTW_RATE_SECTION_NUM; k++) {
-                               arg = (struct rtw_sar_arg){
-                                       .sar_band = idx,
-                                       .path = j,
diff --git a/package/kernel/mac80211/patches/rtl/074-v6.15-wifi-rtw88-Extend-TX-power-stuff-for-3-4-spatial-str.patch b/package/kernel/mac80211/patches/rtl/074-v6.15-wifi-rtw88-Extend-TX-power-stuff-for-3-4-spatial-str.patch
deleted file mode 100644 (file)
index fc9aa3b..0000000
+++ /dev/null
@@ -1,369 +0,0 @@
-From 0f98a59596579b34932c06aec7d52c1e835fa1f0 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Tue, 4 Feb 2025 20:41:43 +0200
-Subject: [PATCH] wifi: rtw88: Extend TX power stuff for 3-4 spatial streams
-
-Although the RTL8814AU only has 3 spatial streams, maybe some other chip
-has 4.
-
-Correct the TX power index and TX power limit calculations for 3SS and
-4SS HT/VHT rates.
-
-With this the RTL8814AU can set the TX power correctly.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/main.h     |   5 +
- drivers/net/wireless/realtek/rtw88/phy.c      | 145 ++++++++++++------
- drivers/net/wireless/realtek/rtw88/phy.h      |   4 +
- drivers/net/wireless/realtek/rtw88/rtw8821c.c |   2 +-
- drivers/net/wireless/realtek/rtw88/rtw8822b.c |   2 +-
- drivers/net/wireless/realtek/rtw88/rtw8822c.c |   2 +-
- drivers/net/wireless/realtek/rtw88/rtw88xxa.c |   2 +-
- 7 files changed, 111 insertions(+), 51 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/main.h
-+++ b/drivers/net/wireless/realtek/rtw88/main.h
-@@ -166,6 +166,11 @@ enum rtw_rate_section {
-       RTW_RATE_SECTION_HT_2S,
-       RTW_RATE_SECTION_VHT_1S,
-       RTW_RATE_SECTION_VHT_2S,
-+      __RTW_RATE_SECTION_2SS_MAX = RTW_RATE_SECTION_VHT_2S,
-+      RTW_RATE_SECTION_HT_3S,
-+      RTW_RATE_SECTION_HT_4S,
-+      RTW_RATE_SECTION_VHT_3S,
-+      RTW_RATE_SECTION_VHT_4S,
-       /* keep last */
-       RTW_RATE_SECTION_NUM,
---- a/drivers/net/wireless/realtek/rtw88/phy.c
-+++ b/drivers/net/wireless/realtek/rtw88/phy.c
-@@ -88,10 +88,40 @@ const u8 rtw_vht_2s_rates[] = {
-       DESC_RATEVHT2SS_MCS8, DESC_RATEVHT2SS_MCS9
- };
-+const u8 rtw_ht_3s_rates[] = {
-+      DESC_RATEMCS16, DESC_RATEMCS17, DESC_RATEMCS18,
-+      DESC_RATEMCS19, DESC_RATEMCS20, DESC_RATEMCS21,
-+      DESC_RATEMCS22, DESC_RATEMCS23
-+};
-+
-+const u8 rtw_ht_4s_rates[] = {
-+      DESC_RATEMCS24, DESC_RATEMCS25, DESC_RATEMCS26,
-+      DESC_RATEMCS27, DESC_RATEMCS28, DESC_RATEMCS29,
-+      DESC_RATEMCS30, DESC_RATEMCS31
-+};
-+
-+const u8 rtw_vht_3s_rates[] = {
-+      DESC_RATEVHT3SS_MCS0, DESC_RATEVHT3SS_MCS1,
-+      DESC_RATEVHT3SS_MCS2, DESC_RATEVHT3SS_MCS3,
-+      DESC_RATEVHT3SS_MCS4, DESC_RATEVHT3SS_MCS5,
-+      DESC_RATEVHT3SS_MCS6, DESC_RATEVHT3SS_MCS7,
-+      DESC_RATEVHT3SS_MCS8, DESC_RATEVHT3SS_MCS9
-+};
-+
-+const u8 rtw_vht_4s_rates[] = {
-+      DESC_RATEVHT4SS_MCS0, DESC_RATEVHT4SS_MCS1,
-+      DESC_RATEVHT4SS_MCS2, DESC_RATEVHT4SS_MCS3,
-+      DESC_RATEVHT4SS_MCS4, DESC_RATEVHT4SS_MCS5,
-+      DESC_RATEVHT4SS_MCS6, DESC_RATEVHT4SS_MCS7,
-+      DESC_RATEVHT4SS_MCS8, DESC_RATEVHT4SS_MCS9
-+};
-+
- const u8 * const rtw_rate_section[RTW_RATE_SECTION_NUM] = {
-       rtw_cck_rates, rtw_ofdm_rates,
-       rtw_ht_1s_rates, rtw_ht_2s_rates,
--      rtw_vht_1s_rates, rtw_vht_2s_rates
-+      rtw_vht_1s_rates, rtw_vht_2s_rates,
-+      rtw_ht_3s_rates, rtw_ht_4s_rates,
-+      rtw_vht_3s_rates, rtw_vht_4s_rates
- };
- EXPORT_SYMBOL(rtw_rate_section);
-@@ -101,17 +131,14 @@ const u8 rtw_rate_size[RTW_RATE_SECTION_
-       ARRAY_SIZE(rtw_ht_1s_rates),
-       ARRAY_SIZE(rtw_ht_2s_rates),
-       ARRAY_SIZE(rtw_vht_1s_rates),
--      ARRAY_SIZE(rtw_vht_2s_rates)
-+      ARRAY_SIZE(rtw_vht_2s_rates),
-+      ARRAY_SIZE(rtw_ht_3s_rates),
-+      ARRAY_SIZE(rtw_ht_4s_rates),
-+      ARRAY_SIZE(rtw_vht_3s_rates),
-+      ARRAY_SIZE(rtw_vht_4s_rates)
- };
- EXPORT_SYMBOL(rtw_rate_size);
--static const u8 rtw_cck_size = ARRAY_SIZE(rtw_cck_rates);
--static const u8 rtw_ofdm_size = ARRAY_SIZE(rtw_ofdm_rates);
--static const u8 rtw_ht_1s_size = ARRAY_SIZE(rtw_ht_1s_rates);
--static const u8 rtw_ht_2s_size = ARRAY_SIZE(rtw_ht_2s_rates);
--static const u8 rtw_vht_1s_size = ARRAY_SIZE(rtw_vht_1s_rates);
--static const u8 rtw_vht_2s_size = ARRAY_SIZE(rtw_vht_2s_rates);
--
- enum rtw_phy_band_type {
-       PHY_BAND_2G     = 0,
-       PHY_BAND_5G     = 1,
-@@ -1640,11 +1667,15 @@ rtw_xref_5g_txpwr_lmt(struct rtw_dev *rt
- static void
- rtw_xref_txpwr_lmt_by_rs(struct rtw_dev *rtwdev, u8 regd, u8 bw, u8 ch_idx)
- {
-+      static const u8 rs_cmp[4][2] = {
-+              {RTW_RATE_SECTION_HT_1S, RTW_RATE_SECTION_VHT_1S},
-+              {RTW_RATE_SECTION_HT_2S, RTW_RATE_SECTION_VHT_2S},
-+              {RTW_RATE_SECTION_HT_3S, RTW_RATE_SECTION_VHT_3S},
-+              {RTW_RATE_SECTION_HT_4S, RTW_RATE_SECTION_VHT_4S}
-+      };
-       u8 rs_idx, rs_ht, rs_vht;
--      u8 rs_cmp[2][2] = {{RTW_RATE_SECTION_HT_1S, RTW_RATE_SECTION_VHT_1S},
--                         {RTW_RATE_SECTION_HT_2S, RTW_RATE_SECTION_VHT_2S} };
--      for (rs_idx = 0; rs_idx < 2; rs_idx++) {
-+      for (rs_idx = 0; rs_idx < 4; rs_idx++) {
-               rs_ht = rs_cmp[rs_idx][0];
-               rs_vht = rs_cmp[rs_idx][1];
-@@ -1965,10 +1996,10 @@ static u8 rtw_phy_get_2g_tx_power_index(
-                                       u8 rate, u8 group)
- {
-       const struct rtw_chip_info *chip = rtwdev->chip;
--      u8 tx_power;
--      bool mcs_rate;
--      bool above_2ss;
-+      bool above_2ss, above_3ss, above_4ss;
-       u8 factor = chip->txgi_factor;
-+      bool mcs_rate;
-+      u8 tx_power;
-       if (rate <= DESC_RATE11M)
-               tx_power = pwr_idx_2g->cck_base[group];
-@@ -1978,11 +2009,15 @@ static u8 rtw_phy_get_2g_tx_power_index(
-       if (rate >= DESC_RATE6M && rate <= DESC_RATE54M)
-               tx_power += pwr_idx_2g->ht_1s_diff.ofdm * factor;
--      mcs_rate = (rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS15) ||
-+      mcs_rate = (rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS31) ||
-                  (rate >= DESC_RATEVHT1SS_MCS0 &&
--                  rate <= DESC_RATEVHT2SS_MCS9);
--      above_2ss = (rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15) ||
-+                  rate <= DESC_RATEVHT4SS_MCS9);
-+      above_2ss = (rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS31) ||
-                   (rate >= DESC_RATEVHT2SS_MCS0);
-+      above_3ss = (rate >= DESC_RATEMCS16 && rate <= DESC_RATEMCS31) ||
-+                  (rate >= DESC_RATEVHT3SS_MCS0);
-+      above_4ss = (rate >= DESC_RATEMCS24 && rate <= DESC_RATEMCS31) ||
-+                  (rate >= DESC_RATEVHT4SS_MCS0);
-       if (!mcs_rate)
-               return tx_power;
-@@ -1995,11 +2030,19 @@ static u8 rtw_phy_get_2g_tx_power_index(
-               tx_power += pwr_idx_2g->ht_1s_diff.bw20 * factor;
-               if (above_2ss)
-                       tx_power += pwr_idx_2g->ht_2s_diff.bw20 * factor;
-+              if (above_3ss)
-+                      tx_power += pwr_idx_2g->ht_3s_diff.bw20 * factor;
-+              if (above_4ss)
-+                      tx_power += pwr_idx_2g->ht_4s_diff.bw20 * factor;
-               break;
-       case RTW_CHANNEL_WIDTH_40:
-               /* bw40 is the base power */
-               if (above_2ss)
-                       tx_power += pwr_idx_2g->ht_2s_diff.bw40 * factor;
-+              if (above_3ss)
-+                      tx_power += pwr_idx_2g->ht_3s_diff.bw40 * factor;
-+              if (above_4ss)
-+                      tx_power += pwr_idx_2g->ht_4s_diff.bw40 * factor;
-               break;
-       }
-@@ -2012,19 +2055,23 @@ static u8 rtw_phy_get_5g_tx_power_index(
-                                       u8 rate, u8 group)
- {
-       const struct rtw_chip_info *chip = rtwdev->chip;
--      u8 tx_power;
-+      bool above_2ss, above_3ss, above_4ss;
-+      u8 factor = chip->txgi_factor;
-       u8 upper, lower;
-       bool mcs_rate;
--      bool above_2ss;
--      u8 factor = chip->txgi_factor;
-+      u8 tx_power;
-       tx_power = pwr_idx_5g->bw40_base[group];
--      mcs_rate = (rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS15) ||
-+      mcs_rate = (rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS31) ||
-                  (rate >= DESC_RATEVHT1SS_MCS0 &&
--                  rate <= DESC_RATEVHT2SS_MCS9);
--      above_2ss = (rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15) ||
-+                  rate <= DESC_RATEVHT4SS_MCS9);
-+      above_2ss = (rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS31) ||
-                   (rate >= DESC_RATEVHT2SS_MCS0);
-+      above_3ss = (rate >= DESC_RATEMCS16 && rate <= DESC_RATEMCS31) ||
-+                  (rate >= DESC_RATEVHT3SS_MCS0);
-+      above_4ss = (rate >= DESC_RATEMCS24 && rate <= DESC_RATEMCS31) ||
-+                  (rate >= DESC_RATEVHT4SS_MCS0);
-       if (!mcs_rate) {
-               tx_power += pwr_idx_5g->ht_1s_diff.ofdm * factor;
-@@ -2039,11 +2086,19 @@ static u8 rtw_phy_get_5g_tx_power_index(
-               tx_power += pwr_idx_5g->ht_1s_diff.bw20 * factor;
-               if (above_2ss)
-                       tx_power += pwr_idx_5g->ht_2s_diff.bw20 * factor;
-+              if (above_3ss)
-+                      tx_power += pwr_idx_5g->ht_3s_diff.bw20 * factor;
-+              if (above_4ss)
-+                      tx_power += pwr_idx_5g->ht_4s_diff.bw20 * factor;
-               break;
-       case RTW_CHANNEL_WIDTH_40:
-               /* bw40 is the base power */
-               if (above_2ss)
-                       tx_power += pwr_idx_5g->ht_2s_diff.bw40 * factor;
-+              if (above_3ss)
-+                      tx_power += pwr_idx_5g->ht_3s_diff.bw40 * factor;
-+              if (above_4ss)
-+                      tx_power += pwr_idx_5g->ht_4s_diff.bw40 * factor;
-               break;
-       case RTW_CHANNEL_WIDTH_80:
-               /* the base idx of bw80 is the average of bw40+/bw40- */
-@@ -2054,6 +2109,10 @@ static u8 rtw_phy_get_5g_tx_power_index(
-               tx_power += pwr_idx_5g->vht_1s_diff.bw80 * factor;
-               if (above_2ss)
-                       tx_power += pwr_idx_5g->vht_2s_diff.bw80 * factor;
-+              if (above_3ss)
-+                      tx_power += pwr_idx_5g->vht_3s_diff.bw80 * factor;
-+              if (above_4ss)
-+                      tx_power += pwr_idx_5g->vht_4s_diff.bw80 * factor;
-               break;
-       }
-@@ -2071,10 +2130,18 @@ static u8 rtw_phy_rate_to_rate_section(u
-               return RTW_RATE_SECTION_HT_1S;
-       else if (rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15)
-               return RTW_RATE_SECTION_HT_2S;
-+      else if (rate >= DESC_RATEMCS16 && rate <= DESC_RATEMCS23)
-+              return RTW_RATE_SECTION_HT_3S;
-+      else if (rate >= DESC_RATEMCS24 && rate <= DESC_RATEMCS31)
-+              return RTW_RATE_SECTION_HT_4S;
-       else if (rate >= DESC_RATEVHT1SS_MCS0 && rate <= DESC_RATEVHT1SS_MCS9)
-               return RTW_RATE_SECTION_VHT_1S;
-       else if (rate >= DESC_RATEVHT2SS_MCS0 && rate <= DESC_RATEVHT2SS_MCS9)
-               return RTW_RATE_SECTION_VHT_2S;
-+      else if (rate >= DESC_RATEVHT3SS_MCS0 && rate <= DESC_RATEVHT3SS_MCS9)
-+              return RTW_RATE_SECTION_VHT_3S;
-+      else if (rate >= DESC_RATEVHT4SS_MCS0 && rate <= DESC_RATEVHT4SS_MCS9)
-+              return RTW_RATE_SECTION_VHT_4S;
-       else
-               return RTW_RATE_SECTION_NUM;
- }
-@@ -2102,7 +2169,7 @@ static s8 rtw_phy_get_tx_power_limit(str
-               bw = RTW_CHANNEL_WIDTH_20;
-       /* only 20/40M BW with ht */
--      if (rs == RTW_RATE_SECTION_HT_1S || rs == RTW_RATE_SECTION_HT_2S)
-+      if (rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS31)
-               bw = min_t(u8, bw, RTW_CHANNEL_WIDTH_40);
-       /* select min power limit among [20M BW ~ current BW] */
-@@ -2286,7 +2353,7 @@ rtw_phy_tx_power_by_rate_config_by_path(
-       u8 base_idx, rate_idx;
-       s8 base_2g, base_5g;
--      if (rs >= RTW_RATE_SECTION_VHT_1S)
-+      if (size == 10) /* VHT rates */
-               base_idx = rates[size - 3];
-       else
-               base_idx = rates[size - 1];
-@@ -2303,28 +2370,12 @@ rtw_phy_tx_power_by_rate_config_by_path(
- void rtw_phy_tx_power_by_rate_config(struct rtw_hal *hal)
- {
--      u8 path;
-+      u8 path, rs;
--      for (path = 0; path < RTW_RF_PATH_MAX; path++) {
--              rtw_phy_tx_power_by_rate_config_by_path(hal, path,
--                              RTW_RATE_SECTION_CCK,
--                              rtw_cck_size, rtw_cck_rates);
--              rtw_phy_tx_power_by_rate_config_by_path(hal, path,
--                              RTW_RATE_SECTION_OFDM,
--                              rtw_ofdm_size, rtw_ofdm_rates);
--              rtw_phy_tx_power_by_rate_config_by_path(hal, path,
--                              RTW_RATE_SECTION_HT_1S,
--                              rtw_ht_1s_size, rtw_ht_1s_rates);
--              rtw_phy_tx_power_by_rate_config_by_path(hal, path,
--                              RTW_RATE_SECTION_HT_2S,
--                              rtw_ht_2s_size, rtw_ht_2s_rates);
--              rtw_phy_tx_power_by_rate_config_by_path(hal, path,
--                              RTW_RATE_SECTION_VHT_1S,
--                              rtw_vht_1s_size, rtw_vht_1s_rates);
--              rtw_phy_tx_power_by_rate_config_by_path(hal, path,
--                              RTW_RATE_SECTION_VHT_2S,
--                              rtw_vht_2s_size, rtw_vht_2s_rates);
--      }
-+      for (path = 0; path < RTW_RF_PATH_MAX; path++)
-+              for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++)
-+                      rtw_phy_tx_power_by_rate_config_by_path(hal, path, rs,
-+                              rtw_rate_size[rs], rtw_rate_section[rs]);
- }
- static void
---- a/drivers/net/wireless/realtek/rtw88/phy.h
-+++ b/drivers/net/wireless/realtek/rtw88/phy.h
-@@ -13,6 +13,10 @@ extern const u8 rtw_ht_1s_rates[];
- extern const u8 rtw_ht_2s_rates[];
- extern const u8 rtw_vht_1s_rates[];
- extern const u8 rtw_vht_2s_rates[];
-+extern const u8 rtw_ht_3s_rates[];
-+extern const u8 rtw_ht_4s_rates[];
-+extern const u8 rtw_vht_3s_rates[];
-+extern const u8 rtw_vht_4s_rates[];
- extern const u8 * const rtw_rate_section[];
- extern const u8 rtw_rate_size[];
---- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
-@@ -709,7 +709,7 @@ static void rtw8821c_set_tx_power_index(
-       int rs, path;
-       for (path = 0; path < hal->rf_path_num; path++) {
--              for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) {
-+              for (rs = 0; rs <= __RTW_RATE_SECTION_2SS_MAX; rs++) {
-                       if (rs == RTW_RATE_SECTION_HT_2S ||
-                           rs == RTW_RATE_SECTION_VHT_2S)
-                               continue;
---- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
-@@ -964,7 +964,7 @@ static void rtw8822b_set_tx_power_index(
-       int rs, path;
-       for (path = 0; path < hal->rf_path_num; path++) {
--              for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++)
-+              for (rs = 0; rs <= __RTW_RATE_SECTION_2SS_MAX; rs++)
-                       rtw8822b_set_tx_power_index_by_rate(rtwdev, path, rs,
-                                                           &phy_pwr_idx);
-       }
---- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
-@@ -2746,7 +2746,7 @@ static void rtw8822c_set_tx_power_index(
-       s8 diff_idx[4];
-       rtw8822c_set_write_tx_power_ref(rtwdev, pwr_ref_cck, pwr_ref_ofdm);
--      for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) {
-+      for (rs = 0; rs <= __RTW_RATE_SECTION_2SS_MAX; rs++) {
-               for (j = 0; j < rtw_rate_size[rs]; j++) {
-                       rate = rtw_rate_section[rs][j];
-                       pwr_a = hal->tx_pwr_tbl[RF_PATH_A][rate];
---- a/drivers/net/wireless/realtek/rtw88/rtw88xxa.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw88xxa.c
-@@ -1637,7 +1637,7 @@ void rtw88xxa_set_tx_power_index(struct
-       int rs, path;
-       for (path = 0; path < hal->rf_path_num; path++) {
--              for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) {
-+              for (rs = 0; rs <= __RTW_RATE_SECTION_2SS_MAX; rs++) {
-                       if (hal->rf_path_num == 1 &&
-                           (rs == RTW_RATE_SECTION_HT_2S ||
-                            rs == RTW_RATE_SECTION_VHT_2S))
diff --git a/package/kernel/mac80211/patches/rtl/081-v6.15-wifi-rtw88-Fix-rtw_rx_phy_stat-for-RTL8814AU.patch b/package/kernel/mac80211/patches/rtl/081-v6.15-wifi-rtw88-Fix-rtw_rx_phy_stat-for-RTL8814AU.patch
deleted file mode 100644 (file)
index a1ca98f..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-From 053a7aace0207593776c729f229d87f1be464b98 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Tue, 18 Feb 2025 01:31:13 +0200
-Subject: [PATCH] wifi: rtw88: Fix rtw_rx_phy_stat() for RTL8814AU
-
-Record statistics for the 3SS rates too.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/main.h | 7 +++++++
- drivers/net/wireless/realtek/rtw88/rx.c   | 6 ++++++
- 2 files changed, 13 insertions(+)
-
---- a/drivers/net/wireless/realtek/rtw88/main.h
-+++ b/drivers/net/wireless/realtek/rtw88/main.h
-@@ -386,6 +386,9 @@ enum rtw_evm {
-       RTW_EVM_1SS,
-       RTW_EVM_2SS_A,
-       RTW_EVM_2SS_B,
-+      RTW_EVM_3SS_A,
-+      RTW_EVM_3SS_B,
-+      RTW_EVM_3SS_C,
-       /* keep it last */
-       RTW_EVM_NUM
- };
-@@ -403,6 +406,10 @@ enum rtw_snr {
-       RTW_SNR_2SS_B,
-       RTW_SNR_2SS_C,
-       RTW_SNR_2SS_D,
-+      RTW_SNR_3SS_A,
-+      RTW_SNR_3SS_B,
-+      RTW_SNR_3SS_C,
-+      RTW_SNR_3SS_D,
-       /* keep it last */
-       RTW_SNR_NUM
- };
---- a/drivers/net/wireless/realtek/rtw88/rx.c
-+++ b/drivers/net/wireless/realtek/rtw88/rx.c
-@@ -73,6 +73,12 @@ static void rtw_rx_phy_stat(struct rtw_d
-               rate_ss_evm = 2;
-               evm_id = RTW_EVM_2SS_A;
-               break;
-+      case DESC_RATEMCS16...DESC_RATEMCS23:
-+      case DESC_RATEVHT3SS_MCS0...DESC_RATEVHT3SS_MCS9:
-+              rate_ss = 3;
-+              rate_ss_evm = 3;
-+              evm_id = RTW_EVM_3SS_A;
-+              break;
-       default:
-               rtw_warn(rtwdev, "unknown pkt rate = %d\n", pkt_stat->rate);
-               return;
diff --git a/package/kernel/mac80211/patches/rtl/082-v6.15-wifi-rtw88-Extend-rtw_phy_config_swing_table-for-RTL.patch b/package/kernel/mac80211/patches/rtl/082-v6.15-wifi-rtw88-Extend-rtw_phy_config_swing_table-for-RTL.patch
deleted file mode 100644 (file)
index 2ac27f3..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-From 8b42c46cf6656ef3c2f6d1ec0f113753c6875712 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Tue, 18 Feb 2025 01:31:51 +0200
-Subject: [PATCH] wifi: rtw88: Extend rtw_phy_config_swing_table() for
- RTL8814AU
-
-Select the TX power tracking tables for RF paths C and D as well.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/phy.c | 24 ++++++++++++++++++++++++
- 1 file changed, 24 insertions(+)
-
---- a/drivers/net/wireless/realtek/rtw88/phy.c
-+++ b/drivers/net/wireless/realtek/rtw88/phy.c
-@@ -2458,32 +2458,56 @@ void rtw_phy_config_swing_table(struct r
-                       swing_table->n[RF_PATH_A] = tbl->pwrtrk_2g_ccka_n;
-                       swing_table->p[RF_PATH_B] = tbl->pwrtrk_2g_cckb_p;
-                       swing_table->n[RF_PATH_B] = tbl->pwrtrk_2g_cckb_n;
-+                      swing_table->p[RF_PATH_C] = tbl->pwrtrk_2g_cckc_p;
-+                      swing_table->n[RF_PATH_C] = tbl->pwrtrk_2g_cckc_n;
-+                      swing_table->p[RF_PATH_D] = tbl->pwrtrk_2g_cckd_p;
-+                      swing_table->n[RF_PATH_D] = tbl->pwrtrk_2g_cckd_n;
-               } else {
-                       swing_table->p[RF_PATH_A] = tbl->pwrtrk_2ga_p;
-                       swing_table->n[RF_PATH_A] = tbl->pwrtrk_2ga_n;
-                       swing_table->p[RF_PATH_B] = tbl->pwrtrk_2gb_p;
-                       swing_table->n[RF_PATH_B] = tbl->pwrtrk_2gb_n;
-+                      swing_table->p[RF_PATH_C] = tbl->pwrtrk_2gc_p;
-+                      swing_table->n[RF_PATH_C] = tbl->pwrtrk_2gc_n;
-+                      swing_table->p[RF_PATH_D] = tbl->pwrtrk_2gd_p;
-+                      swing_table->n[RF_PATH_D] = tbl->pwrtrk_2gd_n;
-               }
-       } else if (IS_CH_5G_BAND_1(channel) || IS_CH_5G_BAND_2(channel)) {
-               swing_table->p[RF_PATH_A] = tbl->pwrtrk_5ga_p[RTW_PWR_TRK_5G_1];
-               swing_table->n[RF_PATH_A] = tbl->pwrtrk_5ga_n[RTW_PWR_TRK_5G_1];
-               swing_table->p[RF_PATH_B] = tbl->pwrtrk_5gb_p[RTW_PWR_TRK_5G_1];
-               swing_table->n[RF_PATH_B] = tbl->pwrtrk_5gb_n[RTW_PWR_TRK_5G_1];
-+              swing_table->p[RF_PATH_C] = tbl->pwrtrk_5gc_p[RTW_PWR_TRK_5G_1];
-+              swing_table->n[RF_PATH_C] = tbl->pwrtrk_5gc_n[RTW_PWR_TRK_5G_1];
-+              swing_table->p[RF_PATH_D] = tbl->pwrtrk_5gd_p[RTW_PWR_TRK_5G_1];
-+              swing_table->n[RF_PATH_D] = tbl->pwrtrk_5gd_n[RTW_PWR_TRK_5G_1];
-       } else if (IS_CH_5G_BAND_3(channel)) {
-               swing_table->p[RF_PATH_A] = tbl->pwrtrk_5ga_p[RTW_PWR_TRK_5G_2];
-               swing_table->n[RF_PATH_A] = tbl->pwrtrk_5ga_n[RTW_PWR_TRK_5G_2];
-               swing_table->p[RF_PATH_B] = tbl->pwrtrk_5gb_p[RTW_PWR_TRK_5G_2];
-               swing_table->n[RF_PATH_B] = tbl->pwrtrk_5gb_n[RTW_PWR_TRK_5G_2];
-+              swing_table->p[RF_PATH_C] = tbl->pwrtrk_5gc_p[RTW_PWR_TRK_5G_2];
-+              swing_table->n[RF_PATH_C] = tbl->pwrtrk_5gc_n[RTW_PWR_TRK_5G_2];
-+              swing_table->p[RF_PATH_D] = tbl->pwrtrk_5gd_p[RTW_PWR_TRK_5G_2];
-+              swing_table->n[RF_PATH_D] = tbl->pwrtrk_5gd_n[RTW_PWR_TRK_5G_2];
-       } else if (IS_CH_5G_BAND_4(channel)) {
-               swing_table->p[RF_PATH_A] = tbl->pwrtrk_5ga_p[RTW_PWR_TRK_5G_3];
-               swing_table->n[RF_PATH_A] = tbl->pwrtrk_5ga_n[RTW_PWR_TRK_5G_3];
-               swing_table->p[RF_PATH_B] = tbl->pwrtrk_5gb_p[RTW_PWR_TRK_5G_3];
-               swing_table->n[RF_PATH_B] = tbl->pwrtrk_5gb_n[RTW_PWR_TRK_5G_3];
-+              swing_table->p[RF_PATH_C] = tbl->pwrtrk_5gc_p[RTW_PWR_TRK_5G_3];
-+              swing_table->n[RF_PATH_C] = tbl->pwrtrk_5gc_n[RTW_PWR_TRK_5G_3];
-+              swing_table->p[RF_PATH_D] = tbl->pwrtrk_5gd_p[RTW_PWR_TRK_5G_3];
-+              swing_table->n[RF_PATH_D] = tbl->pwrtrk_5gd_n[RTW_PWR_TRK_5G_3];
-       } else {
-               swing_table->p[RF_PATH_A] = tbl->pwrtrk_2ga_p;
-               swing_table->n[RF_PATH_A] = tbl->pwrtrk_2ga_n;
-               swing_table->p[RF_PATH_B] = tbl->pwrtrk_2gb_p;
-               swing_table->n[RF_PATH_B] = tbl->pwrtrk_2gb_n;
-+              swing_table->p[RF_PATH_C] = tbl->pwrtrk_2gc_p;
-+              swing_table->n[RF_PATH_C] = tbl->pwrtrk_2gc_n;
-+              swing_table->p[RF_PATH_D] = tbl->pwrtrk_2gd_p;
-+              swing_table->n[RF_PATH_D] = tbl->pwrtrk_2gd_n;
-       }
- }
- EXPORT_SYMBOL(rtw_phy_config_swing_table);
diff --git a/package/kernel/mac80211/patches/rtl/083-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_phy_info-for-RTL88.patch b/package/kernel/mac80211/patches/rtl/083-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_phy_info-for-RTL88.patch
deleted file mode 100644 (file)
index d34d72a..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-From cfebabdd351e9cbafdc99cb198db482208ec5ad9 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Tue, 18 Feb 2025 01:32:15 +0200
-Subject: [PATCH] wifi: rtw88: Extend rtw_debugfs_get_phy_info() for RTL8814AU
-
-Print information about the 3rd and 4th RF paths and about the 3rd
-spatial stream.
-
-Also, fix a small bug: don't show the average SNR and EVM for the OFDM
-and HT/VHT rates when the rate is actually CCK 11M.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/debug.c | 37 +++++++++++++++-------
- 1 file changed, 26 insertions(+), 11 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/debug.c
-+++ b/drivers/net/wireless/realtek/rtw88/debug.c
-@@ -654,10 +654,10 @@ static void rtw_print_rate(struct seq_fi
-       case DESC_RATE6M...DESC_RATE54M:
-               rtw_print_ofdm_rate_txt(m, rate);
-               break;
--      case DESC_RATEMCS0...DESC_RATEMCS15:
-+      case DESC_RATEMCS0...DESC_RATEMCS31:
-               rtw_print_ht_rate_txt(m, rate);
-               break;
--      case DESC_RATEVHT1SS_MCS0...DESC_RATEVHT2SS_MCS9:
-+      case DESC_RATEVHT1SS_MCS0...DESC_RATEVHT4SS_MCS9:
-               rtw_print_vht_rate_txt(m, rate);
-               break;
-       default:
-@@ -849,20 +849,28 @@ static int rtw_debugfs_get_phy_info(stru
-                          last_cnt->num_qry_pkt[rate_id + 9]);
-       }
--      seq_printf(m, "[RSSI(dBm)] = {%d, %d}\n",
-+      seq_printf(m, "[RSSI(dBm)] = {%d, %d, %d, %d}\n",
-                  dm_info->rssi[RF_PATH_A] - 100,
--                 dm_info->rssi[RF_PATH_B] - 100);
--      seq_printf(m, "[Rx EVM(dB)] = {-%d, -%d}\n",
-+                 dm_info->rssi[RF_PATH_B] - 100,
-+                 dm_info->rssi[RF_PATH_C] - 100,
-+                 dm_info->rssi[RF_PATH_D] - 100);
-+      seq_printf(m, "[Rx EVM(dB)] = {-%d, -%d, -%d, -%d}\n",
-                  dm_info->rx_evm_dbm[RF_PATH_A],
--                 dm_info->rx_evm_dbm[RF_PATH_B]);
--      seq_printf(m, "[Rx SNR] = {%d, %d}\n",
-+                 dm_info->rx_evm_dbm[RF_PATH_B],
-+                 dm_info->rx_evm_dbm[RF_PATH_C],
-+                 dm_info->rx_evm_dbm[RF_PATH_D]);
-+      seq_printf(m, "[Rx SNR] = {%d, %d, %d, %d}\n",
-                  dm_info->rx_snr[RF_PATH_A],
--                 dm_info->rx_snr[RF_PATH_B]);
--      seq_printf(m, "[CFO_tail(KHz)] = {%d, %d}\n",
-+                 dm_info->rx_snr[RF_PATH_B],
-+                 dm_info->rx_snr[RF_PATH_C],
-+                 dm_info->rx_snr[RF_PATH_D]);
-+      seq_printf(m, "[CFO_tail(KHz)] = {%d, %d, %d, %d}\n",
-                  dm_info->cfo_tail[RF_PATH_A],
--                 dm_info->cfo_tail[RF_PATH_B]);
-+                 dm_info->cfo_tail[RF_PATH_B],
-+                 dm_info->cfo_tail[RF_PATH_C],
-+                 dm_info->cfo_tail[RF_PATH_D]);
--      if (dm_info->curr_rx_rate >= DESC_RATE11M) {
-+      if (dm_info->curr_rx_rate >= DESC_RATE6M) {
-               seq_puts(m, "[Rx Average Status]:\n");
-               seq_printf(m, " * OFDM, EVM: {-%d}, SNR: {%d}\n",
-                          (u8)ewma_evm_read(&ewma_evm[RTW_EVM_OFDM]),
-@@ -875,6 +883,13 @@ static int rtw_debugfs_get_phy_info(stru
-                          (u8)ewma_evm_read(&ewma_evm[RTW_EVM_2SS_B]),
-                          (u8)ewma_snr_read(&ewma_snr[RTW_SNR_2SS_A]),
-                          (u8)ewma_snr_read(&ewma_snr[RTW_SNR_2SS_B]));
-+              seq_printf(m, " * 3SS, EVM: {-%d, -%d, -%d}, SNR: {%d, %d, %d}\n",
-+                         (u8)ewma_evm_read(&ewma_evm[RTW_EVM_3SS_A]),
-+                         (u8)ewma_evm_read(&ewma_evm[RTW_EVM_3SS_B]),
-+                         (u8)ewma_evm_read(&ewma_evm[RTW_EVM_3SS_C]),
-+                         (u8)ewma_snr_read(&ewma_snr[RTW_SNR_3SS_A]),
-+                         (u8)ewma_snr_read(&ewma_snr[RTW_SNR_3SS_B]),
-+                         (u8)ewma_snr_read(&ewma_snr[RTW_SNR_3SS_C]));
-       }
-       seq_puts(m, "[Rx Counter]:\n");
diff --git a/package/kernel/mac80211/patches/rtl/084-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_tx_pwr_tbl-for-RTL.patch b/package/kernel/mac80211/patches/rtl/084-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_tx_pwr_tbl-for-RTL.patch
deleted file mode 100644 (file)
index 75fff03..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-From c374281f828545b3698cf936b584249c2f9e40c5 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Tue, 18 Feb 2025 01:32:49 +0200
-Subject: [PATCH] wifi: rtw88: Extend rtw_debugfs_get_tx_pwr_tbl() for
- RTL8814AU
-
-Make it print the TX power details for all RF paths, not just A and B,
-and for all the rates supported by the chip, not just 1SS and 2SS
-rates.
-
-Also skip the RF paths and rates not supported by the chip.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/debug.c | 20 +++++++++++++-------
- 1 file changed, 13 insertions(+), 7 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/debug.c
-+++ b/drivers/net/wireless/realtek/rtw88/debug.c
-@@ -692,9 +692,11 @@ static int rtw_debugfs_get_tx_pwr_tbl(st
- {
-       struct rtw_debugfs_priv *debugfs_priv = m->private;
-       struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
-+      struct rtw_power_params pwr_param = {0};
-       struct rtw_hal *hal = &rtwdev->hal;
-+      u8 nss = rtwdev->efuse.hw_cap.nss;
-       u8 path, rate, bw, ch, regd;
--      struct rtw_power_params pwr_param = {0};
-+      u8 max_ht_rate, max_rate;
-       mutex_lock(&rtwdev->mutex);
-       bw = hal->current_band_width;
-@@ -707,19 +709,23 @@ static int rtw_debugfs_get_tx_pwr_tbl(st
-       seq_printf(m, "%-4s %-10s %-9s %-9s (%-4s %-4s %-4s) %-4s\n",
-                  "path", "rate", "pwr", "base", "byr", "lmt", "sar", "rem");
-+      max_ht_rate = DESC_RATEMCS0 + nss * 8 - 1;
-+
-+      if (rtwdev->chip->vht_supported)
-+              max_rate = DESC_RATEVHT1SS_MCS0 + nss * 10 - 1;
-+      else
-+              max_rate = max_ht_rate;
-+
-       mutex_lock(&hal->tx_power_mutex);
--      for (path = RF_PATH_A; path <= RF_PATH_B; path++) {
-+      for (path = RF_PATH_A; path < hal->rf_path_num; path++) {
-               /* there is no CCK rates used in 5G */
-               if (hal->current_band_type == RTW_BAND_5G)
-                       rate = DESC_RATE6M;
-               else
-                       rate = DESC_RATE1M;
--              /* now, not support vht 3ss and vht 4ss*/
--              for (; rate <= DESC_RATEVHT2SS_MCS9; rate++) {
--                      /* now, not support ht 3ss and ht 4ss*/
--                      if (rate > DESC_RATEMCS15 &&
--                          rate < DESC_RATEVHT1SS_MCS0)
-+              for (; rate <= max_rate; rate++) {
-+                      if (rate > max_ht_rate && rate <= DESC_RATEMCS31)
-                               continue;
-                       rtw_get_tx_power_params(rtwdev, path, rate, bw,
diff --git a/package/kernel/mac80211/patches/rtl/085-v6.15-wifi-rtw88-Add-some-definitions-for-RTL8814AU.patch b/package/kernel/mac80211/patches/rtl/085-v6.15-wifi-rtw88-Add-some-definitions-for-RTL8814AU.patch
deleted file mode 100644 (file)
index d14f1ea..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-From 679ec431477cdb68d1cab068c008da0de7f842ef Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Fri, 7 Mar 2025 02:22:17 +0200
-Subject: [PATCH] wifi: rtw88: Add some definitions for RTL8814AU
-
-Add various register definitions which will be used by the new driver.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/reg.h | 66 ++++++++++++++++++++++--
- 1 file changed, 62 insertions(+), 4 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/reg.h
-+++ b/drivers/net/wireless/realtek/rtw88/reg.h
-@@ -8,6 +8,7 @@
- #define REG_SYS_FUNC_EN               0x0002
- #define BIT_FEN_EN_25_1               BIT(13)
- #define BIT_FEN_ELDR          BIT(12)
-+#define BIT_FEN_PCIEA         BIT(6)
- #define BIT_FEN_CPUEN         BIT(2)
- #define BIT_FEN_USBA          BIT(2)
- #define BIT_FEN_BB_GLB_RST    BIT(1)
-@@ -39,6 +40,9 @@
- #define BIT_RF_RSTB           BIT(1)
- #define BIT_RF_EN             BIT(0)
-+#define REG_RF_CTRL1          0x0020
-+#define REG_RF_CTRL2          0x0021
-+
- #define REG_AFE_CTRL1         0x0024
- #define BIT_MAC_CLK_SEL               (BIT(20) | BIT(21))
- #define REG_EFUSE_CTRL                0x0030
-@@ -73,6 +77,8 @@
- #define BIT_BT_PTA_EN         BIT(5)
- #define BIT_WLRFE_4_5_EN      BIT(2)
-+#define REG_GPIO_PIN_CTRL     0x0044
-+
- #define REG_LED_CFG           0x004C
- #define BIT_LNAON_SEL_EN      BIT(26)
- #define BIT_PAPE_SEL_EN               BIT(25)
-@@ -110,6 +116,7 @@
- #define BIT_SDIO_PAD_E5               BIT(18)
- #define REG_RF_B_CTRL         0x76
-+#define REG_RF_CTRL3          0x0076
- #define REG_AFE_CTRL_4                0x0078
- #define BIT_CK320M_AFE_EN     BIT(4)
-@@ -603,15 +610,25 @@
- #define REG_CCA2ND            0x0838
- #define REG_L1PKTH            0x0848
- #define REG_CLKTRK            0x0860
-+#define REG_CSI_MASK_SETTING1 0x0874
-+#define REG_NBI_SETTING               0x087c
-+#define BIT_NBI_ENABLE                BIT(13)
-+#define REG_CSI_FIX_MASK0     0x0880
-+#define REG_CSI_FIX_MASK1     0x0884
-+#define REG_CSI_FIX_MASK6     0x0898
-+#define REG_CSI_FIX_MASK7     0x089c
- #define REG_ADCCLK            0x08AC
- #define REG_HSSI_READ         0x08B0
- #define REG_FPGA0_XCD_RF_PARA 0x08B4
- #define REG_RX_MCS_LIMIT      0x08BC
- #define REG_ADC160            0x08C4
-+#define REG_DBGSEL            0x08fc
- #define REG_ANTSEL_SW         0x0900
- #define REG_DAC_RSTB          0x090c
-+#define REG_PSD                       0x0910
-+#define BIT_PSD_INI           GENMASK(23, 22)
- #define REG_SINGLE_TONE_CONT_TX       0x0914
--
-+#define REG_AGC_TABLE         0x0958
- #define REG_RFE_CTRL_E                0x0974
- #define REG_2ND_CCA_CTRL      0x0976
- #define REG_IQK_COM00         0x0978
-@@ -621,10 +638,18 @@
- #define REG_FAS                       0x09a4
- #define REG_RXSB              0x0a00
-+#define BIT_RXSB_ANA_DIV      BIT(15)
- #define REG_CCK_RX            0x0a04
- #define REG_CCK_PD_TH         0x0a0a
--
--#define REG_CCK0_FAREPORT     0xa2c
-+#define REG_PRECTRL           0x0a14
-+#define BIT_DIS_CO_PATHSEL    BIT(7)
-+#define BIT_IQ_WGT            GENMASK(9, 8)
-+#define REG_CCA_MF            0x0a20
-+#define BIT_MBC_WIN           GENMASK(5, 4)
-+#define REG_CCK0_TX_FILTER1   0x0a20
-+#define REG_CCK0_TX_FILTER2   0x0a24
-+#define REG_CCK0_DEBUG_PORT   0x0a28
-+#define REG_CCK0_FAREPORT     0x0a2c
- #define BIT_CCK0_2RX          BIT(18)
- #define BIT_CCK0_MRC          BIT(22)
- #define REG_FA_CCK            0x0a5c
-@@ -643,10 +668,18 @@
- #define DIS_DPD_RATEVHT2SS_MCS1       BIT(9)
- #define DIS_DPD_RATEALL               GENMASK(9, 0)
-+#define REG_CCA                       0x0a70
-+#define BIT_CCA_CO            BIT(7)
-+#define REG_ANTSEL            0x0a74
-+#define BIT_ANT_BYCO          BIT(8)
-+#define REG_CCKTX             0x0a84
-+#define BIT_CMB_CCA_2R                BIT(28)
-+
- #define REG_CNTRST            0x0b58
- #define REG_3WIRE_SWA         0x0c00
- #define REG_RX_IQC_AB_A               0x0c10
-+#define REG_RX_IQC_CD_A               0x0c14
- #define REG_TXSCALE_A         0x0c1c
- #define BB_SWING_MASK         GENMASK(31, 21)
- #define REG_TX_AGC_A_CCK_11_CCK_1             0xc20
-@@ -674,7 +707,7 @@
- #define REG_LSSI_WRITE_A      0x0c90
- #define REG_PREDISTA          0x0c90
- #define REG_TXAGCIDX          0x0c94
--
-+#define REG_TX_AGC_A          0x0c94
- #define REG_RFE_PINMUX_A      0x0cb0
- #define REG_RFE_INV_A         0x0cb4
- #define REG_RFE_CTRL8         0x0cb4
-@@ -683,6 +716,7 @@
- #define DPDT_CTRL_PIN         0x77
- #define RFE_INV_MASK          0x3ff00000
- #define REG_RFECTL_A          0x0cb8
-+#define REG_RFE_INV0          0x0cbc
- #define REG_RFE_INV8          0x0cbd
- #define BIT_MASK_RFE_INV89    GENMASK(1, 0)
- #define REG_RFE_INV16         0x0cbe
-@@ -703,6 +737,7 @@
- #define REG_3WIRE_SWB         0x0e00
- #define REG_RX_IQC_AB_B               0x0e10
-+#define REG_RX_IQC_CD_B               0x0e14
- #define REG_TXSCALE_B         0x0e1c
- #define REG_TX_AGC_B_CCK_11_CCK_1             0xe20
- #define REG_TX_AGC_B_OFDM18_OFDM6             0xe24
-@@ -729,6 +764,7 @@
- #define REG_LSSI_WRITE_B      0x0e90
- #define REG_PREDISTB          0x0e90
- #define REG_INIDLYB           0x0e94
-+#define REG_TX_AGC_B          0x0e94
- #define REG_RFE_PINMUX_B      0x0eb0
- #define REG_RFE_INV_B         0x0eb4
- #define REG_RFECTL_B          0x0eb8
-@@ -744,8 +780,11 @@
- #define REG_CRC_HT            0x0f10
- #define REG_CRC_OFDM          0x0f14
- #define REG_FA_OFDM           0x0f48
-+#define REG_DBGRPT            0x0fa0
- #define REG_CCA_CCK           0x0fcc
-+#define REG_SYS_CFG3_8814A    0x1000
-+
- #define REG_ANAPARSW_MAC_0    0x1010
- #define BIT_CF_L_V2           GENMASK(29, 28)
-@@ -863,9 +902,27 @@
- #define LTECOEX_WRITE_DATA REG_WL2LTECOEX_INDIRECT_ACCESS_WRITE_DATA_V1
- #define LTECOEX_READ_DATA REG_WL2LTECOEX_INDIRECT_ACCESS_READ_DATA_V1
-+#define REG_RX_IQC_AB_C               0x1810
-+#define REG_RX_IQC_CD_C               0x1814
-+#define REG_TXSCALE_C         0x181c
-+#define REG_CK_MONHC          0x185c
-+#define REG_AFE_PWR1_C                0x1860
- #define REG_IGN_GNT_BT1       0x1860
-+#define REG_TX_AGC_C          0x1894
-+#define REG_RFE_PINMUX_C      0x18b4
- #define REG_RFESEL_CTRL       0x1990
-+#define REG_AGC_TBL           0x1998
-+
-+#define REG_RX_IQC_AB_D               0x1a10
-+#define REG_RX_IQC_CD_D               0x1a14
-+#define REG_TXSCALE_D         0x1a1c
-+#define REG_CK_MONHD          0x1a5c
-+#define REG_AFE_PWR1_D                0x1a60
-+#define REG_TX_AGC_D          0x1a94
-+#define REG_RFE_PINMUX_D      0x1ab4
-+#define REG_RFE_INVSEL_D      0x1abc
-+#define BIT_RFE_SELSW0_D      GENMASK(27, 20)
- #define REG_NOMASK_TXBT       0x1ca7
- #define REG_ANAPAR    0x1c30
-@@ -906,6 +963,7 @@
- #define RF18_BAND_MASK        (BIT(16) | BIT(9) | BIT(8))
- #define RF18_CHANNEL_MASK     (MASKBYTE0)
- #define RF18_RFSI_MASK        (BIT(18) | BIT(17))
-+#define RF_RCK1_V1    0x1c
- #define RF_RCK                0x1d
- #define RF_MODE_TABLE_ADDR    0x30
- #define RF_MODE_TABLE_DATA0   0x31
diff --git a/package/kernel/mac80211/patches/rtl/086-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-1-2.patch b/package/kernel/mac80211/patches/rtl/086-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-1-2.patch
deleted file mode 100644 (file)
index 6f42855..0000000
+++ /dev/null
@@ -1,12573 +0,0 @@
-From f4debfcb1b3c14a28ec157a41e0b98be72e554a0 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Fri, 7 Mar 2025 02:23:22 +0200
-Subject: [PATCH] wifi: rtw88: Add rtw8814a_table.c (part 1/2)
-
-This contains various tables for initialising the RTL8814A, plus TX
-power limits.
-
-Split into two patches because they are big.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- .../wireless/realtek/rtw88/rtw8814a_table.c   | 12551 ++++++++++++++++
- 1 file changed, 12551 insertions(+)
- create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8814a_table.c
-
---- /dev/null
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8814a_table.c
-@@ -0,0 +1,12551 @@
-+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
-+/* Copyright(c) 2025  Realtek Corporation
-+ */
-+
-+#include "main.h"
-+#include "phy.h"
-+#include "rtw8814a_table.h"
-+
-+static const u32 rtw8814a_mac[] = {
-+      0x010, 0x0000007C,
-+      0x014, 0x000000DB,
-+      0x016, 0x00000002,
-+      0x073, 0x00000010,
-+      0x420, 0x00000080,
-+      0x421, 0x0000000F,
-+      0x428, 0x0000000A,
-+      0x429, 0x00000010,
-+      0x430, 0x00000000,
-+      0x431, 0x00000000,
-+      0x432, 0x00000000,
-+      0x433, 0x00000001,
-+      0x434, 0x00000004,
-+      0x435, 0x00000005,
-+      0x436, 0x00000007,
-+      0x437, 0x00000008,
-+      0x43C, 0x00000004,
-+      0x43D, 0x00000005,
-+      0x43E, 0x00000007,
-+      0x43F, 0x00000008,
-+      0x440, 0x0000005D,
-+      0x441, 0x00000001,
-+      0x442, 0x00000000,
-+      0x444, 0x00000010,
-+      0x445, 0x000000F0,
-+      0x446, 0x00000001,
-+      0x447, 0x000000FE,
-+      0x448, 0x00000000,
-+      0x449, 0x00000000,
-+      0x44A, 0x00000000,
-+      0x44B, 0x00000040,
-+      0x44C, 0x00000010,
-+      0x44D, 0x000000F0,
-+      0x44E, 0x0000003F,
-+      0x44F, 0x00000000,
-+      0x450, 0x00000000,
-+      0x451, 0x00000000,
-+      0x452, 0x00000000,
-+      0x453, 0x00000040,
-+      0x45E, 0x00000004,
-+      0x49C, 0x00000010,
-+      0x49D, 0x000000F0,
-+      0x49E, 0x00000000,
-+      0x49F, 0x00000006,
-+      0x4A0, 0x000000E0,
-+      0x4A1, 0x00000003,
-+      0x4A2, 0x00000000,
-+      0x4A3, 0x00000040,
-+      0x4A4, 0x00000015,
-+      0x4A5, 0x000000F0,
-+      0x4A6, 0x00000000,
-+      0x4A7, 0x00000006,
-+      0x4A8, 0x000000E0,
-+      0x4A9, 0x00000000,
-+      0x4AA, 0x00000000,
-+      0x4AB, 0x00000000,
-+      0x7DA, 0x00000008,
-+      0x1448, 0x00000006,
-+      0x144A, 0x00000006,
-+      0x144C, 0x00000006,
-+      0x144E, 0x00000006,
-+      0x4C8, 0x000000FF,
-+      0x4C9, 0x00000008,
-+      0x4CA, 0x0000003C,
-+      0x4CB, 0x0000003C,
-+      0x4CC, 0x000000FF,
-+      0x4CD, 0x000000FF,
-+      0x4CE, 0x00000001,
-+      0x4CF, 0x00000008,
-+      0x500, 0x00000026,
-+      0x501, 0x000000A2,
-+      0x502, 0x0000002F,
-+      0x503, 0x00000000,
-+      0x504, 0x00000028,
-+      0x505, 0x000000A3,
-+      0x506, 0x0000005E,
-+      0x507, 0x00000000,
-+      0x508, 0x0000002B,
-+      0x509, 0x000000A4,
-+      0x50A, 0x0000005E,
-+      0x50B, 0x00000000,
-+      0x50C, 0x0000004F,
-+      0x50D, 0x000000A4,
-+      0x50E, 0x00000000,
-+      0x50F, 0x00000000,
-+      0x512, 0x0000001C,
-+      0x514, 0x0000000A,
-+      0x516, 0x0000000A,
-+      0x521, 0x0000002F,
-+      0x525, 0x00000047,
-+      0x550, 0x00000010,
-+      0x551, 0x00000010,
-+      0x559, 0x00000002,
-+      0x55C, 0x00000064,
-+      0x55D, 0x000000FF,
-+      0x577, 0x00000003,
-+      0x5BE, 0x00000064,
-+      0x604, 0x00000001,
-+      0x605, 0x00000030,
-+      0x607, 0x00000001,
-+      0x608, 0x0000000E,
-+      0x609, 0x0000002A,
-+      0x60A, 0x00000000,
-+      0x60C, 0x00000018,
-+      0x60D, 0x00000050,
-+      0x6A0, 0x000000FF,
-+      0x6A1, 0x000000FF,
-+      0x6A2, 0x000000FF,
-+      0x6A3, 0x000000FF,
-+      0x6A4, 0x000000FF,
-+      0x6A5, 0x000000FF,
-+      0x6DE, 0x00000084,
-+      0x620, 0x000000FF,
-+      0x621, 0x000000FF,
-+      0x622, 0x000000FF,
-+      0x623, 0x000000FF,
-+      0x624, 0x000000FF,
-+      0x625, 0x000000FF,
-+      0x626, 0x000000FF,
-+      0x627, 0x000000FF,
-+      0x638, 0x00000064,
-+      0x63C, 0x0000000A,
-+      0x63D, 0x0000000A,
-+      0x63E, 0x0000000E,
-+      0x63F, 0x0000000E,
-+      0x640, 0x00000040,
-+      0x642, 0x00000040,
-+      0x643, 0x00000000,
-+      0x652, 0x000000C8,
-+      0x66E, 0x00000005,
-+      0x700, 0x00000021,
-+      0x701, 0x00000043,
-+      0x702, 0x00000065,
-+      0x703, 0x00000087,
-+      0x708, 0x00000021,
-+      0x709, 0x00000043,
-+      0x70A, 0x00000065,
-+      0x70B, 0x00000087,
-+      0x718, 0x00000040,
-+      0x7D5, 0x000000BC,
-+      0x7D8, 0x00000028,
-+      0x7D9, 0x00000000,
-+      0x7DA, 0x0000000B,
-+};
-+
-+RTW_DECL_TABLE_PHY_COND(rtw8814a_mac, rtw_phy_cfg_mac);
-+
-+static const u32 rtw8814a_agc[] = {
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000003,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000003,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000003,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000003,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFF000003,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000003,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFF000003,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000003,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000003,
-+      0xA0000000,     0x00000000,
-+      0x81C, 0xFF000003,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000003,
-+      0x81C, 0xFD020003,
-+      0x81C, 0xFC040003,
-+      0x81C, 0xFB060003,
-+      0x81C, 0xFA080003,
-+      0x81C, 0xF90A0003,
-+      0x81C, 0xF80C0003,
-+      0x81C, 0xF70E0003,
-+      0x81C, 0xF6100003,
-+      0x81C, 0xF5120003,
-+      0x81C, 0xF4140003,
-+      0x81C, 0xF3160003,
-+      0x81C, 0xF2180003,
-+      0x81C, 0xF11A0003,
-+      0x81C, 0xF01C0003,
-+      0x81C, 0xEF1E0003,
-+      0x81C, 0xEE200003,
-+      0x81C, 0xED220003,
-+      0x81C, 0xCF240003,
-+      0x81C, 0xCE260003,
-+      0x81C, 0xCD280003,
-+      0x81C, 0xCC2A0003,
-+      0x81C, 0xCB2C0003,
-+      0x81C, 0xCA2E0003,
-+      0x81C, 0xC9300003,
-+      0x81C, 0xC8320003,
-+      0x81C, 0xC7340003,
-+      0x81C, 0xC6360003,
-+      0x81C, 0xC5380003,
-+      0x81C, 0xC43A0003,
-+      0x81C, 0xA63C0003,
-+      0x81C, 0xA53E0003,
-+      0x81C, 0xA4400003,
-+      0x81C, 0xA3420003,
-+      0x81C, 0xA2440003,
-+      0x81C, 0xA1460003,
-+      0x81C, 0x86480003,
-+      0x81C, 0x854A0003,
-+      0x81C, 0x844C0003,
-+      0x81C, 0x834E0003,
-+      0x81C, 0x66500003,
-+      0x81C, 0x65520003,
-+      0x81C, 0x64540003,
-+      0x81C, 0x63560003,
-+      0x81C, 0x62580003,
-+      0x81C, 0x615A0003,
-+      0x81C, 0x435C0003,
-+      0x81C, 0x425E0003,
-+      0x81C, 0x41600003,
-+      0x81C, 0x27620003,
-+      0x81C, 0x26640003,
-+      0x81C, 0x25660003,
-+      0x81C, 0x24680003,
-+      0x81C, 0x236A0003,
-+      0x81C, 0x226C0003,
-+      0x81C, 0x216E0003,
-+      0x81C, 0x21700003,
-+      0x81C, 0x21720003,
-+      0x81C, 0x21740003,
-+      0x81C, 0x21760003,
-+      0x81C, 0x21780003,
-+      0x81C, 0x217A0003,
-+      0x81C, 0x217C0003,
-+      0x81C, 0x217E0003,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFF000003,
-+      0x81C, 0xFE020003,
-+      0x81C, 0xFD040003,
-+      0x81C, 0xFC060003,
-+      0x81C, 0xFB080003,
-+      0x81C, 0xFA0A0003,
-+      0x81C, 0xF90C0003,
-+      0x81C, 0xF80E0003,
-+      0x81C, 0xF7100003,
-+      0x81C, 0xF6120003,
-+      0x81C, 0xF5140003,
-+      0x81C, 0xF4160003,
-+      0x81C, 0xF3180003,
-+      0x81C, 0xF21A0003,
-+      0x81C, 0xF11C0003,
-+      0x81C, 0xF01E0003,
-+      0x81C, 0xEF200003,
-+      0x81C, 0xEE220003,
-+      0x81C, 0xED240003,
-+      0x81C, 0xEC260003,
-+      0x81C, 0xEB280003,
-+      0x81C, 0xEA2A0003,
-+      0x81C, 0xE92C0003,
-+      0x81C, 0xE82E0003,
-+      0x81C, 0xE7300003,
-+      0x81C, 0xE6320003,
-+      0x81C, 0xE5340003,
-+      0x81C, 0xE4360003,
-+      0x81C, 0xE3380003,
-+      0x81C, 0xC53A0003,
-+      0x81C, 0xC43C0003,
-+      0x81C, 0xC33E0003,
-+      0x81C, 0xC2400003,
-+      0x81C, 0xC1420003,
-+      0x81C, 0xA8440003,
-+      0x81C, 0xA7460003,
-+      0x81C, 0xA6480003,
-+      0x81C, 0xA54A0003,
-+      0x81C, 0xA44C0003,
-+      0x81C, 0xA34E0003,
-+      0x81C, 0xA2500003,
-+      0x81C, 0x65520003,
-+      0x81C, 0x64540003,
-+      0x81C, 0x63560003,
-+      0x81C, 0x62580003,
-+      0x81C, 0x615A0003,
-+      0x81C, 0x475C0003,
-+      0x81C, 0x465E0003,
-+      0x81C, 0x45600003,
-+      0x81C, 0x44620003,
-+      0x81C, 0x43640003,
-+      0x81C, 0x42660003,
-+      0x81C, 0x41680003,
-+      0x81C, 0x416A0003,
-+      0x81C, 0x416C0003,
-+      0x81C, 0x416E0003,
-+      0x81C, 0x41700003,
-+      0x81C, 0x41720003,
-+      0x81C, 0x41740003,
-+      0x81C, 0x41760003,
-+      0x81C, 0x41780003,
-+      0x81C, 0x417A0003,
-+      0x81C, 0x417C0003,
-+      0x81C, 0x417E0003,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000003,
-+      0x81C, 0xFD020003,
-+      0x81C, 0xFC040003,
-+      0x81C, 0xFB060003,
-+      0x81C, 0xFA080003,
-+      0x81C, 0xF90A0003,
-+      0x81C, 0xF80C0003,
-+      0x81C, 0xF70E0003,
-+      0x81C, 0xF6100003,
-+      0x81C, 0xF5120003,
-+      0x81C, 0xF4140003,
-+      0x81C, 0xF3160003,
-+      0x81C, 0xF2180003,
-+      0x81C, 0xF11A0003,
-+      0x81C, 0xF01C0003,
-+      0x81C, 0xEF1E0003,
-+      0x81C, 0xEE200003,
-+      0x81C, 0xED220003,
-+      0x81C, 0xEC240003,
-+      0x81C, 0xEB260003,
-+      0x81C, 0xEA280003,
-+      0x81C, 0xE92A0003,
-+      0x81C, 0xE82C0003,
-+      0x81C, 0xE72E0003,
-+      0x81C, 0xE6300003,
-+      0x81C, 0xE5320003,
-+      0x81C, 0xE4340003,
-+      0x81C, 0xE3360003,
-+      0x81C, 0xC6380003,
-+      0x81C, 0xC53A0003,
-+      0x81C, 0xC43C0003,
-+      0x81C, 0xC33E0003,
-+      0x81C, 0xC2400003,
-+      0x81C, 0xA9420003,
-+      0x81C, 0xA8440003,
-+      0x81C, 0xA7460003,
-+      0x81C, 0xA6480003,
-+      0x81C, 0xA54A0003,
-+      0x81C, 0xA44C0003,
-+      0x81C, 0xA34E0003,
-+      0x81C, 0x66500003,
-+      0x81C, 0x65520003,
-+      0x81C, 0x64540003,
-+      0x81C, 0x63560003,
-+      0x81C, 0x49580003,
-+      0x81C, 0x485A0003,
-+      0x81C, 0x475C0003,
-+      0x81C, 0x465E0003,
-+      0x81C, 0x45600003,
-+      0x81C, 0x44620003,
-+      0x81C, 0x43640003,
-+      0x81C, 0x42660003,
-+      0x81C, 0x41680003,
-+      0x81C, 0x416A0003,
-+      0x81C, 0x416C0003,
-+      0x81C, 0x416E0003,
-+      0x81C, 0x41700003,
-+      0x81C, 0x41720003,
-+      0x81C, 0x41740003,
-+      0x81C, 0x41760003,
-+      0x81C, 0x41780003,
-+      0x81C, 0x417A0003,
-+      0x81C, 0x417C0003,
-+      0x81C, 0x417E0003,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFF000003,
-+      0x81C, 0xFE020003,
-+      0x81C, 0xFD040003,
-+      0x81C, 0xFC060003,
-+      0x81C, 0xFB080003,
-+      0x81C, 0xFA0A0003,
-+      0x81C, 0xF90C0003,
-+      0x81C, 0xF80E0003,
-+      0x81C, 0xF7100003,
-+      0x81C, 0xF6120003,
-+      0x81C, 0xF5140003,
-+      0x81C, 0xF4160003,
-+      0x81C, 0xF3180003,
-+      0x81C, 0xF21A0003,
-+      0x81C, 0xF11C0003,
-+      0x81C, 0xF01E0003,
-+      0x81C, 0xEF200003,
-+      0x81C, 0xEE220003,
-+      0x81C, 0xED240003,
-+      0x81C, 0xEC260003,
-+      0x81C, 0xEB280003,
-+      0x81C, 0xEA2A0003,
-+      0x81C, 0xE92C0003,
-+      0x81C, 0xE82E0003,
-+      0x81C, 0xE7300003,
-+      0x81C, 0xE6320003,
-+      0x81C, 0xE5340003,
-+      0x81C, 0xE4360003,
-+      0x81C, 0xE3380003,
-+      0x81C, 0xC53A0003,
-+      0x81C, 0xC43C0003,
-+      0x81C, 0xC33E0003,
-+      0x81C, 0xC2400003,
-+      0x81C, 0xC1420003,
-+      0x81C, 0xA8440003,
-+      0x81C, 0xA7460003,
-+      0x81C, 0xA6480003,
-+      0x81C, 0xA54A0003,
-+      0x81C, 0xA44C0003,
-+      0x81C, 0xA34E0003,
-+      0x81C, 0xA2500003,
-+      0x81C, 0x65520003,
-+      0x81C, 0x64540003,
-+      0x81C, 0x63560003,
-+      0x81C, 0x62580003,
-+      0x81C, 0x615A0003,
-+      0x81C, 0x475C0003,
-+      0x81C, 0x465E0003,
-+      0x81C, 0x45600003,
-+      0x81C, 0x44620003,
-+      0x81C, 0x43640003,
-+      0x81C, 0x42660003,
-+      0x81C, 0x41680003,
-+      0x81C, 0x416A0003,
-+      0x81C, 0x416C0003,
-+      0x81C, 0x416E0003,
-+      0x81C, 0x41700003,
-+      0x81C, 0x41720003,
-+      0x81C, 0x41740003,
-+      0x81C, 0x41760003,
-+      0x81C, 0x41780003,
-+      0x81C, 0x417A0003,
-+      0x81C, 0x417C0003,
-+      0x81C, 0x417E0003,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000003,
-+      0x81C, 0xFD020003,
-+      0x81C, 0xFC040003,
-+      0x81C, 0xFB060003,
-+      0x81C, 0xFA080003,
-+      0x81C, 0xF90A0003,
-+      0x81C, 0xF80C0003,
-+      0x81C, 0xF70E0003,
-+      0x81C, 0xF6100003,
-+      0x81C, 0xF5120003,
-+      0x81C, 0xF4140003,
-+      0x81C, 0xF3160003,
-+      0x81C, 0xF2180003,
-+      0x81C, 0xF11A0003,
-+      0x81C, 0xF01C0003,
-+      0x81C, 0xEF1E0003,
-+      0x81C, 0xEE200003,
-+      0x81C, 0xED220003,
-+      0x81C, 0xEC240003,
-+      0x81C, 0xEB260003,
-+      0x81C, 0xEA280003,
-+      0x81C, 0xE92A0003,
-+      0x81C, 0xE82C0003,
-+      0x81C, 0xE72E0003,
-+      0x81C, 0xE6300003,
-+      0x81C, 0xE5320003,
-+      0x81C, 0xE4340003,
-+      0x81C, 0xE3360003,
-+      0x81C, 0xC6380003,
-+      0x81C, 0xC53A0003,
-+      0x81C, 0xC43C0003,
-+      0x81C, 0xC33E0003,
-+      0x81C, 0xC2400003,
-+      0x81C, 0xA9420003,
-+      0x81C, 0xA8440003,
-+      0x81C, 0xA7460003,
-+      0x81C, 0xA6480003,
-+      0x81C, 0xA54A0003,
-+      0x81C, 0xA44C0003,
-+      0x81C, 0xA34E0003,
-+      0x81C, 0x66500003,
-+      0x81C, 0x65520003,
-+      0x81C, 0x64540003,
-+      0x81C, 0x63560003,
-+      0x81C, 0x49580003,
-+      0x81C, 0x485A0003,
-+      0x81C, 0x475C0003,
-+      0x81C, 0x465E0003,
-+      0x81C, 0x45600003,
-+      0x81C, 0x44620003,
-+      0x81C, 0x43640003,
-+      0x81C, 0x42660003,
-+      0x81C, 0x41680003,
-+      0x81C, 0x416A0003,
-+      0x81C, 0x416C0003,
-+      0x81C, 0x416E0003,
-+      0x81C, 0x41700003,
-+      0x81C, 0x41720003,
-+      0x81C, 0x41740003,
-+      0x81C, 0x41760003,
-+      0x81C, 0x41780003,
-+      0x81C, 0x417A0003,
-+      0x81C, 0x417C0003,
-+      0x81C, 0x417E0003,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xDF000003,
-+      0x81C, 0xDF020003,
-+      0x81C, 0xDF040003,
-+      0x81C, 0xDE060003,
-+      0x81C, 0xDD080003,
-+      0x81C, 0xDC0A0003,
-+      0x81C, 0xDB0C0003,
-+      0x81C, 0xDA0E0003,
-+      0x81C, 0xD9100003,
-+      0x81C, 0xD8120003,
-+      0x81C, 0xD7140003,
-+      0x81C, 0xD6160003,
-+      0x81C, 0xD5180003,
-+      0x81C, 0xD41A0003,
-+      0x81C, 0xD31C0003,
-+      0x81C, 0xD21E0003,
-+      0x81C, 0xD1200003,
-+      0x81C, 0xD0220003,
-+      0x81C, 0xCF240003,
-+      0x81C, 0xCE260003,
-+      0x81C, 0xCD280003,
-+      0x81C, 0xCC2A0003,
-+      0x81C, 0xCB2C0003,
-+      0x81C, 0xCA2E0003,
-+      0x81C, 0xC9300003,
-+      0x81C, 0xC8320003,
-+      0x81C, 0xC7340003,
-+      0x81C, 0xC6360003,
-+      0x81C, 0xC5380003,
-+      0x81C, 0xA73A0003,
-+      0x81C, 0xA63C0003,
-+      0x81C, 0xA53E0003,
-+      0x81C, 0xA4400003,
-+      0x81C, 0xA3420003,
-+      0x81C, 0xA2440003,
-+      0x81C, 0x87460003,
-+      0x81C, 0x86480003,
-+      0x81C, 0x854A0003,
-+      0x81C, 0x844C0003,
-+      0x81C, 0x834E0003,
-+      0x81C, 0x82500003,
-+      0x81C, 0x81520003,
-+      0x81C, 0x64540003,
-+      0x81C, 0x63560003,
-+      0x81C, 0x62580003,
-+      0x81C, 0x615A0003,
-+      0x81C, 0x445C0003,
-+      0x81C, 0x435E0003,
-+      0x81C, 0x42600003,
-+      0x81C, 0x41620003,
-+      0x81C, 0x27640003,
-+      0x81C, 0x26660003,
-+      0x81C, 0x25680003,
-+      0x81C, 0x246A0003,
-+      0x81C, 0x236C0003,
-+      0x81C, 0x226E0003,
-+      0x81C, 0x21700003,
-+      0x81C, 0x21720003,
-+      0x81C, 0x21740003,
-+      0x81C, 0x21760003,
-+      0x81C, 0x21780003,
-+      0x81C, 0x217A0003,
-+      0x81C, 0x217C0003,
-+      0x81C, 0x217E0003,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFF000003,
-+      0x81C, 0xFE020003,
-+      0x81C, 0xFD040003,
-+      0x81C, 0xFC060003,
-+      0x81C, 0xFB080003,
-+      0x81C, 0xFA0A0003,
-+      0x81C, 0xF90C0003,
-+      0x81C, 0xF80E0003,
-+      0x81C, 0xF7100003,
-+      0x81C, 0xF6120003,
-+      0x81C, 0xF5140003,
-+      0x81C, 0xF4160003,
-+      0x81C, 0xF3180003,
-+      0x81C, 0xF21A0003,
-+      0x81C, 0xF11C0003,
-+      0x81C, 0xF01E0003,
-+      0x81C, 0xEF200003,
-+      0x81C, 0xEE220003,
-+      0x81C, 0xED240003,
-+      0x81C, 0xEC260003,
-+      0x81C, 0xEB280003,
-+      0x81C, 0xEA2A0003,
-+      0x81C, 0xE92C0003,
-+      0x81C, 0xE82E0003,
-+      0x81C, 0xE7300003,
-+      0x81C, 0xE6320003,
-+      0x81C, 0xE5340003,
-+      0x81C, 0xE4360003,
-+      0x81C, 0xE3380003,
-+      0x81C, 0xC53A0003,
-+      0x81C, 0xC43C0003,
-+      0x81C, 0xC33E0003,
-+      0x81C, 0xC2400003,
-+      0x81C, 0xC1420003,
-+      0x81C, 0xA8440003,
-+      0x81C, 0xA7460003,
-+      0x81C, 0xA6480003,
-+      0x81C, 0xA54A0003,
-+      0x81C, 0xA44C0003,
-+      0x81C, 0xA34E0003,
-+      0x81C, 0xA2500003,
-+      0x81C, 0x65520003,
-+      0x81C, 0x64540003,
-+      0x81C, 0x63560003,
-+      0x81C, 0x62580003,
-+      0x81C, 0x615A0003,
-+      0x81C, 0x475C0003,
-+      0x81C, 0x465E0003,
-+      0x81C, 0x45600003,
-+      0x81C, 0x44620003,
-+      0x81C, 0x43640003,
-+      0x81C, 0x42660003,
-+      0x81C, 0x41680003,
-+      0x81C, 0x416A0003,
-+      0x81C, 0x416C0003,
-+      0x81C, 0x416E0003,
-+      0x81C, 0x41700003,
-+      0x81C, 0x41720003,
-+      0x81C, 0x41740003,
-+      0x81C, 0x41760003,
-+      0x81C, 0x41780003,
-+      0x81C, 0x417A0003,
-+      0x81C, 0x417C0003,
-+      0x81C, 0x417E0003,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xDF000003,
-+      0x81C, 0xDF020003,
-+      0x81C, 0xDF040003,
-+      0x81C, 0xDE060003,
-+      0x81C, 0xDD080003,
-+      0x81C, 0xDC0A0003,
-+      0x81C, 0xDB0C0003,
-+      0x81C, 0xDA0E0003,
-+      0x81C, 0xD9100003,
-+      0x81C, 0xD8120003,
-+      0x81C, 0xD7140003,
-+      0x81C, 0xD6160003,
-+      0x81C, 0xD5180003,
-+      0x81C, 0xD41A0003,
-+      0x81C, 0xD31C0003,
-+      0x81C, 0xD21E0003,
-+      0x81C, 0xD1200003,
-+      0x81C, 0xD0220003,
-+      0x81C, 0xCF240003,
-+      0x81C, 0xCE260003,
-+      0x81C, 0xCD280003,
-+      0x81C, 0xCC2A0003,
-+      0x81C, 0xCB2C0003,
-+      0x81C, 0xCA2E0003,
-+      0x81C, 0xC9300003,
-+      0x81C, 0xC8320003,
-+      0x81C, 0xC7340003,
-+      0x81C, 0xC6360003,
-+      0x81C, 0xC5380003,
-+      0x81C, 0xA73A0003,
-+      0x81C, 0xA63C0003,
-+      0x81C, 0xA53E0003,
-+      0x81C, 0xA4400003,
-+      0x81C, 0xA3420003,
-+      0x81C, 0xA2440003,
-+      0x81C, 0x87460003,
-+      0x81C, 0x86480003,
-+      0x81C, 0x854A0003,
-+      0x81C, 0x844C0003,
-+      0x81C, 0x834E0003,
-+      0x81C, 0x82500003,
-+      0x81C, 0x81520003,
-+      0x81C, 0x64540003,
-+      0x81C, 0x63560003,
-+      0x81C, 0x62580003,
-+      0x81C, 0x615A0003,
-+      0x81C, 0x445C0003,
-+      0x81C, 0x435E0003,
-+      0x81C, 0x42600003,
-+      0x81C, 0x41620003,
-+      0x81C, 0x27640003,
-+      0x81C, 0x26660003,
-+      0x81C, 0x25680003,
-+      0x81C, 0x246A0003,
-+      0x81C, 0x236C0003,
-+      0x81C, 0x226E0003,
-+      0x81C, 0x21700003,
-+      0x81C, 0x21720003,
-+      0x81C, 0x21740003,
-+      0x81C, 0x21760003,
-+      0x81C, 0x21780003,
-+      0x81C, 0x217A0003,
-+      0x81C, 0x217C0003,
-+      0x81C, 0x217E0003,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000003,
-+      0x81C, 0xFE020003,
-+      0x81C, 0xFD040003,
-+      0x81C, 0xFC060003,
-+      0x81C, 0xFB080003,
-+      0x81C, 0xFA0A0003,
-+      0x81C, 0xF90C0003,
-+      0x81C, 0xF80E0003,
-+      0x81C, 0xF7100003,
-+      0x81C, 0xF6120003,
-+      0x81C, 0xF5140003,
-+      0x81C, 0xF4160003,
-+      0x81C, 0xF3180003,
-+      0x81C, 0xF21A0003,
-+      0x81C, 0xF11C0003,
-+      0x81C, 0xF01E0003,
-+      0x81C, 0xEF200003,
-+      0x81C, 0xEE220003,
-+      0x81C, 0xED240003,
-+      0x81C, 0x0F260003,
-+      0x81C, 0x0E280003,
-+      0x81C, 0x0D2A0003,
-+      0x81C, 0x0C2C0003,
-+      0x81C, 0x0B2E0003,
-+      0x81C, 0x0A300003,
-+      0x81C, 0x09320003,
-+      0x81C, 0x08340003,
-+      0x81C, 0x07360003,
-+      0x81C, 0x06380003,
-+      0x81C, 0x053A0003,
-+      0x81C, 0x043C0003,
-+      0x81C, 0x033E0003,
-+      0x81C, 0x23400003,
-+      0x81C, 0x22420003,
-+      0x81C, 0xA8440003,
-+      0x81C, 0xA7460003,
-+      0x81C, 0xA6480003,
-+      0x81C, 0xA54A0003,
-+      0x81C, 0xA44C0003,
-+      0x81C, 0x684E0003,
-+      0x81C, 0x67500003,
-+      0x81C, 0x66520003,
-+      0x81C, 0x65540003,
-+      0x81C, 0x64560003,
-+      0x81C, 0x63580003,
-+      0x81C, 0x625A0003,
-+      0x81C, 0x615C0003,
-+      0x81C, 0x475E0003,
-+      0x81C, 0x46600003,
-+      0x81C, 0x45620003,
-+      0x81C, 0x44640003,
-+      0x81C, 0x43660003,
-+      0x81C, 0x42680003,
-+      0x81C, 0x416A0003,
-+      0x81C, 0x416C0003,
-+      0x81C, 0x416E0003,
-+      0x81C, 0x41700003,
-+      0x81C, 0x41720003,
-+      0x81C, 0x41740003,
-+      0x81C, 0x41760003,
-+      0x81C, 0x41780003,
-+      0x81C, 0x417A0003,
-+      0x81C, 0x417C0003,
-+      0x81C, 0x417E0003,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000003,
-+      0x81C, 0xFE020003,
-+      0x81C, 0xFD040003,
-+      0x81C, 0xFC060003,
-+      0x81C, 0xFB080003,
-+      0x81C, 0xFA0A0003,
-+      0x81C, 0xF90C0003,
-+      0x81C, 0xF80E0003,
-+      0x81C, 0xF7100003,
-+      0x81C, 0xF6120003,
-+      0x81C, 0xF5140003,
-+      0x81C, 0xF4160003,
-+      0x81C, 0xF3180003,
-+      0x81C, 0xF21A0003,
-+      0x81C, 0xF11C0003,
-+      0x81C, 0xF01E0003,
-+      0x81C, 0xEF200003,
-+      0x81C, 0xEE220003,
-+      0x81C, 0xED240003,
-+      0x81C, 0xEC260003,
-+      0x81C, 0xEB280003,
-+      0x81C, 0xEA2A0003,
-+      0x81C, 0xE92C0003,
-+      0x81C, 0xE72E0003,
-+      0x81C, 0xE6300003,
-+      0x81C, 0xE5320003,
-+      0x81C, 0x08340003,
-+      0x81C, 0x07360003,
-+      0x81C, 0x06380003,
-+      0x81C, 0x053A0003,
-+      0x81C, 0x043C0003,
-+      0x81C, 0x033E0003,
-+      0x81C, 0x02400003,
-+      0x81C, 0xA9420003,
-+      0x81C, 0xA8440003,
-+      0x81C, 0xA7460003,
-+      0x81C, 0xA6480003,
-+      0x81C, 0xA54A0003,
-+      0x81C, 0x684C0003,
-+      0x81C, 0x674E0003,
-+      0x81C, 0x66500003,
-+      0x81C, 0x65520003,
-+      0x81C, 0x64540003,
-+      0x81C, 0x63560003,
-+      0x81C, 0x62580003,
-+      0x81C, 0x615A0003,
-+      0x81C, 0x475C0003,
-+      0x81C, 0x465E0003,
-+      0x81C, 0x45600003,
-+      0x81C, 0x44620003,
-+      0x81C, 0x43640003,
-+      0x81C, 0x42660003,
-+      0x81C, 0x41680003,
-+      0x81C, 0x416A0003,
-+      0x81C, 0x416C0003,
-+      0x81C, 0x416E0003,
-+      0x81C, 0x41700003,
-+      0x81C, 0x41720003,
-+      0x81C, 0x41740003,
-+      0x81C, 0x41760003,
-+      0x81C, 0x41780003,
-+      0x81C, 0x417A0003,
-+      0x81C, 0x417C0003,
-+      0x81C, 0x417E0003,
-+      0xA0000000,     0x00000000,
-+      0x81C, 0xFE000003,
-+      0x81C, 0xFD020003,
-+      0x81C, 0xFC040003,
-+      0x81C, 0xFB060003,
-+      0x81C, 0xFA080003,
-+      0x81C, 0xF90A0003,
-+      0x81C, 0xF80C0003,
-+      0x81C, 0xF70E0003,
-+      0x81C, 0xF6100003,
-+      0x81C, 0xF5120003,
-+      0x81C, 0xF4140003,
-+      0x81C, 0xF3160003,
-+      0x81C, 0xF2180003,
-+      0x81C, 0xF11A0003,
-+      0x81C, 0xF01C0003,
-+      0x81C, 0xEF1E0003,
-+      0x81C, 0xEE200003,
-+      0x81C, 0xED220003,
-+      0x81C, 0xCF240003,
-+      0x81C, 0xCE260003,
-+      0x81C, 0xCD280003,
-+      0x81C, 0xCC2A0003,
-+      0x81C, 0xCB2C0003,
-+      0x81C, 0xCA2E0003,
-+      0x81C, 0xC9300003,
-+      0x81C, 0xC8320003,
-+      0x81C, 0xC7340003,
-+      0x81C, 0xC6360003,
-+      0x81C, 0xC5380003,
-+      0x81C, 0xC43A0003,
-+      0x81C, 0xA63C0003,
-+      0x81C, 0xA53E0003,
-+      0x81C, 0xA4400003,
-+      0x81C, 0xA3420003,
-+      0x81C, 0xA2440003,
-+      0x81C, 0xA1460003,
-+      0x81C, 0x86480003,
-+      0x81C, 0x854A0003,
-+      0x81C, 0x844C0003,
-+      0x81C, 0x834E0003,
-+      0x81C, 0x66500003,
-+      0x81C, 0x65520003,
-+      0x81C, 0x64540003,
-+      0x81C, 0x63560003,
-+      0x81C, 0x62580003,
-+      0x81C, 0x615A0003,
-+      0x81C, 0x435C0003,
-+      0x81C, 0x425E0003,
-+      0x81C, 0x41600003,
-+      0x81C, 0x27620003,
-+      0x81C, 0x26640003,
-+      0x81C, 0x25660003,
-+      0x81C, 0x24680003,
-+      0x81C, 0x236A0003,
-+      0x81C, 0x226C0003,
-+      0x81C, 0x216E0003,
-+      0x81C, 0x21700003,
-+      0x81C, 0x21720003,
-+      0x81C, 0x21740003,
-+      0x81C, 0x21760003,
-+      0x81C, 0x21780003,
-+      0x81C, 0x217A0003,
-+      0x81C, 0x217C0003,
-+      0x81C, 0x217E0003,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF9000103,
-+      0x81C, 0xF8020103,
-+      0x81C, 0xF7040103,
-+      0x81C, 0xF6060103,
-+      0x81C, 0xF5080103,
-+      0x81C, 0xF40A0103,
-+      0x81C, 0xF30C0103,
-+      0x81C, 0xF20E0103,
-+      0x81C, 0xF1100103,
-+      0x81C, 0xF0120103,
-+      0x81C, 0xEF140103,
-+      0x81C, 0xEE160103,
-+      0x81C, 0xED180103,
-+      0x81C, 0xEC1A0103,
-+      0x81C, 0xEB1C0103,
-+      0x81C, 0xEA1E0103,
-+      0x81C, 0xE9200103,
-+      0x81C, 0xE8220103,
-+      0x81C, 0xE7240103,
-+      0x81C, 0xE6260103,
-+      0x81C, 0xE5280103,
-+      0x81C, 0xE42A0103,
-+      0x81C, 0xE32C0103,
-+      0x81C, 0xC32E0103,
-+      0x81C, 0xC2300103,
-+      0x81C, 0xC1320103,
-+      0x81C, 0xA5340103,
-+      0x81C, 0xA4360103,
-+      0x81C, 0xA3380103,
-+      0x81C, 0xA23A0103,
-+      0x81C, 0xA13C0103,
-+      0x81C, 0x843E0103,
-+      0x81C, 0x83400103,
-+      0x81C, 0x82420103,
-+      0x81C, 0x81440103,
-+      0x81C, 0x64460103,
-+      0x81C, 0x63480103,
-+      0x81C, 0x624A0103,
-+      0x81C, 0x614C0103,
-+      0x81C, 0x444E0103,
-+      0x81C, 0x43500103,
-+      0x81C, 0x42520103,
-+      0x81C, 0x41540103,
-+      0x81C, 0x25560103,
-+      0x81C, 0x24580103,
-+      0x81C, 0x235A0103,
-+      0x81C, 0x065C0103,
-+      0x81C, 0x055E0103,
-+      0x81C, 0x04600103,
-+      0x81C, 0x03620103,
-+      0x81C, 0x02640103,
-+      0x81C, 0x01660103,
-+      0x81C, 0x01680103,
-+      0x81C, 0x016A0103,
-+      0x81C, 0x016C0103,
-+      0x81C, 0x016E0103,
-+      0x81C, 0x01700103,
-+      0x81C, 0x01720103,
-+      0x81C, 0x01740103,
-+      0x81C, 0x01760103,
-+      0x81C, 0x01780103,
-+      0x81C, 0x017A0103,
-+      0x81C, 0x017C0103,
-+      0x81C, 0x017E0103,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF8000103,
-+      0x81C, 0xF7020103,
-+      0x81C, 0xF6040103,
-+      0x81C, 0xF5060103,
-+      0x81C, 0xF4080103,
-+      0x81C, 0xF30A0103,
-+      0x81C, 0xF20C0103,
-+      0x81C, 0xF10E0103,
-+      0x81C, 0xF0100103,
-+      0x81C, 0xEF120103,
-+      0x81C, 0xEE140103,
-+      0x81C, 0xED160103,
-+      0x81C, 0xEC180103,
-+      0x81C, 0xEB1A0103,
-+      0x81C, 0xEA1C0103,
-+      0x81C, 0xE91E0103,
-+      0x81C, 0xE8200103,
-+      0x81C, 0xE7220103,
-+      0x81C, 0xE6240103,
-+      0x81C, 0xE5260103,
-+      0x81C, 0xE4280103,
-+      0x81C, 0xE32A0103,
-+      0x81C, 0xE22C0103,
-+      0x81C, 0xE12E0103,
-+      0x81C, 0xA5300103,
-+      0x81C, 0xA4320103,
-+      0x81C, 0xA3340103,
-+      0x81C, 0xA2360103,
-+      0x81C, 0xA1380103,
-+      0x81C, 0x843A0103,
-+      0x81C, 0x833C0103,
-+      0x81C, 0x823E0103,
-+      0x81C, 0x81400103,
-+      0x81C, 0x64420103,
-+      0x81C, 0x63440103,
-+      0x81C, 0x62460103,
-+      0x81C, 0x61480103,
-+      0x81C, 0x454A0103,
-+      0x81C, 0x444C0103,
-+      0x81C, 0x434E0103,
-+      0x81C, 0x42500103,
-+      0x81C, 0x25520103,
-+      0x81C, 0x24540103,
-+      0x81C, 0x23560103,
-+      0x81C, 0x06580103,
-+      0x81C, 0x055A0103,
-+      0x81C, 0x045C0103,
-+      0x81C, 0x035E0103,
-+      0x81C, 0x02600103,
-+      0x81C, 0x01620103,
-+      0x81C, 0x01640103,
-+      0x81C, 0x01660103,
-+      0x81C, 0x01680103,
-+      0x81C, 0x016A0103,
-+      0x81C, 0x016C0103,
-+      0x81C, 0x016E0103,
-+      0x81C, 0x01700103,
-+      0x81C, 0x01720103,
-+      0x81C, 0x01740103,
-+      0x81C, 0x01760103,
-+      0x81C, 0x01780103,
-+      0x81C, 0x017A0103,
-+      0x81C, 0x017C0103,
-+      0x81C, 0x017E0103,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFC000103,
-+      0x81C, 0xFB020103,
-+      0x81C, 0xFA040103,
-+      0x81C, 0xF9060103,
-+      0x81C, 0xF8080103,
-+      0x81C, 0xF70A0103,
-+      0x81C, 0xF60C0103,
-+      0x81C, 0xF50E0103,
-+      0x81C, 0xF4100103,
-+      0x81C, 0xF3120103,
-+      0x81C, 0xF2140103,
-+      0x81C, 0xF1160103,
-+      0x81C, 0xF0180103,
-+      0x81C, 0xEF1A0103,
-+      0x81C, 0xEE1C0103,
-+      0x81C, 0xED1E0103,
-+      0x81C, 0xEC200103,
-+      0x81C, 0xEB220103,
-+      0x81C, 0xEA240103,
-+      0x81C, 0xE9260103,
-+      0x81C, 0xE8280103,
-+      0x81C, 0xE72A0103,
-+      0x81C, 0xE62C0103,
-+      0x81C, 0xE52E0103,
-+      0x81C, 0xE4300103,
-+      0x81C, 0xE3320103,
-+      0x81C, 0xE2340103,
-+      0x81C, 0xE1360103,
-+      0x81C, 0x87380103,
-+      0x81C, 0x863A0103,
-+      0x81C, 0x853C0103,
-+      0x81C, 0x843E0103,
-+      0x81C, 0x83400103,
-+      0x81C, 0x82420103,
-+      0x81C, 0x81440103,
-+      0x81C, 0x64460103,
-+      0x81C, 0x63480103,
-+      0x81C, 0x624A0103,
-+      0x81C, 0x464C0103,
-+      0x81C, 0x454E0103,
-+      0x81C, 0x44500103,
-+      0x81C, 0x43520103,
-+      0x81C, 0x26540103,
-+      0x81C, 0x25560103,
-+      0x81C, 0x24580103,
-+      0x81C, 0x075A0103,
-+      0x81C, 0x065C0103,
-+      0x81C, 0x055E0103,
-+      0x81C, 0x04600103,
-+      0x81C, 0x03620103,
-+      0x81C, 0x02640103,
-+      0x81C, 0x01660103,
-+      0x81C, 0x01680103,
-+      0x81C, 0x016A0103,
-+      0x81C, 0x016C0103,
-+      0x81C, 0x016E0103,
-+      0x81C, 0x01700103,
-+      0x81C, 0x01720103,
-+      0x81C, 0x01740103,
-+      0x81C, 0x01760103,
-+      0x81C, 0x01780103,
-+      0x81C, 0x017A0103,
-+      0x81C, 0x017C0103,
-+      0x81C, 0x017E0103,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF9000103,
-+      0x81C, 0xF8020103,
-+      0x81C, 0xF7040103,
-+      0x81C, 0xF6060103,
-+      0x81C, 0xF5080103,
-+      0x81C, 0xF40A0103,
-+      0x81C, 0xF30C0103,
-+      0x81C, 0xF20E0103,
-+      0x81C, 0xF1100103,
-+      0x81C, 0xF0120103,
-+      0x81C, 0xEF140103,
-+      0x81C, 0xEE160103,
-+      0x81C, 0xED180103,
-+      0x81C, 0xEC1A0103,
-+      0x81C, 0xEB1C0103,
-+      0x81C, 0xEA1E0103,
-+      0x81C, 0xE9200103,
-+      0x81C, 0xE8220103,
-+      0x81C, 0xE7240103,
-+      0x81C, 0xE6260103,
-+      0x81C, 0xE5280103,
-+      0x81C, 0xE42A0103,
-+      0x81C, 0xE32C0103,
-+      0x81C, 0xE22E0103,
-+      0x81C, 0xA6300103,
-+      0x81C, 0xA5320103,
-+      0x81C, 0xA4340103,
-+      0x81C, 0xA3360103,
-+      0x81C, 0xA2380103,
-+      0x81C, 0xA13A0103,
-+      0x81C, 0x843C0103,
-+      0x81C, 0x833E0103,
-+      0x81C, 0x82400103,
-+      0x81C, 0x81420103,
-+      0x81C, 0x64440103,
-+      0x81C, 0x63460103,
-+      0x81C, 0x62480103,
-+      0x81C, 0x614A0103,
-+      0x81C, 0x444C0103,
-+      0x81C, 0x434E0103,
-+      0x81C, 0x42500103,
-+      0x81C, 0x41520103,
-+      0x81C, 0x25540103,
-+      0x81C, 0x24560103,
-+      0x81C, 0x23580103,
-+      0x81C, 0x225A0103,
-+      0x81C, 0x055C0103,
-+      0x81C, 0x045E0103,
-+      0x81C, 0x03600103,
-+      0x81C, 0x02620103,
-+      0x81C, 0x01640103,
-+      0x81C, 0x01660103,
-+      0x81C, 0x01680103,
-+      0x81C, 0x016A0103,
-+      0x81C, 0x016C0103,
-+      0x81C, 0x016E0103,
-+      0x81C, 0x01700103,
-+      0x81C, 0x01720103,
-+      0x81C, 0x01740103,
-+      0x81C, 0x01760103,
-+      0x81C, 0x01780103,
-+      0x81C, 0x017A0103,
-+      0x81C, 0x017C0103,
-+      0x81C, 0x017E0103,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFD000103,
-+      0x81C, 0xFC020103,
-+      0x81C, 0xFB040103,
-+      0x81C, 0xFA060103,
-+      0x81C, 0xF9080103,
-+      0x81C, 0xF80A0103,
-+      0x81C, 0xF70C0103,
-+      0x81C, 0xF60E0103,
-+      0x81C, 0xF5100103,
-+      0x81C, 0xF4120103,
-+      0x81C, 0xF3140103,
-+      0x81C, 0xF2160103,
-+      0x81C, 0xF1180103,
-+      0x81C, 0xF01A0103,
-+      0x81C, 0xEF1C0103,
-+      0x81C, 0xEE1E0103,
-+      0x81C, 0xED200103,
-+      0x81C, 0xEC220103,
-+      0x81C, 0xEB240103,
-+      0x81C, 0xEA260103,
-+      0x81C, 0xE9280103,
-+      0x81C, 0xE82A0103,
-+      0x81C, 0xE72C0103,
-+      0x81C, 0xE62E0103,
-+      0x81C, 0xE5300103,
-+      0x81C, 0xE4320103,
-+      0x81C, 0xE3340103,
-+      0x81C, 0xE2360103,
-+      0x81C, 0xE1380103,
-+      0x81C, 0xA33A0103,
-+      0x81C, 0xA23C0103,
-+      0x81C, 0xA13E0103,
-+      0x81C, 0x84400103,
-+      0x81C, 0x83420103,
-+      0x81C, 0x82440103,
-+      0x81C, 0x81460103,
-+      0x81C, 0x64480103,
-+      0x81C, 0x634A0103,
-+      0x81C, 0x624C0103,
-+      0x81C, 0x614E0103,
-+      0x81C, 0x45500103,
-+      0x81C, 0x44520103,
-+      0x81C, 0x43540103,
-+      0x81C, 0x42560103,
-+      0x81C, 0x25580103,
-+      0x81C, 0x245A0103,
-+      0x81C, 0x235C0103,
-+      0x81C, 0x065E0103,
-+      0x81C, 0x05600103,
-+      0x81C, 0x04620103,
-+      0x81C, 0x03640103,
-+      0x81C, 0x02660103,
-+      0x81C, 0x01680103,
-+      0x81C, 0x016A0103,
-+      0x81C, 0x016C0103,
-+      0x81C, 0x016E0103,
-+      0x81C, 0x01700103,
-+      0x81C, 0x01720103,
-+      0x81C, 0x01740103,
-+      0x81C, 0x01760103,
-+      0x81C, 0x01780103,
-+      0x81C, 0x017A0103,
-+      0x81C, 0x017C0103,
-+      0x81C, 0x017E0103,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFA000103,
-+      0x81C, 0xF9020103,
-+      0x81C, 0xF8040103,
-+      0x81C, 0xF7060103,
-+      0x81C, 0xF6080103,
-+      0x81C, 0xF50A0103,
-+      0x81C, 0xF40C0103,
-+      0x81C, 0xF30E0103,
-+      0x81C, 0xF2100103,
-+      0x81C, 0xF1120103,
-+      0x81C, 0xF0140103,
-+      0x81C, 0xEF160103,
-+      0x81C, 0xEE180103,
-+      0x81C, 0xED1A0103,
-+      0x81C, 0xEC1C0103,
-+      0x81C, 0xEB1E0103,
-+      0x81C, 0xEA200103,
-+      0x81C, 0xE9220103,
-+      0x81C, 0xE8240103,
-+      0x81C, 0xE7260103,
-+      0x81C, 0xE6280103,
-+      0x81C, 0xE52A0103,
-+      0x81C, 0xE42C0103,
-+      0x81C, 0xE32E0103,
-+      0x81C, 0xE2300103,
-+      0x81C, 0xE1320103,
-+      0x81C, 0xA5340103,
-+      0x81C, 0xA4360103,
-+      0x81C, 0xA3380103,
-+      0x81C, 0xA23A0103,
-+      0x81C, 0xA13C0103,
-+      0x81C, 0x843E0103,
-+      0x81C, 0x83400103,
-+      0x81C, 0x82420103,
-+      0x81C, 0x81440103,
-+      0x81C, 0x64460103,
-+      0x81C, 0x63480103,
-+      0x81C, 0x624A0103,
-+      0x81C, 0x614C0103,
-+      0x81C, 0x454E0103,
-+      0x81C, 0x44500103,
-+      0x81C, 0x43520103,
-+      0x81C, 0x42540103,
-+      0x81C, 0x41560103,
-+      0x81C, 0x24580103,
-+      0x81C, 0x235A0103,
-+      0x81C, 0x225C0103,
-+      0x81C, 0x055E0103,
-+      0x81C, 0x04600103,
-+      0x81C, 0x03620103,
-+      0x81C, 0x02640103,
-+      0x81C, 0x01660103,
-+      0x81C, 0x01680103,
-+      0x81C, 0x016A0103,
-+      0x81C, 0x016C0103,
-+      0x81C, 0x016E0103,
-+      0x81C, 0x01700103,
-+      0x81C, 0x01720103,
-+      0x81C, 0x01740103,
-+      0x81C, 0x01760103,
-+      0x81C, 0x01780103,
-+      0x81C, 0x017A0103,
-+      0x81C, 0x017C0103,
-+      0x81C, 0x017E0103,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFF000103,
-+      0x81C, 0xFF020103,
-+      0x81C, 0xFE040103,
-+      0x81C, 0xFD060103,
-+      0x81C, 0xFC080103,
-+      0x81C, 0xFB0A0103,
-+      0x81C, 0xFA0C0103,
-+      0x81C, 0xF90E0103,
-+      0x81C, 0xF8100103,
-+      0x81C, 0xF7120103,
-+      0x81C, 0xF6140103,
-+      0x81C, 0xF5160103,
-+      0x81C, 0xF4180103,
-+      0x81C, 0xF31A0103,
-+      0x81C, 0xF21C0103,
-+      0x81C, 0xF11E0103,
-+      0x81C, 0xF0200103,
-+      0x81C, 0xEF220103,
-+      0x81C, 0xEE240103,
-+      0x81C, 0xED260103,
-+      0x81C, 0xEC280103,
-+      0x81C, 0xEB2A0103,
-+      0x81C, 0xEA2C0103,
-+      0x81C, 0xE92E0103,
-+      0x81C, 0xE8300103,
-+      0x81C, 0xE7320103,
-+      0x81C, 0xE6340103,
-+      0x81C, 0xE5360103,
-+      0x81C, 0xE4380103,
-+      0x81C, 0xE33A0103,
-+      0x81C, 0xA53C0103,
-+      0x81C, 0xA43E0103,
-+      0x81C, 0xA3400103,
-+      0x81C, 0xA2420103,
-+      0x81C, 0xA1440103,
-+      0x81C, 0x85460103,
-+      0x81C, 0x84480103,
-+      0x81C, 0x834A0103,
-+      0x81C, 0x824C0103,
-+      0x81C, 0x814E0103,
-+      0x81C, 0x64500103,
-+      0x81C, 0x63520103,
-+      0x81C, 0x62540103,
-+      0x81C, 0x44560103,
-+      0x81C, 0x43580103,
-+      0x81C, 0x425A0103,
-+      0x81C, 0x265C0103,
-+      0x81C, 0x255E0103,
-+      0x81C, 0x24600103,
-+      0x81C, 0x07620103,
-+      0x81C, 0x06640103,
-+      0x81C, 0x05660103,
-+      0x81C, 0x04680103,
-+      0x81C, 0x036A0103,
-+      0x81C, 0x026C0103,
-+      0x81C, 0x016E0103,
-+      0x81C, 0x01700103,
-+      0x81C, 0x01720103,
-+      0x81C, 0x01740103,
-+      0x81C, 0x01760103,
-+      0x81C, 0x01780103,
-+      0x81C, 0x017A0103,
-+      0x81C, 0x017C0103,
-+      0x81C, 0x017E0103,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF8000103,
-+      0x81C, 0xF7020103,
-+      0x81C, 0xF6040103,
-+      0x81C, 0xF5060103,
-+      0x81C, 0xF4080103,
-+      0x81C, 0xF30A0103,
-+      0x81C, 0xF20C0103,
-+      0x81C, 0xF10E0103,
-+      0x81C, 0xF0100103,
-+      0x81C, 0xEF120103,
-+      0x81C, 0xEE140103,
-+      0x81C, 0xED160103,
-+      0x81C, 0xEC180103,
-+      0x81C, 0xEB1A0103,
-+      0x81C, 0xEA1C0103,
-+      0x81C, 0xE91E0103,
-+      0x81C, 0xE8200103,
-+      0x81C, 0xE7220103,
-+      0x81C, 0xE6240103,
-+      0x81C, 0xE5260103,
-+      0x81C, 0xE4280103,
-+      0x81C, 0xE32A0103,
-+      0x81C, 0xE22C0103,
-+      0x81C, 0xE12E0103,
-+      0x81C, 0xA4300103,
-+      0x81C, 0xA3320103,
-+      0x81C, 0xA2340103,
-+      0x81C, 0xA1360103,
-+      0x81C, 0x85380103,
-+      0x81C, 0x843A0103,
-+      0x81C, 0x833C0103,
-+      0x81C, 0x823E0103,
-+      0x81C, 0x65400103,
-+      0x81C, 0x64420103,
-+      0x81C, 0x63440103,
-+      0x81C, 0x62460103,
-+      0x81C, 0x45480103,
-+      0x81C, 0x444A0103,
-+      0x81C, 0x434C0103,
-+      0x81C, 0x264E0103,
-+      0x81C, 0x25500103,
-+      0x81C, 0x24520103,
-+      0x81C, 0x08540103,
-+      0x81C, 0x07560103,
-+      0x81C, 0x06580103,
-+      0x81C, 0x055A0103,
-+      0x81C, 0x045C0103,
-+      0x81C, 0x035E0103,
-+      0x81C, 0x02600103,
-+      0x81C, 0x01620103,
-+      0x81C, 0x01640103,
-+      0x81C, 0x01660103,
-+      0x81C, 0x01680103,
-+      0x81C, 0x016A0103,
-+      0x81C, 0x016C0103,
-+      0x81C, 0x016E0103,
-+      0x81C, 0x01700103,
-+      0x81C, 0x01720103,
-+      0x81C, 0x01740103,
-+      0x81C, 0x01760103,
-+      0x81C, 0x01780103,
-+      0x81C, 0x017A0103,
-+      0x81C, 0x017C0103,
-+      0x81C, 0x017E0103,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFF000103,
-+      0x81C, 0xFF020103,
-+      0x81C, 0xFE040103,
-+      0x81C, 0xFD060103,
-+      0x81C, 0xFC080103,
-+      0x81C, 0xFB0A0103,
-+      0x81C, 0xFA0C0103,
-+      0x81C, 0xF90E0103,
-+      0x81C, 0xF8100103,
-+      0x81C, 0xF7120103,
-+      0x81C, 0xF6140103,
-+      0x81C, 0xF5160103,
-+      0x81C, 0xF4180103,
-+      0x81C, 0xF31A0103,
-+      0x81C, 0xF21C0103,
-+      0x81C, 0xF11E0103,
-+      0x81C, 0xF0200103,
-+      0x81C, 0xEF220103,
-+      0x81C, 0xEE240103,
-+      0x81C, 0xED260103,
-+      0x81C, 0xEC280103,
-+      0x81C, 0xEB2A0103,
-+      0x81C, 0xEA2C0103,
-+      0x81C, 0xE92E0103,
-+      0x81C, 0xE8300103,
-+      0x81C, 0xE7320103,
-+      0x81C, 0xE6340103,
-+      0x81C, 0xE5360103,
-+      0x81C, 0xE4380103,
-+      0x81C, 0xE33A0103,
-+      0x81C, 0xA53C0103,
-+      0x81C, 0xA43E0103,
-+      0x81C, 0xA3400103,
-+      0x81C, 0xA2420103,
-+      0x81C, 0xA1440103,
-+      0x81C, 0x85460103,
-+      0x81C, 0x84480103,
-+      0x81C, 0x834A0103,
-+      0x81C, 0x824C0103,
-+      0x81C, 0x814E0103,
-+      0x81C, 0x64500103,
-+      0x81C, 0x63520103,
-+      0x81C, 0x62540103,
-+      0x81C, 0x44560103,
-+      0x81C, 0x43580103,
-+      0x81C, 0x425A0103,
-+      0x81C, 0x265C0103,
-+      0x81C, 0x255E0103,
-+      0x81C, 0x24600103,
-+      0x81C, 0x07620103,
-+      0x81C, 0x06640103,
-+      0x81C, 0x05660103,
-+      0x81C, 0x04680103,
-+      0x81C, 0x036A0103,
-+      0x81C, 0x026C0103,
-+      0x81C, 0x016E0103,
-+      0x81C, 0x01700103,
-+      0x81C, 0x01720103,
-+      0x81C, 0x01740103,
-+      0x81C, 0x01760103,
-+      0x81C, 0x01780103,
-+      0x81C, 0x017A0103,
-+      0x81C, 0x017C0103,
-+      0x81C, 0x017E0103,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF9000103,
-+      0x81C, 0xF8020103,
-+      0x81C, 0xF7040103,
-+      0x81C, 0xF6060103,
-+      0x81C, 0xF5080103,
-+      0x81C, 0xF40A0103,
-+      0x81C, 0xF30C0103,
-+      0x81C, 0xF20E0103,
-+      0x81C, 0xF1100103,
-+      0x81C, 0xF0120103,
-+      0x81C, 0xEF140103,
-+      0x81C, 0xEE160103,
-+      0x81C, 0xED180103,
-+      0x81C, 0xEC1A0103,
-+      0x81C, 0xEB1C0103,
-+      0x81C, 0xEA1E0103,
-+      0x81C, 0xE9200103,
-+      0x81C, 0xE8220103,
-+      0x81C, 0xE7240103,
-+      0x81C, 0xE6260103,
-+      0x81C, 0xE5280103,
-+      0x81C, 0xE42A0103,
-+      0x81C, 0xE32C0103,
-+      0x81C, 0xE22E0103,
-+      0x81C, 0xA6300103,
-+      0x81C, 0xA5320103,
-+      0x81C, 0xA4340103,
-+      0x81C, 0xA3360103,
-+      0x81C, 0xA2380103,
-+      0x81C, 0xA13A0103,
-+      0x81C, 0x843C0103,
-+      0x81C, 0x833E0103,
-+      0x81C, 0x82400103,
-+      0x81C, 0x81420103,
-+      0x81C, 0x64440103,
-+      0x81C, 0x63460103,
-+      0x81C, 0x62480103,
-+      0x81C, 0x614A0103,
-+      0x81C, 0x444C0103,
-+      0x81C, 0x434E0103,
-+      0x81C, 0x42500103,
-+      0x81C, 0x41520103,
-+      0x81C, 0x25540103,
-+      0x81C, 0x24560103,
-+      0x81C, 0x23580103,
-+      0x81C, 0x225A0103,
-+      0x81C, 0x055C0103,
-+      0x81C, 0x045E0103,
-+      0x81C, 0x03600103,
-+      0x81C, 0x02620103,
-+      0x81C, 0x01640103,
-+      0x81C, 0x01660103,
-+      0x81C, 0x01680103,
-+      0x81C, 0x016A0103,
-+      0x81C, 0x016C0103,
-+      0x81C, 0x016E0103,
-+      0x81C, 0x01700103,
-+      0x81C, 0x01720103,
-+      0x81C, 0x01740103,
-+      0x81C, 0x01760103,
-+      0x81C, 0x01780103,
-+      0x81C, 0x017A0103,
-+      0x81C, 0x017C0103,
-+      0x81C, 0x017E0103,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFA000103,
-+      0x81C, 0xF9020103,
-+      0x81C, 0xF8040103,
-+      0x81C, 0xF7060103,
-+      0x81C, 0xF6080103,
-+      0x81C, 0xF50A0103,
-+      0x81C, 0xF40C0103,
-+      0x81C, 0xF30E0103,
-+      0x81C, 0xF2100103,
-+      0x81C, 0xF1120103,
-+      0x81C, 0xF0140103,
-+      0x81C, 0xEF160103,
-+      0x81C, 0xEE180103,
-+      0x81C, 0xED1A0103,
-+      0x81C, 0xCC1C0103,
-+      0x81C, 0xCB1E0103,
-+      0x81C, 0xCA200103,
-+      0x81C, 0xE9220103,
-+      0x81C, 0xE8240103,
-+      0x81C, 0xE7260103,
-+      0x81C, 0xE6280103,
-+      0x81C, 0xE42A0103,
-+      0x81C, 0xE32C0103,
-+      0x81C, 0xE22E0103,
-+      0x81C, 0xA7300103,
-+      0x81C, 0xA6320103,
-+      0x81C, 0xA5340103,
-+      0x81C, 0xA4360103,
-+      0x81C, 0xA3380103,
-+      0x81C, 0xA23A0103,
-+      0x81C, 0xA13C0103,
-+      0x81C, 0x843E0103,
-+      0x81C, 0x83400103,
-+      0x81C, 0x82420103,
-+      0x81C, 0x65440103,
-+      0x81C, 0x64460103,
-+      0x81C, 0x63480103,
-+      0x81C, 0x624A0103,
-+      0x81C, 0x614C0103,
-+      0x81C, 0x444E0103,
-+      0x81C, 0x43500103,
-+      0x81C, 0x42520103,
-+      0x81C, 0x41540103,
-+      0x81C, 0x24560103,
-+      0x81C, 0x23580103,
-+      0x81C, 0x055A0103,
-+      0x81C, 0x045C0103,
-+      0x81C, 0x035E0103,
-+      0x81C, 0x02600103,
-+      0x81C, 0x01620103,
-+      0x81C, 0x01640103,
-+      0x81C, 0x01660103,
-+      0x81C, 0x01680103,
-+      0x81C, 0x016A0103,
-+      0x81C, 0x016C0103,
-+      0x81C, 0x016E0103,
-+      0x81C, 0x01700103,
-+      0x81C, 0x01720103,
-+      0x81C, 0x01740103,
-+      0x81C, 0x01760103,
-+      0x81C, 0x01780103,
-+      0x81C, 0x017A0103,
-+      0x81C, 0x017C0103,
-+      0x81C, 0x017E0103,
-+      0xA0000000,     0x00000000,
-+      0x81C, 0xFF000103,
-+      0x81C, 0xFE020103,
-+      0x81C, 0xFD040103,
-+      0x81C, 0xFC060103,
-+      0x81C, 0xFB080103,
-+      0x81C, 0xFA0A0103,
-+      0x81C, 0xF90C0103,
-+      0x81C, 0xF80E0103,
-+      0x81C, 0xF7100103,
-+      0x81C, 0xF6120103,
-+      0x81C, 0xF5140103,
-+      0x81C, 0xF4160103,
-+      0x81C, 0xF3180103,
-+      0x81C, 0xF21A0103,
-+      0x81C, 0xF11C0103,
-+      0x81C, 0xF01E0103,
-+      0x81C, 0xEF200103,
-+      0x81C, 0xEE220103,
-+      0x81C, 0xED240103,
-+      0x81C, 0xEC260103,
-+      0x81C, 0xEB280103,
-+      0x81C, 0xEA2A0103,
-+      0x81C, 0xE92C0103,
-+      0x81C, 0xE82E0103,
-+      0x81C, 0xE7300103,
-+      0x81C, 0xE6320103,
-+      0x81C, 0xE5340103,
-+      0x81C, 0xE4360103,
-+      0x81C, 0xE3380103,
-+      0x81C, 0xE23A0103,
-+      0x81C, 0xE13C0103,
-+      0x81C, 0xA43E0103,
-+      0x81C, 0xA3400103,
-+      0x81C, 0xA2420103,
-+      0x81C, 0xA1440103,
-+      0x81C, 0x86460103,
-+      0x81C, 0x85480103,
-+      0x81C, 0x844A0103,
-+      0x81C, 0x834C0103,
-+      0x81C, 0x824E0103,
-+      0x81C, 0x81500103,
-+      0x81C, 0x64520103,
-+      0x81C, 0x63540103,
-+      0x81C, 0x62560103,
-+      0x81C, 0x61580103,
-+      0x81C, 0x435A0103,
-+      0x81C, 0x425C0103,
-+      0x81C, 0x415E0103,
-+      0x81C, 0x25600103,
-+      0x81C, 0x24620103,
-+      0x81C, 0x06640103,
-+      0x81C, 0x05660103,
-+      0x81C, 0x04680103,
-+      0x81C, 0x036A0103,
-+      0x81C, 0x026C0103,
-+      0x81C, 0x016E0103,
-+      0x81C, 0x01700103,
-+      0x81C, 0x01720103,
-+      0x81C, 0x01740103,
-+      0x81C, 0x01760103,
-+      0x81C, 0x01780103,
-+      0x81C, 0x017A0103,
-+      0x81C, 0x017C0103,
-+      0x81C, 0x017E0103,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFA000203,
-+      0x81C, 0xF9020203,
-+      0x81C, 0xF8040203,
-+      0x81C, 0xF7060203,
-+      0x81C, 0xF6080203,
-+      0x81C, 0xF50A0203,
-+      0x81C, 0xF40C0203,
-+      0x81C, 0xF30E0203,
-+      0x81C, 0xF2100203,
-+      0x81C, 0xF1120203,
-+      0x81C, 0xF0140203,
-+      0x81C, 0xEF160203,
-+      0x81C, 0xEE180203,
-+      0x81C, 0xED1A0203,
-+      0x81C, 0xEC1C0203,
-+      0x81C, 0xEB1E0203,
-+      0x81C, 0xEA200203,
-+      0x81C, 0xE9220203,
-+      0x81C, 0xE8240203,
-+      0x81C, 0xE7260203,
-+      0x81C, 0xE6280203,
-+      0x81C, 0xE52A0203,
-+      0x81C, 0xE42C0203,
-+      0x81C, 0xE32E0203,
-+      0x81C, 0xE2300203,
-+      0x81C, 0xE1320203,
-+      0x81C, 0xA5340203,
-+      0x81C, 0xA4360203,
-+      0x81C, 0xA3380203,
-+      0x81C, 0xA23A0203,
-+      0x81C, 0xA13C0203,
-+      0x81C, 0x843E0203,
-+      0x81C, 0x83400203,
-+      0x81C, 0x82420203,
-+      0x81C, 0x81440203,
-+      0x81C, 0x63460203,
-+      0x81C, 0x62480203,
-+      0x81C, 0x614A0203,
-+      0x81C, 0x464C0203,
-+      0x81C, 0x454E0203,
-+      0x81C, 0x44500203,
-+      0x81C, 0x43520203,
-+      0x81C, 0x42540203,
-+      0x81C, 0x41560203,
-+      0x81C, 0x24580203,
-+      0x81C, 0x235A0203,
-+      0x81C, 0x065C0203,
-+      0x81C, 0x055E0203,
-+      0x81C, 0x04600203,
-+      0x81C, 0x03620203,
-+      0x81C, 0x02640203,
-+      0x81C, 0x01660203,
-+      0x81C, 0x01680203,
-+      0x81C, 0x016A0203,
-+      0x81C, 0x016C0203,
-+      0x81C, 0x016E0203,
-+      0x81C, 0x01700203,
-+      0x81C, 0x01720203,
-+      0x81C, 0x01740203,
-+      0x81C, 0x01760203,
-+      0x81C, 0x01780203,
-+      0x81C, 0x017A0203,
-+      0x81C, 0x017C0203,
-+      0x81C, 0x017E0203,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF8000203,
-+      0x81C, 0xF7020203,
-+      0x81C, 0xF6040203,
-+      0x81C, 0xF5060203,
-+      0x81C, 0xF4080203,
-+      0x81C, 0xF30A0203,
-+      0x81C, 0xF20C0203,
-+      0x81C, 0xF10E0203,
-+      0x81C, 0xF0100203,
-+      0x81C, 0xEF120203,
-+      0x81C, 0xEE140203,
-+      0x81C, 0xED160203,
-+      0x81C, 0xEC180203,
-+      0x81C, 0xEB1A0203,
-+      0x81C, 0xEA1C0203,
-+      0x81C, 0xE91E0203,
-+      0x81C, 0xE8200203,
-+      0x81C, 0xE7220203,
-+      0x81C, 0xE6240203,
-+      0x81C, 0xE5260203,
-+      0x81C, 0xE4280203,
-+      0x81C, 0xE32A0203,
-+      0x81C, 0xE22C0203,
-+      0x81C, 0xE12E0203,
-+      0x81C, 0xA6300203,
-+      0x81C, 0xA5320203,
-+      0x81C, 0xA4340203,
-+      0x81C, 0xA3360203,
-+      0x81C, 0xA2380203,
-+      0x81C, 0x853A0203,
-+      0x81C, 0x843C0203,
-+      0x81C, 0x833E0203,
-+      0x81C, 0x82400203,
-+      0x81C, 0x81420203,
-+      0x81C, 0x64440203,
-+      0x81C, 0x63460203,
-+      0x81C, 0x62480203,
-+      0x81C, 0x614A0203,
-+      0x81C, 0x444C0203,
-+      0x81C, 0x434E0203,
-+      0x81C, 0x42500203,
-+      0x81C, 0x25520203,
-+      0x81C, 0x24540203,
-+      0x81C, 0x23560203,
-+      0x81C, 0x06580203,
-+      0x81C, 0x055A0203,
-+      0x81C, 0x045C0203,
-+      0x81C, 0x035E0203,
-+      0x81C, 0x02600203,
-+      0x81C, 0x01620203,
-+      0x81C, 0x01640203,
-+      0x81C, 0x01660203,
-+      0x81C, 0x01680203,
-+      0x81C, 0x016A0203,
-+      0x81C, 0x016C0203,
-+      0x81C, 0x016E0203,
-+      0x81C, 0x01700203,
-+      0x81C, 0x01720203,
-+      0x81C, 0x01740203,
-+      0x81C, 0x01760203,
-+      0x81C, 0x01780203,
-+      0x81C, 0x017A0203,
-+      0x81C, 0x017C0203,
-+      0x81C, 0x017E0203,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFC000203,
-+      0x81C, 0xFB020203,
-+      0x81C, 0xFA040203,
-+      0x81C, 0xF9060203,
-+      0x81C, 0xF8080203,
-+      0x81C, 0xF70A0203,
-+      0x81C, 0xF60C0203,
-+      0x81C, 0xF50E0203,
-+      0x81C, 0xF4100203,
-+      0x81C, 0xF3120203,
-+      0x81C, 0xF2140203,
-+      0x81C, 0xF1160203,
-+      0x81C, 0xF0180203,
-+      0x81C, 0xEF1A0203,
-+      0x81C, 0xEE1C0203,
-+      0x81C, 0xED1E0203,
-+      0x81C, 0xEC200203,
-+      0x81C, 0xEB220203,
-+      0x81C, 0xEA240203,
-+      0x81C, 0xE9260203,
-+      0x81C, 0xE8280203,
-+      0x81C, 0xE72A0203,
-+      0x81C, 0xE62C0203,
-+      0x81C, 0xE52E0203,
-+      0x81C, 0xE4300203,
-+      0x81C, 0xE3320203,
-+      0x81C, 0xE2340203,
-+      0x81C, 0xE1360203,
-+      0x81C, 0x87380203,
-+      0x81C, 0x863A0203,
-+      0x81C, 0x853C0203,
-+      0x81C, 0x843E0203,
-+      0x81C, 0x83400203,
-+      0x81C, 0x82420203,
-+      0x81C, 0x81440203,
-+      0x81C, 0x64460203,
-+      0x81C, 0x63480203,
-+      0x81C, 0x624A0203,
-+      0x81C, 0x474C0203,
-+      0x81C, 0x464E0203,
-+      0x81C, 0x45500203,
-+      0x81C, 0x44520203,
-+      0x81C, 0x43540203,
-+      0x81C, 0x42560203,
-+      0x81C, 0x24580203,
-+      0x81C, 0x235A0203,
-+      0x81C, 0x075C0203,
-+      0x81C, 0x065E0203,
-+      0x81C, 0x05600203,
-+      0x81C, 0x04620203,
-+      0x81C, 0x03640203,
-+      0x81C, 0x02660203,
-+      0x81C, 0x01680203,
-+      0x81C, 0x016A0203,
-+      0x81C, 0x016C0203,
-+      0x81C, 0x016E0203,
-+      0x81C, 0x01700203,
-+      0x81C, 0x01720203,
-+      0x81C, 0x01740203,
-+      0x81C, 0x01760203,
-+      0x81C, 0x01780203,
-+      0x81C, 0x017A0203,
-+      0x81C, 0x017C0203,
-+      0x81C, 0x017E0203,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF8000203,
-+      0x81C, 0xF7020203,
-+      0x81C, 0xF6040203,
-+      0x81C, 0xF5060203,
-+      0x81C, 0xF4080203,
-+      0x81C, 0xF30A0203,
-+      0x81C, 0xF20C0203,
-+      0x81C, 0xF10E0203,
-+      0x81C, 0xF0100203,
-+      0x81C, 0xEF120203,
-+      0x81C, 0xEE140203,
-+      0x81C, 0xED160203,
-+      0x81C, 0xEC180203,
-+      0x81C, 0xEB1A0203,
-+      0x81C, 0xEA1C0203,
-+      0x81C, 0xE91E0203,
-+      0x81C, 0xE8200203,
-+      0x81C, 0xE7220203,
-+      0x81C, 0xE6240203,
-+      0x81C, 0xE5260203,
-+      0x81C, 0xE4280203,
-+      0x81C, 0xE32A0203,
-+      0x81C, 0xE22C0203,
-+      0x81C, 0xE12E0203,
-+      0x81C, 0xA6300203,
-+      0x81C, 0xA5320203,
-+      0x81C, 0xA4340203,
-+      0x81C, 0xA3360203,
-+      0x81C, 0xA2380203,
-+      0x81C, 0xA13A0203,
-+      0x81C, 0x843C0203,
-+      0x81C, 0x833E0203,
-+      0x81C, 0x82400203,
-+      0x81C, 0x81420203,
-+      0x81C, 0x64440203,
-+      0x81C, 0x63460203,
-+      0x81C, 0x62480203,
-+      0x81C, 0x614A0203,
-+      0x81C, 0x444C0203,
-+      0x81C, 0x434E0203,
-+      0x81C, 0x42500203,
-+      0x81C, 0x41520203,
-+      0x81C, 0x25540203,
-+      0x81C, 0x24560203,
-+      0x81C, 0x23580203,
-+      0x81C, 0x065A0203,
-+      0x81C, 0x055C0203,
-+      0x81C, 0x045E0203,
-+      0x81C, 0x03600203,
-+      0x81C, 0x02620203,
-+      0x81C, 0x01640203,
-+      0x81C, 0x01660203,
-+      0x81C, 0x01680203,
-+      0x81C, 0x016A0203,
-+      0x81C, 0x016C0203,
-+      0x81C, 0x016E0203,
-+      0x81C, 0x01700203,
-+      0x81C, 0x01720203,
-+      0x81C, 0x01740203,
-+      0x81C, 0x01760203,
-+      0x81C, 0x01780203,
-+      0x81C, 0x017A0203,
-+      0x81C, 0x017C0203,
-+      0x81C, 0x017E0203,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFB000203,
-+      0x81C, 0xFA020203,
-+      0x81C, 0xF9040203,
-+      0x81C, 0xF8060203,
-+      0x81C, 0xF7080203,
-+      0x81C, 0xF60A0203,
-+      0x81C, 0xF50C0203,
-+      0x81C, 0xF40E0203,
-+      0x81C, 0xF3100203,
-+      0x81C, 0xF2120203,
-+      0x81C, 0xF1140203,
-+      0x81C, 0xF0160203,
-+      0x81C, 0xEF180203,
-+      0x81C, 0xEE1A0203,
-+      0x81C, 0xED1C0203,
-+      0x81C, 0xEC1E0203,
-+      0x81C, 0xEB200203,
-+      0x81C, 0xEA220203,
-+      0x81C, 0xE9240203,
-+      0x81C, 0xE8260203,
-+      0x81C, 0xE7280203,
-+      0x81C, 0xE62A0203,
-+      0x81C, 0xE52C0203,
-+      0x81C, 0xE42E0203,
-+      0x81C, 0xE3300203,
-+      0x81C, 0xE2320203,
-+      0x81C, 0xE1340203,
-+      0x81C, 0xA5360203,
-+      0x81C, 0xA4380203,
-+      0x81C, 0xA33A0203,
-+      0x81C, 0xA23C0203,
-+      0x81C, 0x843E0203,
-+      0x81C, 0x83400203,
-+      0x81C, 0x82420203,
-+      0x81C, 0x81440203,
-+      0x81C, 0x64460203,
-+      0x81C, 0x63480203,
-+      0x81C, 0x624A0203,
-+      0x81C, 0x614C0203,
-+      0x81C, 0x474E0203,
-+      0x81C, 0x46500203,
-+      0x81C, 0x45520203,
-+      0x81C, 0x44540203,
-+      0x81C, 0x43560203,
-+      0x81C, 0x25580203,
-+      0x81C, 0x245A0203,
-+      0x81C, 0x235C0203,
-+      0x81C, 0x075E0203,
-+      0x81C, 0x06600203,
-+      0x81C, 0x05620203,
-+      0x81C, 0x04640203,
-+      0x81C, 0x03660203,
-+      0x81C, 0x02680203,
-+      0x81C, 0x016A0203,
-+      0x81C, 0x016C0203,
-+      0x81C, 0x016E0203,
-+      0x81C, 0x01700203,
-+      0x81C, 0x01720203,
-+      0x81C, 0x01740203,
-+      0x81C, 0x01760203,
-+      0x81C, 0x01780203,
-+      0x81C, 0x017A0203,
-+      0x81C, 0x017C0203,
-+      0x81C, 0x017E0203,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFC000203,
-+      0x81C, 0xFB020203,
-+      0x81C, 0xFA040203,
-+      0x81C, 0xF9060203,
-+      0x81C, 0xF8080203,
-+      0x81C, 0xF70A0203,
-+      0x81C, 0xF60C0203,
-+      0x81C, 0xF50E0203,
-+      0x81C, 0xF4100203,
-+      0x81C, 0xF3120203,
-+      0x81C, 0xF2140203,
-+      0x81C, 0xF1160203,
-+      0x81C, 0xF0180203,
-+      0x81C, 0xEF1A0203,
-+      0x81C, 0xEE1C0203,
-+      0x81C, 0xED1E0203,
-+      0x81C, 0xEC200203,
-+      0x81C, 0xEB220203,
-+      0x81C, 0xEA240203,
-+      0x81C, 0xE9260203,
-+      0x81C, 0xE8280203,
-+      0x81C, 0xE72A0203,
-+      0x81C, 0xE62C0203,
-+      0x81C, 0xE52E0203,
-+      0x81C, 0xE4300203,
-+      0x81C, 0xE3320203,
-+      0x81C, 0xE2340203,
-+      0x81C, 0xE1360203,
-+      0x81C, 0xA5380203,
-+      0x81C, 0xA43A0203,
-+      0x81C, 0xA33C0203,
-+      0x81C, 0x853E0203,
-+      0x81C, 0x84400203,
-+      0x81C, 0x83420203,
-+      0x81C, 0x82440203,
-+      0x81C, 0x81460203,
-+      0x81C, 0x64480203,
-+      0x81C, 0x634A0203,
-+      0x81C, 0x624C0203,
-+      0x81C, 0x614E0203,
-+      0x81C, 0x46500203,
-+      0x81C, 0x45520203,
-+      0x81C, 0x44540203,
-+      0x81C, 0x43560203,
-+      0x81C, 0x25580203,
-+      0x81C, 0x245A0203,
-+      0x81C, 0x235C0203,
-+      0x81C, 0x075E0203,
-+      0x81C, 0x06600203,
-+      0x81C, 0x05620203,
-+      0x81C, 0x04640203,
-+      0x81C, 0x03660203,
-+      0x81C, 0x02680203,
-+      0x81C, 0x016A0203,
-+      0x81C, 0x016C0203,
-+      0x81C, 0x016E0203,
-+      0x81C, 0x01700203,
-+      0x81C, 0x01720203,
-+      0x81C, 0x01740203,
-+      0x81C, 0x01760203,
-+      0x81C, 0x01780203,
-+      0x81C, 0x017A0203,
-+      0x81C, 0x017C0203,
-+      0x81C, 0x017E0203,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFF000203,
-+      0x81C, 0xFF020203,
-+      0x81C, 0xFE040203,
-+      0x81C, 0xFD060203,
-+      0x81C, 0xFC080203,
-+      0x81C, 0xFB0A0203,
-+      0x81C, 0xFA0C0203,
-+      0x81C, 0xF90E0203,
-+      0x81C, 0xF8100203,
-+      0x81C, 0xF7120203,
-+      0x81C, 0xF6140203,
-+      0x81C, 0xF5160203,
-+      0x81C, 0xF4180203,
-+      0x81C, 0xF31A0203,
-+      0x81C, 0xF21C0203,
-+      0x81C, 0xF11E0203,
-+      0x81C, 0xF0200203,
-+      0x81C, 0xEF220203,
-+      0x81C, 0xEE240203,
-+      0x81C, 0xED260203,
-+      0x81C, 0xEC280203,
-+      0x81C, 0xEB2A0203,
-+      0x81C, 0xEA2C0203,
-+      0x81C, 0xE92E0203,
-+      0x81C, 0xE8300203,
-+      0x81C, 0xE7320203,
-+      0x81C, 0xE6340203,
-+      0x81C, 0xE5360203,
-+      0x81C, 0xE4380203,
-+      0x81C, 0xE33A0203,
-+      0x81C, 0xE23C0203,
-+      0x81C, 0xE13E0203,
-+      0x81C, 0xA4400203,
-+      0x81C, 0xA3420203,
-+      0x81C, 0xA2440203,
-+      0x81C, 0xA1460203,
-+      0x81C, 0x84480203,
-+      0x81C, 0x834A0203,
-+      0x81C, 0x824C0203,
-+      0x81C, 0x814E0203,
-+      0x81C, 0x64500203,
-+      0x81C, 0x63520203,
-+      0x81C, 0x62540203,
-+      0x81C, 0x61560203,
-+      0x81C, 0x45580203,
-+      0x81C, 0x445A0203,
-+      0x81C, 0x435C0203,
-+      0x81C, 0x425E0203,
-+      0x81C, 0x24600203,
-+      0x81C, 0x23620203,
-+      0x81C, 0x07640203,
-+      0x81C, 0x06660203,
-+      0x81C, 0x05680203,
-+      0x81C, 0x046A0203,
-+      0x81C, 0x036C0203,
-+      0x81C, 0x026E0203,
-+      0x81C, 0x01700203,
-+      0x81C, 0x01720203,
-+      0x81C, 0x01740203,
-+      0x81C, 0x01760203,
-+      0x81C, 0x01780203,
-+      0x81C, 0x017A0203,
-+      0x81C, 0x017C0203,
-+      0x81C, 0x017E0203,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF7000203,
-+      0x81C, 0xF6020203,
-+      0x81C, 0xF5040203,
-+      0x81C, 0xF4060203,
-+      0x81C, 0xF3080203,
-+      0x81C, 0xF20A0203,
-+      0x81C, 0xF10C0203,
-+      0x81C, 0xF00E0203,
-+      0x81C, 0xEF100203,
-+      0x81C, 0xEE120203,
-+      0x81C, 0xED140203,
-+      0x81C, 0xEC160203,
-+      0x81C, 0xEB180203,
-+      0x81C, 0xEA1A0203,
-+      0x81C, 0xE91C0203,
-+      0x81C, 0xE81E0203,
-+      0x81C, 0xE7200203,
-+      0x81C, 0xE6220203,
-+      0x81C, 0xE5240203,
-+      0x81C, 0xE4260203,
-+      0x81C, 0xE3280203,
-+      0x81C, 0xE22A0203,
-+      0x81C, 0xA62C0203,
-+      0x81C, 0xA52E0203,
-+      0x81C, 0xA4300203,
-+      0x81C, 0xA3320203,
-+      0x81C, 0xA2340203,
-+      0x81C, 0xA1360203,
-+      0x81C, 0x86380203,
-+      0x81C, 0x853A0203,
-+      0x81C, 0x843C0203,
-+      0x81C, 0x833E0203,
-+      0x81C, 0x65400203,
-+      0x81C, 0x64420203,
-+      0x81C, 0x63440203,
-+      0x81C, 0x46460203,
-+      0x81C, 0x45480203,
-+      0x81C, 0x444A0203,
-+      0x81C, 0x434C0203,
-+      0x81C, 0x264E0203,
-+      0x81C, 0x25500203,
-+      0x81C, 0x24520203,
-+      0x81C, 0x08540203,
-+      0x81C, 0x07560203,
-+      0x81C, 0x06580203,
-+      0x81C, 0x055A0203,
-+      0x81C, 0x045C0203,
-+      0x81C, 0x035E0203,
-+      0x81C, 0x02600203,
-+      0x81C, 0x01620203,
-+      0x81C, 0x01640203,
-+      0x81C, 0x01660203,
-+      0x81C, 0x01680203,
-+      0x81C, 0x016A0203,
-+      0x81C, 0x016C0203,
-+      0x81C, 0x016E0203,
-+      0x81C, 0x01700203,
-+      0x81C, 0x01720203,
-+      0x81C, 0x01740203,
-+      0x81C, 0x01760203,
-+      0x81C, 0x01780203,
-+      0x81C, 0x017A0203,
-+      0x81C, 0x017C0203,
-+      0x81C, 0x017E0203,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFF000203,
-+      0x81C, 0xFF020203,
-+      0x81C, 0xFE040203,
-+      0x81C, 0xFD060203,
-+      0x81C, 0xFC080203,
-+      0x81C, 0xFB0A0203,
-+      0x81C, 0xFA0C0203,
-+      0x81C, 0xF90E0203,
-+      0x81C, 0xF8100203,
-+      0x81C, 0xF7120203,
-+      0x81C, 0xF6140203,
-+      0x81C, 0xF5160203,
-+      0x81C, 0xF4180203,
-+      0x81C, 0xF31A0203,
-+      0x81C, 0xF21C0203,
-+      0x81C, 0xF11E0203,
-+      0x81C, 0xF0200203,
-+      0x81C, 0xEF220203,
-+      0x81C, 0xEE240203,
-+      0x81C, 0xED260203,
-+      0x81C, 0xEC280203,
-+      0x81C, 0xEB2A0203,
-+      0x81C, 0xEA2C0203,
-+      0x81C, 0xE92E0203,
-+      0x81C, 0xE8300203,
-+      0x81C, 0xE7320203,
-+      0x81C, 0xE6340203,
-+      0x81C, 0xE5360203,
-+      0x81C, 0xE4380203,
-+      0x81C, 0xE33A0203,
-+      0x81C, 0xE23C0203,
-+      0x81C, 0xE13E0203,
-+      0x81C, 0xA4400203,
-+      0x81C, 0xA3420203,
-+      0x81C, 0xA2440203,
-+      0x81C, 0xA1460203,
-+      0x81C, 0x84480203,
-+      0x81C, 0x834A0203,
-+      0x81C, 0x824C0203,
-+      0x81C, 0x814E0203,
-+      0x81C, 0x64500203,
-+      0x81C, 0x63520203,
-+      0x81C, 0x62540203,
-+      0x81C, 0x61560203,
-+      0x81C, 0x45580203,
-+      0x81C, 0x445A0203,
-+      0x81C, 0x435C0203,
-+      0x81C, 0x425E0203,
-+      0x81C, 0x24600203,
-+      0x81C, 0x23620203,
-+      0x81C, 0x07640203,
-+      0x81C, 0x06660203,
-+      0x81C, 0x05680203,
-+      0x81C, 0x046A0203,
-+      0x81C, 0x036C0203,
-+      0x81C, 0x026E0203,
-+      0x81C, 0x01700203,
-+      0x81C, 0x01720203,
-+      0x81C, 0x01740203,
-+      0x81C, 0x01760203,
-+      0x81C, 0x01780203,
-+      0x81C, 0x017A0203,
-+      0x81C, 0x017C0203,
-+      0x81C, 0x017E0203,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF8000203,
-+      0x81C, 0xF7020203,
-+      0x81C, 0xF6040203,
-+      0x81C, 0xF5060203,
-+      0x81C, 0xF4080203,
-+      0x81C, 0xF30A0203,
-+      0x81C, 0xF20C0203,
-+      0x81C, 0xF10E0203,
-+      0x81C, 0xF0100203,
-+      0x81C, 0xEF120203,
-+      0x81C, 0xEE140203,
-+      0x81C, 0xED160203,
-+      0x81C, 0xEC180203,
-+      0x81C, 0xEB1A0203,
-+      0x81C, 0xEA1C0203,
-+      0x81C, 0xE91E0203,
-+      0x81C, 0xE8200203,
-+      0x81C, 0xE7220203,
-+      0x81C, 0xE6240203,
-+      0x81C, 0xE5260203,
-+      0x81C, 0xE4280203,
-+      0x81C, 0xE32A0203,
-+      0x81C, 0xE22C0203,
-+      0x81C, 0xE12E0203,
-+      0x81C, 0xA6300203,
-+      0x81C, 0xA5320203,
-+      0x81C, 0xA4340203,
-+      0x81C, 0xA3360203,
-+      0x81C, 0xA2380203,
-+      0x81C, 0xA13A0203,
-+      0x81C, 0x843C0203,
-+      0x81C, 0x833E0203,
-+      0x81C, 0x82400203,
-+      0x81C, 0x81420203,
-+      0x81C, 0x64440203,
-+      0x81C, 0x63460203,
-+      0x81C, 0x62480203,
-+      0x81C, 0x614A0203,
-+      0x81C, 0x444C0203,
-+      0x81C, 0x434E0203,
-+      0x81C, 0x42500203,
-+      0x81C, 0x41520203,
-+      0x81C, 0x25540203,
-+      0x81C, 0x24560203,
-+      0x81C, 0x23580203,
-+      0x81C, 0x065A0203,
-+      0x81C, 0x055C0203,
-+      0x81C, 0x045E0203,
-+      0x81C, 0x03600203,
-+      0x81C, 0x02620203,
-+      0x81C, 0x01640203,
-+      0x81C, 0x01660203,
-+      0x81C, 0x01680203,
-+      0x81C, 0x016A0203,
-+      0x81C, 0x016C0203,
-+      0x81C, 0x016E0203,
-+      0x81C, 0x01700203,
-+      0x81C, 0x01720203,
-+      0x81C, 0x01740203,
-+      0x81C, 0x01760203,
-+      0x81C, 0x01780203,
-+      0x81C, 0x017A0203,
-+      0x81C, 0x017C0203,
-+      0x81C, 0x017E0203,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF9000203,
-+      0x81C, 0xF8020203,
-+      0x81C, 0xF7040203,
-+      0x81C, 0xF6060203,
-+      0x81C, 0xF5080203,
-+      0x81C, 0xF40A0203,
-+      0x81C, 0xF30C0203,
-+      0x81C, 0xF20E0203,
-+      0x81C, 0xF1100203,
-+      0x81C, 0xF0120203,
-+      0x81C, 0xEF140203,
-+      0x81C, 0xCE160203,
-+      0x81C, 0xCD180203,
-+      0x81C, 0xCC1A0203,
-+      0x81C, 0xCB1C0203,
-+      0x81C, 0xCA1E0203,
-+      0x81C, 0xC9200203,
-+      0x81C, 0xC8220203,
-+      0x81C, 0xC7240203,
-+      0x81C, 0xC6260203,
-+      0x81C, 0xC5280203,
-+      0x81C, 0xC42A0203,
-+      0x81C, 0xC32C0203,
-+      0x81C, 0xC22E0203,
-+      0x81C, 0xC1300203,
-+      0x81C, 0xA5320203,
-+      0x81C, 0xA4340203,
-+      0x81C, 0xA3360203,
-+      0x81C, 0xA2380203,
-+      0x81C, 0xA13A0203,
-+      0x81C, 0x853C0203,
-+      0x81C, 0x843E0203,
-+      0x81C, 0x83400203,
-+      0x81C, 0x82420203,
-+      0x81C, 0x81440203,
-+      0x81C, 0x64460203,
-+      0x81C, 0x63480203,
-+      0x81C, 0x624A0203,
-+      0x81C, 0x614C0203,
-+      0x81C, 0x444E0203,
-+      0x81C, 0x43500203,
-+      0x81C, 0x42520203,
-+      0x81C, 0x41540203,
-+      0x81C, 0x24560203,
-+      0x81C, 0x23580203,
-+      0x81C, 0x075A0203,
-+      0x81C, 0x065C0203,
-+      0x81C, 0x055E0203,
-+      0x81C, 0x04600203,
-+      0x81C, 0x03620203,
-+      0x81C, 0x02640203,
-+      0x81C, 0x01660203,
-+      0x81C, 0x01680203,
-+      0x81C, 0x016A0203,
-+      0x81C, 0x016C0203,
-+      0x81C, 0x016E0203,
-+      0x81C, 0x01700203,
-+      0x81C, 0x01720203,
-+      0x81C, 0x01740203,
-+      0x81C, 0x01760203,
-+      0x81C, 0x01780203,
-+      0x81C, 0x017A0203,
-+      0x81C, 0x017C0203,
-+      0x81C, 0x017E0203,
-+      0xA0000000,     0x00000000,
-+      0x81C, 0xFF000203,
-+      0x81C, 0xFF020203,
-+      0x81C, 0xFE040203,
-+      0x81C, 0xFD060203,
-+      0x81C, 0xFC080203,
-+      0x81C, 0xFB0A0203,
-+      0x81C, 0xFA0C0203,
-+      0x81C, 0xF90E0203,
-+      0x81C, 0xF8100203,
-+      0x81C, 0xF7120203,
-+      0x81C, 0xF6140203,
-+      0x81C, 0xF5160203,
-+      0x81C, 0xF4180203,
-+      0x81C, 0xF31A0203,
-+      0x81C, 0xF21C0203,
-+      0x81C, 0xF11E0203,
-+      0x81C, 0xF0200203,
-+      0x81C, 0xEF220203,
-+      0x81C, 0xEE240203,
-+      0x81C, 0xED260203,
-+      0x81C, 0xEC280203,
-+      0x81C, 0xEB2A0203,
-+      0x81C, 0xEA2C0203,
-+      0x81C, 0xE92E0203,
-+      0x81C, 0xE8300203,
-+      0x81C, 0xE7320203,
-+      0x81C, 0xE6340203,
-+      0x81C, 0xE5360203,
-+      0x81C, 0xE4380203,
-+      0x81C, 0xE33A0203,
-+      0x81C, 0xE23C0203,
-+      0x81C, 0xE13E0203,
-+      0x81C, 0xA4400203,
-+      0x81C, 0xA3420203,
-+      0x81C, 0xA2440203,
-+      0x81C, 0xA1460203,
-+      0x81C, 0x85480203,
-+      0x81C, 0x844A0203,
-+      0x81C, 0x834C0203,
-+      0x81C, 0x824E0203,
-+      0x81C, 0x81500203,
-+      0x81C, 0x64520203,
-+      0x81C, 0x63540203,
-+      0x81C, 0x62560203,
-+      0x81C, 0x61580203,
-+      0x81C, 0x445A0203,
-+      0x81C, 0x435C0203,
-+      0x81C, 0x425E0203,
-+      0x81C, 0x25600203,
-+      0x81C, 0x24620203,
-+      0x81C, 0x06640203,
-+      0x81C, 0x05660203,
-+      0x81C, 0x04680203,
-+      0x81C, 0x036A0203,
-+      0x81C, 0x026C0203,
-+      0x81C, 0x016E0203,
-+      0x81C, 0x01700203,
-+      0x81C, 0x01720203,
-+      0x81C, 0x01740203,
-+      0x81C, 0x01760203,
-+      0x81C, 0x01780203,
-+      0x81C, 0x017A0203,
-+      0x81C, 0x017C0203,
-+      0x81C, 0x017E0203,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF8000303,
-+      0x81C, 0xF7020303,
-+      0x81C, 0xF6040303,
-+      0x81C, 0xF5060303,
-+      0x81C, 0xF4080303,
-+      0x81C, 0xF30A0303,
-+      0x81C, 0xF20C0303,
-+      0x81C, 0xF10E0303,
-+      0x81C, 0xF0100303,
-+      0x81C, 0xEF120303,
-+      0x81C, 0xEE140303,
-+      0x81C, 0xED160303,
-+      0x81C, 0xEC180303,
-+      0x81C, 0xEB1A0303,
-+      0x81C, 0xEA1C0303,
-+      0x81C, 0xE91E0303,
-+      0x81C, 0xE8200303,
-+      0x81C, 0xE7220303,
-+      0x81C, 0xE6240303,
-+      0x81C, 0xE5260303,
-+      0x81C, 0xE4280303,
-+      0x81C, 0xE32A0303,
-+      0x81C, 0xE22C0303,
-+      0x81C, 0xE12E0303,
-+      0x81C, 0xA6300303,
-+      0x81C, 0xA5320303,
-+      0x81C, 0xA4340303,
-+      0x81C, 0xA3360303,
-+      0x81C, 0xA2380303,
-+      0x81C, 0xA13A0303,
-+      0x81C, 0x843C0303,
-+      0x81C, 0x833E0303,
-+      0x81C, 0x82400303,
-+      0x81C, 0x81420303,
-+      0x81C, 0x64440303,
-+      0x81C, 0x63460303,
-+      0x81C, 0x62480303,
-+      0x81C, 0x614A0303,
-+      0x81C, 0x454C0303,
-+      0x81C, 0x444E0303,
-+      0x81C, 0x43500303,
-+      0x81C, 0x42520303,
-+      0x81C, 0x41540303,
-+      0x81C, 0x24560303,
-+      0x81C, 0x23580303,
-+      0x81C, 0x065A0303,
-+      0x81C, 0x055C0303,
-+      0x81C, 0x045E0303,
-+      0x81C, 0x03600303,
-+      0x81C, 0x02620303,
-+      0x81C, 0x01640303,
-+      0x81C, 0x01660303,
-+      0x81C, 0x01680303,
-+      0x81C, 0x016A0303,
-+      0x81C, 0x016C0303,
-+      0x81C, 0x016E0303,
-+      0x81C, 0x01700303,
-+      0x81C, 0x01720303,
-+      0x81C, 0x01740303,
-+      0x81C, 0x01760303,
-+      0x81C, 0x01780303,
-+      0x81C, 0x017A0303,
-+      0x81C, 0x017C0303,
-+      0x81C, 0x017E0303,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF7000303,
-+      0x81C, 0xF6020303,
-+      0x81C, 0xF5040303,
-+      0x81C, 0xF4060303,
-+      0x81C, 0xF3080303,
-+      0x81C, 0xF20A0303,
-+      0x81C, 0xF10C0303,
-+      0x81C, 0xF00E0303,
-+      0x81C, 0xEF100303,
-+      0x81C, 0xEE120303,
-+      0x81C, 0xED140303,
-+      0x81C, 0xEC160303,
-+      0x81C, 0xEB180303,
-+      0x81C, 0xEA1A0303,
-+      0x81C, 0xE91C0303,
-+      0x81C, 0xE81E0303,
-+      0x81C, 0xE7200303,
-+      0x81C, 0xE6220303,
-+      0x81C, 0xE5240303,
-+      0x81C, 0xE4260303,
-+      0x81C, 0xE3280303,
-+      0x81C, 0xC32A0303,
-+      0x81C, 0xC22C0303,
-+      0x81C, 0xC12E0303,
-+      0x81C, 0xA5300303,
-+      0x81C, 0xA4320303,
-+      0x81C, 0xA3340303,
-+      0x81C, 0xA2360303,
-+      0x81C, 0xA1380303,
-+      0x81C, 0x853A0303,
-+      0x81C, 0x843C0303,
-+      0x81C, 0x833E0303,
-+      0x81C, 0x82400303,
-+      0x81C, 0x81420303,
-+      0x81C, 0x64440303,
-+      0x81C, 0x63460303,
-+      0x81C, 0x62480303,
-+      0x81C, 0x614A0303,
-+      0x81C, 0x454C0303,
-+      0x81C, 0x444E0303,
-+      0x81C, 0x43500303,
-+      0x81C, 0x25520303,
-+      0x81C, 0x24540303,
-+      0x81C, 0x23560303,
-+      0x81C, 0x06580303,
-+      0x81C, 0x055A0303,
-+      0x81C, 0x045C0303,
-+      0x81C, 0x035E0303,
-+      0x81C, 0x02600303,
-+      0x81C, 0x01620303,
-+      0x81C, 0x01640303,
-+      0x81C, 0x01660303,
-+      0x81C, 0x01680303,
-+      0x81C, 0x016A0303,
-+      0x81C, 0x016C0303,
-+      0x81C, 0x016E0303,
-+      0x81C, 0x01700303,
-+      0x81C, 0x01720303,
-+      0x81C, 0x01740303,
-+      0x81C, 0x01760303,
-+      0x81C, 0x01780303,
-+      0x81C, 0x017A0303,
-+      0x81C, 0x017C0303,
-+      0x81C, 0x017E0303,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF9000303,
-+      0x81C, 0xF8020303,
-+      0x81C, 0xF7040303,
-+      0x81C, 0xF6060303,
-+      0x81C, 0xF5080303,
-+      0x81C, 0xF40A0303,
-+      0x81C, 0xF30C0303,
-+      0x81C, 0xF20E0303,
-+      0x81C, 0xF1100303,
-+      0x81C, 0xF0120303,
-+      0x81C, 0xEF140303,
-+      0x81C, 0xEE160303,
-+      0x81C, 0xED180303,
-+      0x81C, 0xEC1A0303,
-+      0x81C, 0xEB1C0303,
-+      0x81C, 0xEA1E0303,
-+      0x81C, 0xE9200303,
-+      0x81C, 0xE8220303,
-+      0x81C, 0xE7240303,
-+      0x81C, 0xE6260303,
-+      0x81C, 0xE5280303,
-+      0x81C, 0xE42A0303,
-+      0x81C, 0xE32C0303,
-+      0x81C, 0xE22E0303,
-+      0x81C, 0xE1300303,
-+      0x81C, 0xA4320303,
-+      0x81C, 0xA3340303,
-+      0x81C, 0xA2360303,
-+      0x81C, 0xA1380303,
-+      0x81C, 0x853A0303,
-+      0x81C, 0x843C0303,
-+      0x81C, 0x833E0303,
-+      0x81C, 0x82400303,
-+      0x81C, 0x81420303,
-+      0x81C, 0x64440303,
-+      0x81C, 0x63460303,
-+      0x81C, 0x62480303,
-+      0x81C, 0x614A0303,
-+      0x81C, 0x444C0303,
-+      0x81C, 0x434E0303,
-+      0x81C, 0x42500303,
-+      0x81C, 0x25520303,
-+      0x81C, 0x24540303,
-+      0x81C, 0x23560303,
-+      0x81C, 0x07580303,
-+      0x81C, 0x065A0303,
-+      0x81C, 0x055C0303,
-+      0x81C, 0x045E0303,
-+      0x81C, 0x03600303,
-+      0x81C, 0x02620303,
-+      0x81C, 0x01640303,
-+      0x81C, 0x01660303,
-+      0x81C, 0x01680303,
-+      0x81C, 0x016A0303,
-+      0x81C, 0x016C0303,
-+      0x81C, 0x016E0303,
-+      0x81C, 0x01700303,
-+      0x81C, 0x01720303,
-+      0x81C, 0x01740303,
-+      0x81C, 0x01760303,
-+      0x81C, 0x01780303,
-+      0x81C, 0x017A0303,
-+      0x81C, 0x017C0303,
-+      0x81C, 0x017E0303,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF7000303,
-+      0x81C, 0xF6020303,
-+      0x81C, 0xF5040303,
-+      0x81C, 0xF4060303,
-+      0x81C, 0xF3080303,
-+      0x81C, 0xF20A0303,
-+      0x81C, 0xF10C0303,
-+      0x81C, 0xF00E0303,
-+      0x81C, 0xEF100303,
-+      0x81C, 0xEE120303,
-+      0x81C, 0xED140303,
-+      0x81C, 0xEC160303,
-+      0x81C, 0xEB180303,
-+      0x81C, 0xEA1A0303,
-+      0x81C, 0xE91C0303,
-+      0x81C, 0xE81E0303,
-+      0x81C, 0xE7200303,
-+      0x81C, 0xE6220303,
-+      0x81C, 0xE5240303,
-+      0x81C, 0xE4260303,
-+      0x81C, 0xE3280303,
-+      0x81C, 0xE22A0303,
-+      0x81C, 0xE12C0303,
-+      0x81C, 0xA72E0303,
-+      0x81C, 0xA6300303,
-+      0x81C, 0xA5320303,
-+      0x81C, 0xA4340303,
-+      0x81C, 0xA3360303,
-+      0x81C, 0xA2380303,
-+      0x81C, 0xA13A0303,
-+      0x81C, 0x843C0303,
-+      0x81C, 0x833E0303,
-+      0x81C, 0x82400303,
-+      0x81C, 0x81420303,
-+      0x81C, 0x64440303,
-+      0x81C, 0x63460303,
-+      0x81C, 0x62480303,
-+      0x81C, 0x614A0303,
-+      0x81C, 0x454C0303,
-+      0x81C, 0x444E0303,
-+      0x81C, 0x43500303,
-+      0x81C, 0x42520303,
-+      0x81C, 0x41540303,
-+      0x81C, 0x24560303,
-+      0x81C, 0x23580303,
-+      0x81C, 0x065A0303,
-+      0x81C, 0x055C0303,
-+      0x81C, 0x045E0303,
-+      0x81C, 0x03600303,
-+      0x81C, 0x02620303,
-+      0x81C, 0x01640303,
-+      0x81C, 0x01660303,
-+      0x81C, 0x01680303,
-+      0x81C, 0x016A0303,
-+      0x81C, 0x016C0303,
-+      0x81C, 0x016E0303,
-+      0x81C, 0x01700303,
-+      0x81C, 0x01720303,
-+      0x81C, 0x01740303,
-+      0x81C, 0x01760303,
-+      0x81C, 0x01780303,
-+      0x81C, 0x017A0303,
-+      0x81C, 0x017C0303,
-+      0x81C, 0x017E0303,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFB000303,
-+      0x81C, 0xFA020303,
-+      0x81C, 0xF9040303,
-+      0x81C, 0xF8060303,
-+      0x81C, 0xF7080303,
-+      0x81C, 0xF60A0303,
-+      0x81C, 0xF50C0303,
-+      0x81C, 0xF40E0303,
-+      0x81C, 0xF3100303,
-+      0x81C, 0xF2120303,
-+      0x81C, 0xF1140303,
-+      0x81C, 0xF0160303,
-+      0x81C, 0xEF180303,
-+      0x81C, 0xEE1A0303,
-+      0x81C, 0xED1C0303,
-+      0x81C, 0xEC1E0303,
-+      0x81C, 0xEB200303,
-+      0x81C, 0xEA220303,
-+      0x81C, 0xE9240303,
-+      0x81C, 0xE8260303,
-+      0x81C, 0xE7280303,
-+      0x81C, 0xE62A0303,
-+      0x81C, 0xE52C0303,
-+      0x81C, 0xE42E0303,
-+      0x81C, 0xE3300303,
-+      0x81C, 0xE2320303,
-+      0x81C, 0xE1340303,
-+      0x81C, 0xC2360303,
-+      0x81C, 0xC1380303,
-+      0x81C, 0xA33A0303,
-+      0x81C, 0xA23C0303,
-+      0x81C, 0x853E0303,
-+      0x81C, 0x84400303,
-+      0x81C, 0x83420303,
-+      0x81C, 0x66440303,
-+      0x81C, 0x65460303,
-+      0x81C, 0x64480303,
-+      0x81C, 0x634A0303,
-+      0x81C, 0x624C0303,
-+      0x81C, 0x614E0303,
-+      0x81C, 0x45500303,
-+      0x81C, 0x44520303,
-+      0x81C, 0x43540303,
-+      0x81C, 0x42560303,
-+      0x81C, 0x25580303,
-+      0x81C, 0x245A0303,
-+      0x81C, 0x235C0303,
-+      0x81C, 0x065E0303,
-+      0x81C, 0x05600303,
-+      0x81C, 0x04620303,
-+      0x81C, 0x03640303,
-+      0x81C, 0x02660303,
-+      0x81C, 0x01680303,
-+      0x81C, 0x016A0303,
-+      0x81C, 0x016C0303,
-+      0x81C, 0x016E0303,
-+      0x81C, 0x01700303,
-+      0x81C, 0x01720303,
-+      0x81C, 0x01740303,
-+      0x81C, 0x01760303,
-+      0x81C, 0x01780303,
-+      0x81C, 0x017A0303,
-+      0x81C, 0x017C0303,
-+      0x81C, 0x017E0303,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF9000303,
-+      0x81C, 0xF8020303,
-+      0x81C, 0xF7040303,
-+      0x81C, 0xF6060303,
-+      0x81C, 0xF5080303,
-+      0x81C, 0xF40A0303,
-+      0x81C, 0xF30C0303,
-+      0x81C, 0xF20E0303,
-+      0x81C, 0xF1100303,
-+      0x81C, 0xF0120303,
-+      0x81C, 0xEF140303,
-+      0x81C, 0xEE160303,
-+      0x81C, 0xED180303,
-+      0x81C, 0xEC1A0303,
-+      0x81C, 0xEB1C0303,
-+      0x81C, 0xEA1E0303,
-+      0x81C, 0xE9200303,
-+      0x81C, 0xE8220303,
-+      0x81C, 0xE7240303,
-+      0x81C, 0xE6260303,
-+      0x81C, 0xE5280303,
-+      0x81C, 0xE42A0303,
-+      0x81C, 0xE32C0303,
-+      0x81C, 0xE22E0303,
-+      0x81C, 0xE1300303,
-+      0x81C, 0xA6320303,
-+      0x81C, 0xA5340303,
-+      0x81C, 0xA4360303,
-+      0x81C, 0xA3380303,
-+      0x81C, 0xA23A0303,
-+      0x81C, 0xA13C0303,
-+      0x81C, 0x853E0303,
-+      0x81C, 0x84400303,
-+      0x81C, 0x83420303,
-+      0x81C, 0x82440303,
-+      0x81C, 0x81460303,
-+      0x81C, 0x64480303,
-+      0x81C, 0x634A0303,
-+      0x81C, 0x624C0303,
-+      0x81C, 0x614E0303,
-+      0x81C, 0x44500303,
-+      0x81C, 0x43520303,
-+      0x81C, 0x42540303,
-+      0x81C, 0x41560303,
-+      0x81C, 0x25580303,
-+      0x81C, 0x245A0303,
-+      0x81C, 0x235C0303,
-+      0x81C, 0x055E0303,
-+      0x81C, 0x04600303,
-+      0x81C, 0x03620303,
-+      0x81C, 0x02640303,
-+      0x81C, 0x01660303,
-+      0x81C, 0x01680303,
-+      0x81C, 0x016A0303,
-+      0x81C, 0x016C0303,
-+      0x81C, 0x016E0303,
-+      0x81C, 0x01700303,
-+      0x81C, 0x01720303,
-+      0x81C, 0x01740303,
-+      0x81C, 0x01760303,
-+      0x81C, 0x01780303,
-+      0x81C, 0x017A0303,
-+      0x81C, 0x017C0303,
-+      0x81C, 0x017E0303,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000303,
-+      0x81C, 0xFD020303,
-+      0x81C, 0xFC040303,
-+      0x81C, 0xFB060303,
-+      0x81C, 0xFA080303,
-+      0x81C, 0xF90A0303,
-+      0x81C, 0xF80C0303,
-+      0x81C, 0xF70E0303,
-+      0x81C, 0xF6100303,
-+      0x81C, 0xF5120303,
-+      0x81C, 0xF4140303,
-+      0x81C, 0xF3160303,
-+      0x81C, 0xF2180303,
-+      0x81C, 0xF11A0303,
-+      0x81C, 0xF01C0303,
-+      0x81C, 0xEF1E0303,
-+      0x81C, 0xEE200303,
-+      0x81C, 0xED220303,
-+      0x81C, 0xEC240303,
-+      0x81C, 0xEB260303,
-+      0x81C, 0xEA280303,
-+      0x81C, 0xE92A0303,
-+      0x81C, 0xE82C0303,
-+      0x81C, 0xE72E0303,
-+      0x81C, 0xE6300303,
-+      0x81C, 0xE5320303,
-+      0x81C, 0xE4340303,
-+      0x81C, 0xE3360303,
-+      0x81C, 0xC3380303,
-+      0x81C, 0xC23A0303,
-+      0x81C, 0xC13C0303,
-+      0x81C, 0xA43E0303,
-+      0x81C, 0xA3400303,
-+      0x81C, 0xA2420303,
-+      0x81C, 0xA1440303,
-+      0x81C, 0x85460303,
-+      0x81C, 0x84480303,
-+      0x81C, 0x834A0303,
-+      0x81C, 0x824C0303,
-+      0x81C, 0x814E0303,
-+      0x81C, 0x64500303,
-+      0x81C, 0x63520303,
-+      0x81C, 0x62540303,
-+      0x81C, 0x61560303,
-+      0x81C, 0x44580303,
-+      0x81C, 0x435A0303,
-+      0x81C, 0x425C0303,
-+      0x81C, 0x265E0303,
-+      0x81C, 0x25600303,
-+      0x81C, 0x24620303,
-+      0x81C, 0x06640303,
-+      0x81C, 0x05660303,
-+      0x81C, 0x04680303,
-+      0x81C, 0x036A0303,
-+      0x81C, 0x026C0303,
-+      0x81C, 0x016E0303,
-+      0x81C, 0x01700303,
-+      0x81C, 0x01720303,
-+      0x81C, 0x01740303,
-+      0x81C, 0x01760303,
-+      0x81C, 0x01780303,
-+      0x81C, 0x017A0303,
-+      0x81C, 0x017C0303,
-+      0x81C, 0x017E0303,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF7000303,
-+      0x81C, 0xF6020303,
-+      0x81C, 0xF5040303,
-+      0x81C, 0xF4060303,
-+      0x81C, 0xF3080303,
-+      0x81C, 0xF20A0303,
-+      0x81C, 0xF10C0303,
-+      0x81C, 0xF00E0303,
-+      0x81C, 0xEF100303,
-+      0x81C, 0xEE120303,
-+      0x81C, 0xED140303,
-+      0x81C, 0xEC160303,
-+      0x81C, 0xEB180303,
-+      0x81C, 0xEA1A0303,
-+      0x81C, 0xE91C0303,
-+      0x81C, 0xE81E0303,
-+      0x81C, 0xE7200303,
-+      0x81C, 0xE6220303,
-+      0x81C, 0xE5240303,
-+      0x81C, 0xE4260303,
-+      0x81C, 0xE3280303,
-+      0x81C, 0xE22A0303,
-+      0x81C, 0xA62C0303,
-+      0x81C, 0xA52E0303,
-+      0x81C, 0xA4300303,
-+      0x81C, 0xA3320303,
-+      0x81C, 0xA2340303,
-+      0x81C, 0x87360303,
-+      0x81C, 0x86380303,
-+      0x81C, 0x853A0303,
-+      0x81C, 0x843C0303,
-+      0x81C, 0x833E0303,
-+      0x81C, 0x66400303,
-+      0x81C, 0x65420303,
-+      0x81C, 0x64440303,
-+      0x81C, 0x45460303,
-+      0x81C, 0x44480303,
-+      0x81C, 0x434A0303,
-+      0x81C, 0x274C0303,
-+      0x81C, 0x264E0303,
-+      0x81C, 0x25500303,
-+      0x81C, 0x24520303,
-+      0x81C, 0x23540303,
-+      0x81C, 0x08560303,
-+      0x81C, 0x07580303,
-+      0x81C, 0x065A0303,
-+      0x81C, 0x055C0303,
-+      0x81C, 0x045E0303,
-+      0x81C, 0x03600303,
-+      0x81C, 0x02620303,
-+      0x81C, 0x01640303,
-+      0x81C, 0x01660303,
-+      0x81C, 0x01680303,
-+      0x81C, 0x016A0303,
-+      0x81C, 0x016C0303,
-+      0x81C, 0x016E0303,
-+      0x81C, 0x01700303,
-+      0x81C, 0x01720303,
-+      0x81C, 0x01740303,
-+      0x81C, 0x01760303,
-+      0x81C, 0x01780303,
-+      0x81C, 0x017A0303,
-+      0x81C, 0x017C0303,
-+      0x81C, 0x017E0303,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xFE000303,
-+      0x81C, 0xFD020303,
-+      0x81C, 0xFC040303,
-+      0x81C, 0xFB060303,
-+      0x81C, 0xFA080303,
-+      0x81C, 0xF90A0303,
-+      0x81C, 0xF80C0303,
-+      0x81C, 0xF70E0303,
-+      0x81C, 0xF6100303,
-+      0x81C, 0xF5120303,
-+      0x81C, 0xF4140303,
-+      0x81C, 0xF3160303,
-+      0x81C, 0xF2180303,
-+      0x81C, 0xF11A0303,
-+      0x81C, 0xF01C0303,
-+      0x81C, 0xEF1E0303,
-+      0x81C, 0xEE200303,
-+      0x81C, 0xED220303,
-+      0x81C, 0xEC240303,
-+      0x81C, 0xEB260303,
-+      0x81C, 0xEA280303,
-+      0x81C, 0xE92A0303,
-+      0x81C, 0xE82C0303,
-+      0x81C, 0xE72E0303,
-+      0x81C, 0xE6300303,
-+      0x81C, 0xE5320303,
-+      0x81C, 0xE4340303,
-+      0x81C, 0xE3360303,
-+      0x81C, 0xC3380303,
-+      0x81C, 0xC23A0303,
-+      0x81C, 0xC13C0303,
-+      0x81C, 0xA43E0303,
-+      0x81C, 0xA3400303,
-+      0x81C, 0xA2420303,
-+      0x81C, 0xA1440303,
-+      0x81C, 0x85460303,
-+      0x81C, 0x84480303,
-+      0x81C, 0x834A0303,
-+      0x81C, 0x824C0303,
-+      0x81C, 0x814E0303,
-+      0x81C, 0x64500303,
-+      0x81C, 0x63520303,
-+      0x81C, 0x62540303,
-+      0x81C, 0x61560303,
-+      0x81C, 0x44580303,
-+      0x81C, 0x435A0303,
-+      0x81C, 0x425C0303,
-+      0x81C, 0x265E0303,
-+      0x81C, 0x25600303,
-+      0x81C, 0x24620303,
-+      0x81C, 0x06640303,
-+      0x81C, 0x05660303,
-+      0x81C, 0x04680303,
-+      0x81C, 0x036A0303,
-+      0x81C, 0x026C0303,
-+      0x81C, 0x016E0303,
-+      0x81C, 0x01700303,
-+      0x81C, 0x01720303,
-+      0x81C, 0x01740303,
-+      0x81C, 0x01760303,
-+      0x81C, 0x01780303,
-+      0x81C, 0x017A0303,
-+      0x81C, 0x017C0303,
-+      0x81C, 0x017E0303,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF7000303,
-+      0x81C, 0xF6020303,
-+      0x81C, 0xF5040303,
-+      0x81C, 0xF4060303,
-+      0x81C, 0xF3080303,
-+      0x81C, 0xF20A0303,
-+      0x81C, 0xF10C0303,
-+      0x81C, 0xF00E0303,
-+      0x81C, 0xEF100303,
-+      0x81C, 0xEE120303,
-+      0x81C, 0xED140303,
-+      0x81C, 0xEC160303,
-+      0x81C, 0xEB180303,
-+      0x81C, 0xEA1A0303,
-+      0x81C, 0xE91C0303,
-+      0x81C, 0xE81E0303,
-+      0x81C, 0xE7200303,
-+      0x81C, 0xE6220303,
-+      0x81C, 0xE5240303,
-+      0x81C, 0xE4260303,
-+      0x81C, 0xE3280303,
-+      0x81C, 0xE22A0303,
-+      0x81C, 0xE12C0303,
-+      0x81C, 0xA72E0303,
-+      0x81C, 0xA6300303,
-+      0x81C, 0xA5320303,
-+      0x81C, 0xA4340303,
-+      0x81C, 0xA3360303,
-+      0x81C, 0xA2380303,
-+      0x81C, 0xA13A0303,
-+      0x81C, 0x843C0303,
-+      0x81C, 0x833E0303,
-+      0x81C, 0x82400303,
-+      0x81C, 0x81420303,
-+      0x81C, 0x64440303,
-+      0x81C, 0x63460303,
-+      0x81C, 0x62480303,
-+      0x81C, 0x614A0303,
-+      0x81C, 0x454C0303,
-+      0x81C, 0x444E0303,
-+      0x81C, 0x43500303,
-+      0x81C, 0x42520303,
-+      0x81C, 0x41540303,
-+      0x81C, 0x24560303,
-+      0x81C, 0x23580303,
-+      0x81C, 0x065A0303,
-+      0x81C, 0x055C0303,
-+      0x81C, 0x045E0303,
-+      0x81C, 0x03600303,
-+      0x81C, 0x02620303,
-+      0x81C, 0x01640303,
-+      0x81C, 0x01660303,
-+      0x81C, 0x01680303,
-+      0x81C, 0x016A0303,
-+      0x81C, 0x016C0303,
-+      0x81C, 0x016E0303,
-+      0x81C, 0x01700303,
-+      0x81C, 0x01720303,
-+      0x81C, 0x01740303,
-+      0x81C, 0x01760303,
-+      0x81C, 0x01780303,
-+      0x81C, 0x017A0303,
-+      0x81C, 0x017C0303,
-+      0x81C, 0x017E0303,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x81C, 0xF7000303,
-+      0x81C, 0xF6020303,
-+      0x81C, 0xF5040303,
-+      0x81C, 0xF4060303,
-+      0x81C, 0xF3080303,
-+      0x81C, 0xF20A0303,
-+      0x81C, 0xF10C0303,
-+      0x81C, 0xF00E0303,
-+      0x81C, 0xEF100303,
-+      0x81C, 0xEE120303,
-+      0x81C, 0xED140303,
-+      0x81C, 0xEC160303,
-+      0x81C, 0xEB180303,
-+      0x81C, 0xEA1A0303,
-+      0x81C, 0xAF1C0303,
-+      0x81C, 0xAE1E0303,
-+      0x81C, 0xAD200303,
-+      0x81C, 0xAC220303,
-+      0x81C, 0xAB240303,
-+      0x81C, 0xAA260303,
-+      0x81C, 0xC5280303,
-+      0x81C, 0xC42A0303,
-+      0x81C, 0xC32C0303,
-+      0x81C, 0xC22E0303,
-+      0x81C, 0xA5300303,
-+      0x81C, 0xA4320303,
-+      0x81C, 0xA3340303,
-+      0x81C, 0xA2360303,
-+      0x81C, 0xA1380303,
-+      0x81C, 0x853A0303,
-+      0x81C, 0x843C0303,
-+      0x81C, 0x833E0303,
-+      0x81C, 0x82400303,
-+      0x81C, 0x81420303,
-+      0x81C, 0x64440303,
-+      0x81C, 0x63460303,
-+      0x81C, 0x62480303,
-+      0x81C, 0x614A0303,
-+      0x81C, 0x444C0303,
-+      0x81C, 0x434E0303,
-+      0x81C, 0x42500303,
-+      0x81C, 0x41520303,
-+      0x81C, 0x25540303,
-+      0x81C, 0x24560303,
-+      0x81C, 0x06580303,
-+      0x81C, 0x055A0303,
-+      0x81C, 0x045C0303,
-+      0x81C, 0x035E0303,
-+      0x81C, 0x02600303,
-+      0x81C, 0x01620303,
-+      0x81C, 0x01640303,
-+      0x81C, 0x01660303,
-+      0x81C, 0x01680303,
-+      0x81C, 0x016A0303,
-+      0x81C, 0x016C0303,
-+      0x81C, 0x016E0303,
-+      0x81C, 0x01700303,
-+      0x81C, 0x01720303,
-+      0x81C, 0x01740303,
-+      0x81C, 0x01760303,
-+      0x81C, 0x01780303,
-+      0x81C, 0x017A0303,
-+      0x81C, 0x017C0303,
-+      0x81C, 0x017E0303,
-+      0xA0000000,     0x00000000,
-+      0x81C, 0xFD000303,
-+      0x81C, 0xFC020303,
-+      0x81C, 0xFB040303,
-+      0x81C, 0xFA060303,
-+      0x81C, 0xF9080303,
-+      0x81C, 0xF80A0303,
-+      0x81C, 0xF70C0303,
-+      0x81C, 0xF60E0303,
-+      0x81C, 0xF5100303,
-+      0x81C, 0xF4120303,
-+      0x81C, 0xF3140303,
-+      0x81C, 0xF2160303,
-+      0x81C, 0xF1180303,
-+      0x81C, 0xF01A0303,
-+      0x81C, 0xEF1C0303,
-+      0x81C, 0xEE1E0303,
-+      0x81C, 0xED200303,
-+      0x81C, 0xEC220303,
-+      0x81C, 0xEB240303,
-+      0x81C, 0xEA260303,
-+      0x81C, 0xE9280303,
-+      0x81C, 0xE82A0303,
-+      0x81C, 0xE72C0303,
-+      0x81C, 0xE62E0303,
-+      0x81C, 0xE5300303,
-+      0x81C, 0xE4320303,
-+      0x81C, 0xE3340303,
-+      0x81C, 0xE2360303,
-+      0x81C, 0xE1380303,
-+      0x81C, 0xA53A0303,
-+      0x81C, 0xA43C0303,
-+      0x81C, 0xA33E0303,
-+      0x81C, 0xA2400303,
-+      0x81C, 0xA1420303,
-+      0x81C, 0x87440303,
-+      0x81C, 0x86460303,
-+      0x81C, 0x85480303,
-+      0x81C, 0x844A0303,
-+      0x81C, 0x834C0303,
-+      0x81C, 0x824E0303,
-+      0x81C, 0x81500303,
-+      0x81C, 0x64520303,
-+      0x81C, 0x63540303,
-+      0x81C, 0x62560303,
-+      0x81C, 0x61580303,
-+      0x81C, 0x435A0303,
-+      0x81C, 0x425C0303,
-+      0x81C, 0x415E0303,
-+      0x81C, 0x07600303,
-+      0x81C, 0x06620303,
-+      0x81C, 0x05640303,
-+      0x81C, 0x04660303,
-+      0x81C, 0x03680303,
-+      0x81C, 0x026A0303,
-+      0x81C, 0x016C0303,
-+      0x81C, 0x016E0303,
-+      0x81C, 0x01700303,
-+      0x81C, 0x01720303,
-+      0x81C, 0x01740303,
-+      0x81C, 0x01760303,
-+      0x81C, 0x01780303,
-+      0x81C, 0x017A0303,
-+      0x81C, 0x017C0303,
-+      0x81C, 0x017E0303,
-+      0xB0000000,     0x00000000,
-+      0xC50, 0x00000022,
-+      0xC50, 0x00000020,
-+      0xE50, 0x00000022,
-+      0xE50, 0x00000020,
-+      0x1850, 0x00000022,
-+      0x1850, 0x00000020,
-+      0x1A50, 0x00000022,
-+      0x1A50, 0x00000020,
-+};
-+
-+RTW_DECL_TABLE_PHY_COND(rtw8814a_agc, rtw_phy_cfg_agc);
-+
-+static const u32 rtw8814a_bb[] = {
-+      0x800, 0x9020D010,
-+      0x804, 0x08011280,
-+      0x808, 0x0E0282FF,
-+      0x80C, 0x1000002F,
-+      0x80000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x810, 0x33303265,
-+      0xA0000000,     0x00000000,
-+      0x810, 0x33303265,
-+      0xB0000000,     0x00000000,
-+      0x814, 0x020C3D10,
-+      0x818, 0x04A10385,
-+      0x820, 0x00000000,
-+      0x824, 0x00033E40,
-+      0x828, 0x00000000,
-+      0x82C, 0x73985170,
-+      0x830, 0x79A0EA08,
-+      0x834, 0x042E708A,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x838, 0x86667640,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x838, 0x86667641,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x838, 0x86667641,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x838, 0x86667641,
-+      0xA0000000,     0x00000000,
-+      0x838, 0x86667640,
-+      0xB0000000,     0x00000000,
-+      0x83C, 0x9798B9B9,
-+      0x840, 0x17578F60,
-+      0x844, 0x4BBDFCDE,
-+      0x848, 0x5CD07F8B,
-+      0x84C, 0x6CFBF7B5,
-+      0x850, 0x28834706,
-+      0x854, 0x0001520C,
-+      0x858, 0x4060C000,
-+      0x85C, 0x74210368,
-+      0x860, 0x6929C321,
-+      0x864, 0x79727432,
-+      0x868, 0x8CA7A314,
-+      0x86C, 0x438C2878,
-+      0x870, 0x44444444,
-+      0x874, 0x21612C2E,
-+      0x878, 0x00003152,
-+      0x87C, 0x000FC000,
-+      0x8A0, 0x00000013,
-+      0x8A4, 0x7F7F7F7F,
-+      0x8A8, 0xA202033E,
-+      0x8AC, 0xF40F550A,
-+      0x8B0, 0x00000600,
-+      0x8B4, 0x000FC080,
-+      0x8B8, 0xEC0057FF,
-+      0x8BC, 0x8CA520C3,
-+      0x8C0, 0x3FF00020,
-+      0x8C4, 0x44C00000,
-+      0x80000009,     0x00000000,     0x40000000,     0x00000000,
-+      0x8C8, 0x80025969,
-+      0xA0000000,     0x00000000,
-+      0x8C8, 0x80025167,
-+      0xB0000000,     0x00000000,
-+      0x8CC, 0x08250492,
-+      0x8D0, 0x0000B800,
-+      0x8D4, 0x940008A0,
-+      0x8D8, 0x290B5612,
-+      0x8DC, 0x00000000,
-+      0x8E0, 0x32316407,
-+      0x8E4, 0x4A092925,
-+      0x8E8, 0xFFFFC42C,
-+      0x8EC, 0x99999999,
-+      0x8F0, 0x00009999,
-+      0x8F4, 0x00F80FA1,
-+      0x8F8, 0x400082C0,
-+      0x8FC, 0x00000000,
-+      0x900, 0x00400700,
-+      0x90C, 0x09004000,
-+      0x910, 0x0000FC00,
-+      0x914, 0xD6400404,
-+      0x918, 0x1C1028C0,
-+      0x91C, 0x64B11A1C,
-+      0x920, 0xE0767233,
-+      0x924, 0x055AA500,
-+      0x928, 0x4AB0E4E4,
-+      0x92C, 0xFFFE0000,
-+      0x930, 0xFFFFFFFE,
-+      0x934, 0x001FFFFF,
-+      0x938, 0x00008400,
-+      0x93C, 0x932C0642,
-+      0x940, 0x093E9360,
-+      0x944, 0x08000000,
-+      0x948, 0x04000000,
-+      0x950, 0x02010080,
-+      0x954, 0x86510080,
-+      0x960, 0x00000000,
-+      0x964, 0x00000000,
-+      0x968, 0x00000000,
-+      0x96C, 0x00000000,
-+      0x970, 0x801FFFFF,
-+      0x978, 0x00000000,
-+      0x97C, 0x00000000,
-+      0x980, 0x00000000,
-+      0x984, 0x00000000,
-+      0x988, 0x00000000,
-+      0x98C, 0x03440000,
-+      0x990, 0x27100000,
-+      0x994, 0xFFFF0100,
-+      0x998, 0xFFFFFF5C,
-+      0x99C, 0xFFFFFFFF,
-+      0x9A0, 0x000000FF,
-+      0x9A4, 0x00080080,
-+      0x9A8, 0x0C2F0000,
-+      0x9AC, 0x00560000,
-+      0x9B0, 0x81081008,
-+      0x9B4, 0x00000000,
-+      0x9B8, 0x01081008,
-+      0x9BC, 0x01081008,
-+      0x9D0, 0x00000000,
-+      0x9D4, 0x00000000,
-+      0x9D8, 0x00000000,
-+      0x9DC, 0x00000000,
-+      0x9E4, 0x00000002,
-+      0x9E8, 0x000022D5,
-+      0x9FC, 0xEFFFF7FF,
-+      0xB00, 0xE3100000,
-+      0xB04, 0x0000B000,
-+      0xB0C, 0x31EAA006,
-+      0xB5C, 0x41CFFFFF,
-+      0xC00, 0x00000007,
-+      0xC04, 0x00042020,
-+      0xC08, 0x80410231,
-+      0xC0C, 0x00000000,
-+      0xC10, 0x00000100,
-+      0xC14, 0x01000000,
-+      0xC1C, 0x40000053,
-+      0xC50, 0x00000020,
-+      0xC54, 0x00000000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+      0xC58, 0x3C0A0C14,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0xC58, 0x3C0A0C14,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0xC58, 0x3C0A0C14,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xC58, 0x3C0A0C14,
-+      0xA0000000,     0x00000000,
-+      0xC58, 0x3C020C14,
-+      0xB0000000,     0x00000000,
-+      0xC5C, 0x0D000058,
-+      0xC60, 0x1B800000,
-+      0xC60, 0x0B800001,
-+      0xC60, 0x05800002,
-+      0xC60, 0x07800003,
-+      0xC60, 0x1A800004,
-+      0xC60, 0x0B800005,
-+      0xC60, 0x05800006,
-+      0xC60, 0x0E800007,
-+      0xC60, 0x1A800008,
-+      0xC60, 0x0B800009,
-+      0xC60, 0x1580000A,
-+      0xC60, 0x0880000B,
-+      0xC60, 0x1A80000C,
-+      0xC60, 0x0B80000D,
-+      0xC60, 0x0580000E,
-+      0xC60, 0x0E80000F,
-+      0xC60, 0x1A800010,
-+      0xC60, 0x0B800011,
-+      0xC60, 0x15800012,
-+      0xC60, 0x08800013,
-+      0xC60, 0x1A800014,
-+      0xC60, 0x0B800015,
-+      0xC60, 0x05800016,
-+      0xC60, 0x07800017,
-+      0xC60, 0x1A800018,
-+      0xC60, 0x0B800019,
-+      0xC60, 0x1580001A,
-+      0xC60, 0x0880001B,
-+      0xC60, 0x1B80001C,
-+      0xC60, 0x0B80001D,
-+      0xC60, 0x0580001E,
-+      0xC60, 0x0780001F,
-+      0xC60, 0x1B800020,
-+      0xC60, 0x0B800021,
-+      0xC60, 0x05800022,
-+      0xC60, 0x07800023,
-+      0xC60, 0x1B800024,
-+      0xC60, 0x0B800025,
-+      0xC60, 0x05800026,
-+      0xC60, 0x07800027,
-+      0xC60, 0x1B800028,
-+      0xC60, 0x0B800029,
-+      0xC60, 0x0580002A,
-+      0xC60, 0x0780002B,
-+      0xC60, 0x1B800030,
-+      0xC60, 0x0B800031,
-+      0xC60, 0x05800032,
-+      0xC60, 0x00800033,
-+      0xC60, 0x1B800034,
-+      0xC60, 0x0B800035,
-+      0xC60, 0x05800036,
-+      0xC60, 0x00800037,
-+      0xC60, 0x1B800038,
-+      0xC60, 0x0B800039,
-+      0xC60, 0x0580003A,
-+      0xC60, 0x0E80803B,
-+      0xC94, 0x01000401,
-+      0xC98, 0x00188000,
-+      0xCA0, 0x00002929,
-+      0xCA4, 0x08040201,
-+      0xCA8, 0x80402010,
-+      0xCAC, 0x77777000,
-+      0xCB0, 0x54775477,
-+      0xCB4, 0x54775477,
-+      0xCB8, 0x00500000,
-+      0xCBC, 0x77700000,
-+      0xCC0, 0x00000010,
-+      0xCC8, 0x00000010,
-+      0xE00, 0x00000007,
-+      0xE04, 0x00042020,
-+      0xE08, 0x80410231,
-+      0xE0C, 0x00000000,
-+      0xE10, 0x00000100,
-+      0xE14, 0x01000000,
-+      0xE1C, 0x40000053,
-+      0xE50, 0x00000020,
-+      0xE54, 0x00000000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+      0xE58, 0x3C0A0C14,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0xE58, 0x3C0A0C14,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0xE58, 0x3C0A0C14,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xE58, 0x3C0A0C14,
-+      0xA0000000,     0x00000000,
-+      0xE58, 0x3C020C14,
-+      0xB0000000,     0x00000000,
-+      0xE5C, 0x0D000058,
-+      0xE60, 0x1B800000,
-+      0xE60, 0x0B800001,
-+      0xE60, 0x05800002,
-+      0xE60, 0x07800003,
-+      0xE60, 0x1A800004,
-+      0xE60, 0x0B800005,
-+      0xE60, 0x05800006,
-+      0xE60, 0x0E800007,
-+      0xE60, 0x1A800008,
-+      0xE60, 0x0B800009,
-+      0xE60, 0x1580000A,
-+      0xE60, 0x0880000B,
-+      0xE60, 0x1A80000C,
-+      0xE60, 0x0B80000D,
-+      0xE60, 0x0580000E,
-+      0xE60, 0x0E80000F,
-+      0xE60, 0x1A800010,
-+      0xE60, 0x0B800011,
-+      0xE60, 0x15800012,
-+      0xE60, 0x08800013,
-+      0xE60, 0x1A800014,
-+      0xE60, 0x0B800015,
-+      0xE60, 0x05800016,
-+      0xE60, 0x07800017,
-+      0xE60, 0x1A800018,
-+      0xE60, 0x0B800019,
-+      0xE60, 0x1580001A,
-+      0xE60, 0x0880001B,
-+      0xE60, 0x1B80001C,
-+      0xE60, 0x0B80001D,
-+      0xE60, 0x0580001E,
-+      0xE60, 0x0780001F,
-+      0xE60, 0x1B800020,
-+      0xE60, 0x0B800021,
-+      0xE60, 0x05800022,
-+      0xE60, 0x07800023,
-+      0xE60, 0x1B800024,
-+      0xE60, 0x0B800025,
-+      0xE60, 0x05800026,
-+      0xE60, 0x07800027,
-+      0xE60, 0x1B800028,
-+      0xE60, 0x0B800029,
-+      0xE60, 0x0580002A,
-+      0xE60, 0x0780002B,
-+      0xE60, 0x1B800030,
-+      0xE60, 0x0B800031,
-+      0xE60, 0x05800032,
-+      0xE60, 0x00800033,
-+      0xE60, 0x1B800034,
-+      0xE60, 0x0B800035,
-+      0xE60, 0x05800036,
-+      0xE60, 0x00800037,
-+      0xE60, 0x1B800038,
-+      0xE60, 0x0B800039,
-+      0xE60, 0x0580003A,
-+      0xE60, 0x0E80803B,
-+      0xE94, 0x01000401,
-+      0xE98, 0x00188000,
-+      0xEA0, 0x00002929,
-+      0xEA4, 0x08040201,
-+      0xEA8, 0x80402010,
-+      0xEAC, 0x77777000,
-+      0xEB0, 0x54775477,
-+      0xEB4, 0x54775477,
-+      0xEB8, 0x00500000,
-+      0xEBC, 0x77700000,
-+      0x1800, 0x00000007,
-+      0x1804, 0x00042020,
-+      0x1808, 0x80410231,
-+      0x180C, 0x00000000,
-+      0x1810, 0x00000100,
-+      0x1814, 0x01000000,
-+      0x181C, 0x40000053,
-+      0x1850, 0x00000020,
-+      0x1854, 0x00000000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1858, 0x3C0A0C14,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1858, 0x3C0A0C14,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1858, 0x3C0A0C14,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1858, 0x3C0A0C14,
-+      0xA0000000,     0x00000000,
-+      0x1858, 0x3C020C14,
-+      0xB0000000,     0x00000000,
-+      0x185C, 0x0D000058,
-+      0x1860, 0x1B800000,
-+      0x1860, 0x0B800001,
-+      0x1860, 0x05800002,
-+      0x1860, 0x07800003,
-+      0x1860, 0x1A800004,
-+      0x1860, 0x0B800005,
-+      0x1860, 0x05800006,
-+      0x1860, 0x0E800007,
-+      0x1860, 0x1A800008,
-+      0x1860, 0x0B800009,
-+      0x1860, 0x1580000A,
-+      0x1860, 0x0880000B,
-+      0x1860, 0x1A80000C,
-+      0x1860, 0x0B80000D,
-+      0x1860, 0x0580000E,
-+      0x1860, 0x0E80000F,
-+      0x1860, 0x1A800010,
-+      0x1860, 0x0B800011,
-+      0x1860, 0x15800012,
-+      0x1860, 0x08800013,
-+      0x1860, 0x1A800014,
-+      0x1860, 0x0B800015,
-+      0x1860, 0x05800016,
-+      0x1860, 0x07800017,
-+      0x1860, 0x1A800018,
-+      0x1860, 0x0B800019,
-+      0x1860, 0x1580001A,
-+      0x1860, 0x0880001B,
-+      0x1860, 0x1B80001C,
-+      0x1860, 0x0B80001D,
-+      0x1860, 0x0580001E,
-+      0x1860, 0x0780001F,
-+      0x1860, 0x1B800020,
-+      0x1860, 0x0B800021,
-+      0x1860, 0x05800022,
-+      0x1860, 0x07800023,
-+      0x1860, 0x1B800024,
-+      0x1860, 0x0B800025,
-+      0x1860, 0x05800026,
-+      0x1860, 0x07800027,
-+      0x1860, 0x1B800028,
-+      0x1860, 0x0B800029,
-+      0x1860, 0x0580002A,
-+      0x1860, 0x0780002B,
-+      0x1860, 0x1B800030,
-+      0x1860, 0x0B800031,
-+      0x1860, 0x05800032,
-+      0x1860, 0x00800033,
-+      0x1860, 0x1B800034,
-+      0x1860, 0x0B800035,
-+      0x1860, 0x05800036,
-+      0x1860, 0x00800037,
-+      0x1860, 0x1B800038,
-+      0x1860, 0x0B800039,
-+      0x1860, 0x0580003A,
-+      0x1860, 0x0E80803B,
-+      0x1894, 0x01000401,
-+      0x1898, 0x00188000,
-+      0x18A0, 0x00002929,
-+      0x18A4, 0x08040201,
-+      0x18A8, 0x80402010,
-+      0x18AC, 0x77777000,
-+      0x18B0, 0x54775477,
-+      0x18B4, 0x54775477,
-+      0x18B8, 0x00500000,
-+      0x18BC, 0x77700000,
-+      0x1A00, 0x00000007,
-+      0x1A04, 0x00042020,
-+      0x1A08, 0x80410231,
-+      0x1A0C, 0x00000000,
-+      0x1A10, 0x00000100,
-+      0x1A14, 0x01000000,
-+      0x1A1C, 0x40000053,
-+      0x1A50, 0x00000020,
-+      0x1A54, 0x00000000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1A58, 0x3C0A0C14,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1A58, 0x3C0A0C14,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1A58, 0x3C0A0C14,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1A58, 0x3C0A0C14,
-+      0xA0000000,     0x00000000,
-+      0x1A58, 0x3C020C14,
-+      0xB0000000,     0x00000000,
-+      0x1A5C, 0x0D000058,
-+      0x1A60, 0x1B800000,
-+      0x1A60, 0x0B800001,
-+      0x1A60, 0x05800002,
-+      0x1A60, 0x07800003,
-+      0x1A60, 0x1A800004,
-+      0x1A60, 0x0B800005,
-+      0x1A60, 0x05800006,
-+      0x1A60, 0x0E800007,
-+      0x1A60, 0x1A800008,
-+      0x1A60, 0x0B800009,
-+      0x1A60, 0x1580000A,
-+      0x1A60, 0x0880000B,
-+      0x1A60, 0x1A80000C,
-+      0x1A60, 0x0B80000D,
-+      0x1A60, 0x0580000E,
-+      0x1A60, 0x0E80000F,
-+      0x1A60, 0x1A800010,
-+      0x1A60, 0x0B800011,
-+      0x1A60, 0x15800012,
-+      0x1A60, 0x08800013,
-+      0x1A60, 0x1A800014,
-+      0x1A60, 0x0B800015,
-+      0x1A60, 0x05800016,
-+      0x1A60, 0x07800017,
-+      0x1A60, 0x1A800018,
-+      0x1A60, 0x0B800019,
-+      0x1A60, 0x1580001A,
-+      0x1A60, 0x0880001B,
-+      0x1A60, 0x1B80001C,
-+      0x1A60, 0x0B80001D,
-+      0x1A60, 0x0580001E,
-+      0x1A60, 0x0780001F,
-+      0x1A60, 0x1B800020,
-+      0x1A60, 0x0B800021,
-+      0x1A60, 0x05800022,
-+      0x1A60, 0x07800023,
-+      0x1A60, 0x1B800024,
-+      0x1A60, 0x0B800025,
-+      0x1A60, 0x05800026,
-+      0x1A60, 0x07800027,
-+      0x1A60, 0x1B800028,
-+      0x1A60, 0x0B800029,
-+      0x1A60, 0x0580002A,
-+      0x1A60, 0x0780002B,
-+      0x1A60, 0x1B800030,
-+      0x1A60, 0x0B800031,
-+      0x1A60, 0x05800032,
-+      0x1A60, 0x00800033,
-+      0x1A60, 0x1B800034,
-+      0x1A60, 0x0B800035,
-+      0x1A60, 0x05800036,
-+      0x1A60, 0x00800037,
-+      0x1A60, 0x1B800038,
-+      0x1A60, 0x0B800039,
-+      0x1A60, 0x0580003A,
-+      0x1A60, 0x0E80803B,
-+      0x1A94, 0x01000401,
-+      0x1A98, 0x00188000,
-+      0x1AA0, 0x00002929,
-+      0x1AA4, 0x08040201,
-+      0x1AA8, 0x80402010,
-+      0x1AAC, 0x77777000,
-+      0x1AB0, 0x54775477,
-+      0x1AB4, 0x54775477,
-+      0x1AB8, 0x00500000,
-+      0x1ABC, 0x77700000,
-+      0x1904, 0x00030000,
-+      0x1914, 0x00030000,
-+      0x1984, 0x03000000,
-+      0x1988, 0x00000087,
-+      0x198C, 0x00000007,
-+      0x1990, 0xFFAA5500,
-+      0x1994, 0x00000077,
-+      0x1998, 0x12801000,
-+      0x1998, 0x12801000,
-+      0x1998, 0x12801001,
-+      0x1998, 0x12801002,
-+      0x1998, 0x12801003,
-+      0x1998, 0x12801004,
-+      0x1998, 0x12801005,
-+      0x1998, 0x12801006,
-+      0x1998, 0x12801007,
-+      0x1998, 0x12801008,
-+      0x1998, 0x12801009,
-+      0x1998, 0x1280100A,
-+      0x1998, 0x1280100B,
-+      0x1998, 0x1280100C,
-+      0x1998, 0x1280100D,
-+      0x1998, 0x1280100E,
-+      0x1998, 0x1280100F,
-+      0x1998, 0x12801010,
-+      0x1998, 0x12801011,
-+      0x1998, 0x12801012,
-+      0x1998, 0x12801013,
-+      0x1998, 0x12801014,
-+      0x1998, 0x12801015,
-+      0x1998, 0x12801016,
-+      0x1998, 0x12801017,
-+      0x1998, 0x12801018,
-+      0x1998, 0x12801019,
-+      0x1998, 0x1280101A,
-+      0x1998, 0x1280101B,
-+      0x1998, 0x1280101C,
-+      0x1998, 0x1280101D,
-+      0x1998, 0x1280101E,
-+      0x1998, 0x1280101F,
-+      0x1998, 0x12801020,
-+      0x1998, 0x12801021,
-+      0x1998, 0x12801022,
-+      0x1998, 0x12801023,
-+      0x1998, 0x1280102C,
-+      0x1998, 0x1280102D,
-+      0x1998, 0x1280102E,
-+      0x1998, 0x1280102F,
-+      0x1998, 0x12801030,
-+      0x1998, 0x12801031,
-+      0x1998, 0x12801032,
-+      0x1998, 0x12801033,
-+      0x1998, 0x12801034,
-+      0x1998, 0x12801035,
-+      0x1998, 0x12801036,
-+      0x1998, 0x12801037,
-+      0x1998, 0x12801038,
-+      0x1998, 0x12801039,
-+      0x1998, 0x1280103A,
-+      0x1998, 0x1280103B,
-+      0x1998, 0x1280103C,
-+      0x1998, 0x1280103D,
-+      0x1998, 0x1280103E,
-+      0x1998, 0x1280103F,
-+      0x1998, 0x12801040,
-+      0x1998, 0x12801041,
-+      0x1998, 0x12801042,
-+      0x1998, 0x12801043,
-+      0x1998, 0x12801044,
-+      0x1998, 0x12801045,
-+      0x1998, 0x12801046,
-+      0x1998, 0x12801047,
-+      0x1998, 0x12801048,
-+      0x1998, 0x12801049,
-+      0x1998, 0x12801100,
-+      0x1998, 0x12801101,
-+      0x1998, 0x12801102,
-+      0x1998, 0x12801103,
-+      0x1998, 0x12801104,
-+      0x1998, 0x12801105,
-+      0x1998, 0x12801106,
-+      0x1998, 0x12801107,
-+      0x1998, 0x12801108,
-+      0x1998, 0x12801109,
-+      0x1998, 0x1280110A,
-+      0x1998, 0x1280110B,
-+      0x1998, 0x1280110C,
-+      0x1998, 0x1280110D,
-+      0x1998, 0x1280110E,
-+      0x1998, 0x1280110F,
-+      0x1998, 0x12801110,
-+      0x1998, 0x12801111,
-+      0x1998, 0x12801112,
-+      0x1998, 0x12801113,
-+      0x1998, 0x12801114,
-+      0x1998, 0x12801115,
-+      0x1998, 0x12801116,
-+      0x1998, 0x12801117,
-+      0x1998, 0x12801118,
-+      0x1998, 0x12801119,
-+      0x1998, 0x1280111A,
-+      0x1998, 0x1280111B,
-+      0x1998, 0x1280111C,
-+      0x1998, 0x1280111D,
-+      0x1998, 0x1280111E,
-+      0x1998, 0x1280111F,
-+      0x1998, 0x12801120,
-+      0x1998, 0x12801121,
-+      0x1998, 0x12801122,
-+      0x1998, 0x12801123,
-+      0x1998, 0x1280112C,
-+      0x1998, 0x1280112D,
-+      0x1998, 0x1280112E,
-+      0x1998, 0x1280112F,
-+      0x1998, 0x12801130,
-+      0x1998, 0x12801131,
-+      0x1998, 0x12801132,
-+      0x1998, 0x12801133,
-+      0x1998, 0x12801134,
-+      0x1998, 0x12801135,
-+      0x1998, 0x12801136,
-+      0x1998, 0x12801137,
-+      0x1998, 0x12801138,
-+      0x1998, 0x12801139,
-+      0x1998, 0x1280113A,
-+      0x1998, 0x1280113B,
-+      0x1998, 0x1280113C,
-+      0x1998, 0x1280113D,
-+      0x1998, 0x1280113E,
-+      0x1998, 0x1280113F,
-+      0x1998, 0x12801140,
-+      0x1998, 0x12801141,
-+      0x1998, 0x12801142,
-+      0x1998, 0x12801143,
-+      0x1998, 0x12801144,
-+      0x1998, 0x12801145,
-+      0x1998, 0x12801146,
-+      0x1998, 0x12801147,
-+      0x1998, 0x12801148,
-+      0x1998, 0x12801149,
-+      0x1998, 0x12801200,
-+      0x1998, 0x12801201,
-+      0x1998, 0x12801202,
-+      0x1998, 0x12801203,
-+      0x1998, 0x12801204,
-+      0x1998, 0x12801205,
-+      0x1998, 0x12801206,
-+      0x1998, 0x12801207,
-+      0x1998, 0x12801208,
-+      0x1998, 0x12801209,
-+      0x1998, 0x1280120A,
-+      0x1998, 0x1280120B,
-+      0x1998, 0x1280120C,
-+      0x1998, 0x1280120D,
-+      0x1998, 0x1280120E,
-+      0x1998, 0x1280120F,
-+      0x1998, 0x12801210,
-+      0x1998, 0x12801211,
-+      0x1998, 0x12801212,
-+      0x1998, 0x12801213,
-+      0x1998, 0x12801214,
-+      0x1998, 0x12801215,
-+      0x1998, 0x12801216,
-+      0x1998, 0x12801217,
-+      0x1998, 0x12801218,
-+      0x1998, 0x12801219,
-+      0x1998, 0x1280121A,
-+      0x1998, 0x1280121B,
-+      0x1998, 0x1280121C,
-+      0x1998, 0x1280121D,
-+      0x1998, 0x1280121E,
-+      0x1998, 0x1280121F,
-+      0x1998, 0x12801220,
-+      0x1998, 0x12801221,
-+      0x1998, 0x12801222,
-+      0x1998, 0x12801223,
-+      0x1998, 0x1280122C,
-+      0x1998, 0x1280122D,
-+      0x1998, 0x1280122E,
-+      0x1998, 0x1280122F,
-+      0x1998, 0x12801230,
-+      0x1998, 0x12801231,
-+      0x1998, 0x12801232,
-+      0x1998, 0x12801233,
-+      0x1998, 0x12801234,
-+      0x1998, 0x12801235,
-+      0x1998, 0x12801236,
-+      0x1998, 0x12801237,
-+      0x1998, 0x12801238,
-+      0x1998, 0x12801239,
-+      0x1998, 0x1280123A,
-+      0x1998, 0x1280123B,
-+      0x1998, 0x1280123C,
-+      0x1998, 0x1280123D,
-+      0x1998, 0x1280123E,
-+      0x1998, 0x1280123F,
-+      0x1998, 0x12801240,
-+      0x1998, 0x12801241,
-+      0x1998, 0x12801242,
-+      0x1998, 0x12801243,
-+      0x1998, 0x12801244,
-+      0x1998, 0x12801245,
-+      0x1998, 0x12801246,
-+      0x1998, 0x12801247,
-+      0x1998, 0x12801248,
-+      0x1998, 0x12801249,
-+      0x1998, 0x12801300,
-+      0x1998, 0x12801301,
-+      0x1998, 0x12801302,
-+      0x1998, 0x12801303,
-+      0x1998, 0x12801304,
-+      0x1998, 0x12801305,
-+      0x1998, 0x12801306,
-+      0x1998, 0x12801307,
-+      0x1998, 0x12801308,
-+      0x1998, 0x12801309,
-+      0x1998, 0x1280130A,
-+      0x1998, 0x1280130B,
-+      0x1998, 0x1280130C,
-+      0x1998, 0x1280130D,
-+      0x1998, 0x1280130E,
-+      0x1998, 0x1280130F,
-+      0x1998, 0x12801310,
-+      0x1998, 0x12801311,
-+      0x1998, 0x12801312,
-+      0x1998, 0x12801313,
-+      0x1998, 0x12801314,
-+      0x1998, 0x12801315,
-+      0x1998, 0x12801316,
-+      0x1998, 0x12801317,
-+      0x1998, 0x12801318,
-+      0x1998, 0x12801319,
-+      0x1998, 0x1280131A,
-+      0x1998, 0x1280131B,
-+      0x1998, 0x1280131C,
-+      0x1998, 0x1280131D,
-+      0x1998, 0x1280131E,
-+      0x1998, 0x1280131F,
-+      0x1998, 0x12801320,
-+      0x1998, 0x12801321,
-+      0x1998, 0x12801322,
-+      0x1998, 0x12801323,
-+      0x1998, 0x1280132C,
-+      0x1998, 0x1280132D,
-+      0x1998, 0x1280132E,
-+      0x1998, 0x1280132F,
-+      0x1998, 0x12801330,
-+      0x1998, 0x12801331,
-+      0x1998, 0x12801332,
-+      0x1998, 0x12801333,
-+      0x1998, 0x12801334,
-+      0x1998, 0x12801335,
-+      0x1998, 0x12801336,
-+      0x1998, 0x12801337,
-+      0x1998, 0x12801338,
-+      0x1998, 0x12801339,
-+      0x1998, 0x1280133A,
-+      0x1998, 0x1280133B,
-+      0x1998, 0x1280133C,
-+      0x1998, 0x1280133D,
-+      0x1998, 0x1280133E,
-+      0x1998, 0x1280133F,
-+      0x1998, 0x12801340,
-+      0x1998, 0x12801341,
-+      0x1998, 0x12801342,
-+      0x1998, 0x12801343,
-+      0x1998, 0x12801344,
-+      0x1998, 0x12801345,
-+      0x1998, 0x12801346,
-+      0x1998, 0x12801347,
-+      0x1998, 0x12801348,
-+      0x1998, 0x12801349,
-+      0x19D4, 0x88888888,
-+      0x19D8, 0x00000888,
-+      0xB00, 0xE3100100,
-+      0xB00, 0xE7100100,
-+      0xC60, 0x15808002,
-+      0xC60, 0x01808003,
-+      0xE60, 0x15808002,
-+      0xE60, 0x01808003,
-+      0x1860, 0x15808002,
-+      0x1860, 0x01808003,
-+      0x1A60, 0x15808002,
-+      0x1A60, 0x01808003,
-+      0xB00, 0xE3100100,
-+      0xC5C, 0x0D080058,
-+      0xE5C, 0x0D080058,
-+      0x185C, 0x0D080058,
-+      0x1A5C, 0x0D080058,
-+      0xC5C, 0x0D000058,
-+      0xE5C, 0x0D000058,
-+      0x185C, 0x0D000058,
-+      0x1A5C, 0x0D000058,
-+      0xC60, 0x05808002,
-+      0xC60, 0x0E808003,
-+      0xE60, 0x05808002,
-+      0xE60, 0x0E808003,
-+      0x1860, 0x05808002,
-+      0x1860, 0x0E808003,
-+      0x1A60, 0x05808002,
-+      0x1A60, 0x0E808003,
-+      0xB00, 0xE7100100,
-+      0xB00, 0xE3100100,
-+      0xB00, 0xE3100000,
-+      0x1C38, 0x00000002,
-+      0xA00, 0x00D047C8,
-+      0xA04, 0x46FF800C,
-+      0xA08, 0x8C838300,
-+      0xA0C, 0x2E7E000F,
-+      0xA10, 0x9500BB78,
-+      0xA14, 0x11144028,
-+      0xA18, 0x00881117,
-+      0xA1C, 0x89140F00,
-+      0xA20, 0x1A1B0030,
-+      0xA24, 0x090E1317,
-+      0xA28, 0x00000204,
-+      0xA2C, 0x00900000,
-+      0xA70, 0x101FFF00,
-+      0xA74, 0x00000128,
-+      0xA78, 0x00000900,
-+      0xA7C, 0x225B0606,
-+      0xA80, 0x218075B2,
-+      0xA84, 0x9C1F8C00,
-+      0x1B04, 0xE24628D2,
-+      0x1B10, 0x88010D46,
-+      0x1B14, 0x00000000,
-+      0x1B18, 0x00292903,
-+      0x1B00, 0xF8000000,
-+      0x1B00, 0xF800D000,
-+      0x1B00, 0xF801F000,
-+      0x1B1C, 0xA2123DB2,
-+      0x1B20, 0x07040001,
-+      0x1B24, 0x07060807,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0xA0000000,     0x00000000,
-+      0x1B28, 0xC0060348,
-+      0xB0000000,     0x00000000,
-+      0x1B2C, 0x20000003,
-+      0x1B30, 0x20000000,
-+      0x1B38, 0x20000000,
-+      0x1B3C, 0x20000000,
-+      0x1BD4, 0x00000001,
-+      0x1B94, 0x80000000,
-+      0x1B34, 0x00000000,
-+      0x1B34, 0x00000002,
-+      0x1B34, 0x00000000,
-+      0x1B00, 0xF8000002,
-+      0x1B00, 0xF800D002,
-+      0x1B00, 0xF801F002,
-+      0x1B1C, 0xA2123DB2,
-+      0x1B20, 0x07040001,
-+      0x1B24, 0x07060807,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0xA0000000,     0x00000000,
-+      0x1B28, 0xC0060348,
-+      0xB0000000,     0x00000000,
-+      0x1B2C, 0x20000003,
-+      0x1B30, 0x20000000,
-+      0x1B38, 0x20000000,
-+      0x1B3C, 0x20000000,
-+      0x1BD4, 0x00000001,
-+      0x1B94, 0x80000000,
-+      0x1B34, 0x00000000,
-+      0x1B34, 0x00000002,
-+      0x1B34, 0x00000000,
-+      0x1B00, 0xF8000004,
-+      0x1B00, 0xF800D004,
-+      0x1B00, 0xF801F004,
-+      0x1B1C, 0xA2123DB2,
-+      0x1B20, 0x07040001,
-+      0x1B24, 0x07060807,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0xA0000000,     0x00000000,
-+      0x1B28, 0xC0060348,
-+      0xB0000000,     0x00000000,
-+      0x1B2C, 0x20000003,
-+      0x1B30, 0x20000000,
-+      0x1B38, 0x20000000,
-+      0x1B3C, 0x20000000,
-+      0x1BD4, 0x00000001,
-+      0x1B94, 0x80000000,
-+      0x1B34, 0x00000000,
-+      0x1B34, 0x00000002,
-+      0x1B34, 0x00000000,
-+      0x1B00, 0xF8000006,
-+      0x1B00, 0xF800D006,
-+      0x1B00, 0xF801F006,
-+      0x1B1C, 0xA2123DB2,
-+      0x1B20, 0x07040001,
-+      0x1B24, 0x07060807,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B28, 0xC0060324,
-+      0xA0000000,     0x00000000,
-+      0x1B28, 0xC0060348,
-+      0xB0000000,     0x00000000,
-+      0x1B2C, 0x20000003,
-+      0x1B30, 0x20000000,
-+      0x1B38, 0x20000000,
-+      0x1B3C, 0x20000000,
-+      0x1BD4, 0x00000001,
-+      0x1B94, 0x80000000,
-+      0x1B34, 0x00000000,
-+      0x1B34, 0x00000002,
-+      0x1B34, 0x00000000,
-+      0x1B00, 0xF8000000,
-+      0x1B80, 0x00000007,
-+      0x1B80, 0x09060005,
-+      0x1B80, 0x09060007,
-+      0x1B80, 0x0FFE0015,
-+      0x1B80, 0x0FFE0017,
-+      0x1B80, 0x00240025,
-+      0x1B80, 0x00240027,
-+      0x1B80, 0x00040035,
-+      0x1B80, 0x00040037,
-+      0x1B80, 0x05C00045,
-+      0x1B80, 0x05C00047,
-+      0x1B80, 0x00070055,
-+      0x1B80, 0x00070057,
-+      0x1B80, 0x64000065,
-+      0x1B80, 0x64000067,
-+      0x1B80, 0x00020075,
-+      0x1B80, 0x00020077,
-+      0x1B80, 0x00080085,
-+      0x1B80, 0x00080087,
-+      0x1B80, 0x80000095,
-+      0x1B80, 0x80000097,
-+      0x1B80, 0x090100A5,
-+      0x1B80, 0x090100A7,
-+      0x1B80, 0x0F0200B5,
-+      0x1B80, 0x0F0200B7,
-+      0x1B80, 0x002400C5,
-+      0x1B80, 0x002400C7,
-+      0x1B80, 0x000400D5,
-+      0x1B80, 0x000400D7,
-+      0x1B80, 0x05C000E5,
-+      0x1B80, 0x05C000E7,
-+      0x1B80, 0x000700F5,
-+      0x1B80, 0x000700F7,
-+      0x1B80, 0x64020105,
-+      0x1B80, 0x64020107,
-+      0x1B80, 0x00020115,
-+      0x1B80, 0x00020117,
-+      0x1B80, 0x00040125,
-+      0x1B80, 0x00040127,
-+      0x1B80, 0x4A000135,
-+      0x1B80, 0x4A000137,
-+      0x1B80, 0x4B040145,
-+      0x1B80, 0x4B040147,
-+      0x1B80, 0x85030155,
-+      0x1B80, 0x85030157,
-+      0x1B80, 0x40010165,
-+      0x1B80, 0x40010167,
-+      0x1B80, 0xE0290175,
-+      0x1B80, 0xE0290177,
-+      0x1B80, 0x00040185,
-+      0x1B80, 0x00040187,
-+      0x1B80, 0x4B050195,
-+      0x1B80, 0x4B050197,
-+      0x1B80, 0x860301A5,
-+      0x1B80, 0x860301A7,
-+      0x1B80, 0x400301B5,
-+      0x1B80, 0x400301B7,
-+      0x1B80, 0xE02901C5,
-+      0x1B80, 0xE02901C7,
-+      0x1B80, 0x000401D5,
-+      0x1B80, 0x000401D7,
-+      0x1B80, 0x4B0601E5,
-+      0x1B80, 0x4B0601E7,
-+      0x1B80, 0x870301F5,
-+      0x1B80, 0x870301F7,
-+      0x1B80, 0x40050205,
-+      0x1B80, 0x40050207,
-+      0x1B80, 0xE0290215,
-+      0x1B80, 0xE0290217,
-+      0x1B80, 0x00040225,
-+      0x1B80, 0x00040227,
-+      0x1B80, 0x4B070235,
-+      0x1B80, 0x4B070237,
-+      0x1B80, 0x88030245,
-+      0x1B80, 0x88030247,
-+      0x1B80, 0x40070255,
-+      0x1B80, 0x40070257,
-+      0x1B80, 0xE0290265,
-+      0x1B80, 0xE0290267,
-+      0x1B80, 0x4B000275,
-+      0x1B80, 0x4B000277,
-+      0x1B80, 0x30000285,
-+      0x1B80, 0x30000287,
-+      0x1B80, 0xFE100295,
-+      0x1B80, 0xFE100297,
-+      0x1B80, 0xFF1002A5,
-+      0x1B80, 0xFF1002A7,
-+      0x1B80, 0xE18602B5,
-+      0x1B80, 0xE18602B7,
-+      0x1B80, 0xF00A02C5,
-+      0x1B80, 0xF00A02C7,
-+      0x1B80, 0xF10A02D5,
-+      0x1B80, 0xF10A02D7,
-+      0x1B80, 0xF20A02E5,
-+      0x1B80, 0xF20A02E7,
-+      0x1B80, 0xF30802F5,
-+      0x1B80, 0xF30802F7,
-+      0x1B80, 0xF4070305,
-+      0x1B80, 0xF4070307,
-+      0x1B80, 0xF5060315,
-+      0x1B80, 0xF5060317,
-+      0x1B80, 0xF7060325,
-+      0x1B80, 0xF7060327,
-+      0x1B80, 0xF8050335,
-+      0x1B80, 0xF8050337,
-+      0x1B80, 0xF9040345,
-+      0x1B80, 0xF9040347,
-+      0x1B80, 0x00010355,
-+      0x1B80, 0x00010357,
-+      0x1B80, 0x303B0365,
-+      0x1B80, 0x303B0367,
-+      0x1B80, 0x30500375,
-+      0x1B80, 0x30500377,
-+      0x1B80, 0x305C0385,
-+      0x1B80, 0x305C0387,
-+      0x1B80, 0x31D50395,
-+      0x1B80, 0x31D50397,
-+      0x1B80, 0x31C503A5,
-+      0x1B80, 0x31C503A7,
-+      0x1B80, 0x4D0403B5,
-+      0x1B80, 0x4D0403B7,
-+      0x1B80, 0x2EF003C5,
-+      0x1B80, 0x2EF003C7,
-+      0x1B80, 0x000203D5,
-+      0x1B80, 0x000203D7,
-+      0x1B80, 0x208003E5,
-+      0x1B80, 0x208003E7,
-+      0x1B80, 0x000003F5,
-+      0x1B80, 0x000003F7,
-+      0x1B80, 0x4D000405,
-+      0x1B80, 0x4D000407,
-+      0x1B80, 0x55070415,
-+      0x1B80, 0x55070417,
-+      0x1B80, 0xE1230425,
-+      0x1B80, 0xE1230427,
-+      0x1B80, 0xE1230435,
-+      0x1B80, 0xE1230437,
-+      0x1B80, 0x4D040445,
-+      0x1B80, 0x4D040447,
-+      0x1B80, 0x20800455,
-+      0x1B80, 0x20800457,
-+      0x1B80, 0x84000465,
-+      0x1B80, 0x84000467,
-+      0x1B80, 0x4D000475,
-+      0x1B80, 0x4D000477,
-+      0x1B80, 0x550F0485,
-+      0x1B80, 0x550F0487,
-+      0x1B80, 0xE1230495,
-+      0x1B80, 0xE1230497,
-+      0x1B80, 0x4F0204A5,
-+      0x1B80, 0x4F0204A7,
-+      0x1B80, 0x4E0004B5,
-+      0x1B80, 0x4E0004B7,
-+      0x1B80, 0x530204C5,
-+      0x1B80, 0x530204C7,
-+      0x1B80, 0x520104D5,
-+      0x1B80, 0x520104D7,
-+      0x1B80, 0xE12704E5,
-+      0x1B80, 0xE12704E7,
-+      0x1B80, 0x000104F5,
-+      0x1B80, 0x000104F7,
-+      0x1B80, 0x5C720505,
-+      0x1B80, 0x5C720507,
-+      0x1B80, 0xE1320515,
-+      0x1B80, 0xE1320517,
-+      0x1B80, 0x54E50525,
-+      0x1B80, 0x54E50527,
-+      0x1B80, 0x54BF0535,
-+      0x1B80, 0x54BF0537,
-+      0x1B80, 0x54C50545,
-+      0x1B80, 0x54C50547,
-+      0x1B80, 0x54BE0555,
-+      0x1B80, 0x54BE0557,
-+      0x1B80, 0x54DF0565,
-+      0x1B80, 0x54DF0567,
-+      0x1B80, 0x0BA60575,
-+      0x1B80, 0x0BA60577,
-+      0x1B80, 0xF3130585,
-+      0x1B80, 0xF3130587,
-+      0x1B80, 0xF41E0595,
-+      0x1B80, 0xF41E0597,
-+      0x1B80, 0xF53C05A5,
-+      0x1B80, 0xF53C05A7,
-+      0x1B80, 0x000105B5,
-+      0x1B80, 0x000105B7,
-+      0x1B80, 0x620605C5,
-+      0x1B80, 0x620605C7,
-+      0x1B80, 0x600605D5,
-+      0x1B80, 0x600605D7,
-+      0x1B80, 0xE1A905E5,
-+      0x1B80, 0xE1A905E7,
-+      0x1B80, 0x0C0005F5,
-+      0x1B80, 0x0C0005F7,
-+      0x1B80, 0x5C720605,
-+      0x1B80, 0x5C720607,
-+      0x1B80, 0xE1320615,
-+      0x1B80, 0xE1320617,
-+      0x1B80, 0x5CF10625,
-+      0x1B80, 0x5CF10627,
-+      0x1B80, 0x0C010635,
-+      0x1B80, 0x0C010637,
-+      0x1B80, 0xF2020645,
-+      0x1B80, 0xF2020647,
-+      0x1B80, 0x30D60655,
-+      0x1B80, 0x30D60657,
-+      0x1B80, 0x0AC60665,
-+      0x1B80, 0x0AC60667,
-+      0x1B80, 0xE1B60675,
-+      0x1B80, 0xE1B60677,
-+      0x1B80, 0xE1580685,
-+      0x1B80, 0xE1580687,
-+      0x1B80, 0x54E50695,
-+      0x1B80, 0x54E50697,
-+      0x1B80, 0x000106A5,
-+      0x1B80, 0x000106A7,
-+      0x1B80, 0x560106B5,
-+      0x1B80, 0x560106B7,
-+      0x1B80, 0x5CE206C5,
-+      0x1B80, 0x5CE206C7,
-+      0x1B80, 0x0AE106D5,
-+      0x1B80, 0x0AE106D7,
-+      0x1B80, 0x630C06E5,
-+      0x1B80, 0x630C06E7,
-+      0x1B80, 0xE13F06F5,
-+      0x1B80, 0xE13F06F7,
-+      0x1B80, 0x00270705,
-+      0x1B80, 0x00270707,
-+      0x1B80, 0xE16C0715,
-+      0x1B80, 0xE16C0717,
-+      0x1B80, 0x00020725,
-+      0x1B80, 0x00020727,
-+      0x1B80, 0x002A0735,
-+      0x1B80, 0x002A0737,
-+      0x1B80, 0x07140745,
-+      0x1B80, 0x07140747,
-+      0x1B80, 0x00020755,
-+      0x1B80, 0x00020757,
-+      0x1B80, 0x30C30765,
-+      0x1B80, 0x30C30767,
-+      0x1B80, 0x56010775,
-+      0x1B80, 0x56010777,
-+      0x1B80, 0x5CE20785,
-+      0x1B80, 0x5CE20787,
-+      0x1B80, 0x0AE10795,
-+      0x1B80, 0x0AE10797,
-+      0x1B80, 0x631707A5,
-+      0x1B80, 0x631707A7,
-+      0x1B80, 0xE13F07B5,
-+      0x1B80, 0xE13F07B7,
-+      0x1B80, 0x002507C5,
-+      0x1B80, 0x002507C7,
-+      0x1B80, 0xE16C07D5,
-+      0x1B80, 0xE16C07D7,
-+      0x1B80, 0x000207E5,
-+      0x1B80, 0x000207E7,
-+      0x1B80, 0x630F07F5,
-+      0x1B80, 0x630F07F7,
-+      0x1B80, 0xE13F0805,
-+      0x1B80, 0xE13F0807,
-+      0x1B80, 0x63070815,
-+      0x1B80, 0x63070817,
-+      0x1B80, 0xE13F0825,
-+      0x1B80, 0xE13F0827,
-+      0x1B80, 0x07140835,
-+      0x1B80, 0x07140837,
-+      0x1B80, 0x56000845,
-+      0x1B80, 0x56000847,
-+      0x1B80, 0x5CF20855,
-+      0x1B80, 0x5CF20857,
-+      0x1B80, 0x0AF10865,
-+      0x1B80, 0x0AF10867,
-+      0x1B80, 0x07140875,
-+      0x1B80, 0x07140877,
-+      0x1B80, 0x07140885,
-+      0x1B80, 0x07140887,
-+      0x1B80, 0x630F0895,
-+      0x1B80, 0x630F0897,
-+      0x1B80, 0xE13F08A5,
-+      0x1B80, 0xE13F08A7,
-+      0x1B80, 0x631708B5,
-+      0x1B80, 0x631708B7,
-+      0x1B80, 0xE13F08C5,
-+      0x1B80, 0xE13F08C7,
-+      0x1B80, 0x002508D5,
-+      0x1B80, 0x002508D7,
-+      0x1B80, 0xE16C08E5,
-+      0x1B80, 0xE16C08E7,
-+      0x1B80, 0x000208F5,
-+      0x1B80, 0x000208F7,
-+      0x1B80, 0x30C30905,
-+      0x1B80, 0x30C30907,
-+      0x1B80, 0xE1A90915,
-+      0x1B80, 0xE1A90917,
-+      0x1B80, 0x62060925,
-+      0x1B80, 0x62060927,
-+      0x1B80, 0x60060935,
-+      0x1B80, 0x60060937,
-+      0x1B80, 0xE1160945,
-+      0x1B80, 0xE1160947,
-+      0x1B80, 0x54BE0955,
-+      0x1B80, 0x54BE0957,
-+      0x1B80, 0x56010965,
-+      0x1B80, 0x56010967,
-+      0x1B80, 0x5CE20975,
-+      0x1B80, 0x5CE20977,
-+      0x1B80, 0x0AE10985,
-+      0x1B80, 0x0AE10987,
-+      0x1B80, 0x633A0995,
-+      0x1B80, 0x633A0997,
-+      0x1B80, 0xE13F09A5,
-+      0x1B80, 0xE13F09A7,
-+      0x1B80, 0x633709B5,
-+      0x1B80, 0x633709B7,
-+      0x1B80, 0xE13F09C5,
-+      0x1B80, 0xE13F09C7,
-+      0x1B80, 0x632F09D5,
-+      0x1B80, 0x632F09D7,
-+      0x1B80, 0xE13F09E5,
-+      0x1B80, 0xE13F09E7,
-+      0x1B80, 0x632709F5,
-+      0x1B80, 0x632709F7,
-+      0x1B80, 0xE13F0A05,
-+      0x1B80, 0xE13F0A07,
-+      0x1B80, 0x631F0A15,
-+      0x1B80, 0x631F0A17,
-+      0x1B80, 0xE13F0A25,
-+      0x1B80, 0xE13F0A27,
-+      0x1B80, 0x63170A35,
-+      0x1B80, 0x63170A37,
-+      0x1B80, 0xE13F0A45,
-+      0x1B80, 0xE13F0A47,
-+      0x1B80, 0x630F0A55,
-+      0x1B80, 0x630F0A57,
-+      0x1B80, 0xE13F0A65,
-+      0x1B80, 0xE13F0A67,
-+      0x1B80, 0x63070A75,
-+      0x1B80, 0x63070A77,
-+      0x1B80, 0xE13F0A85,
-+      0x1B80, 0xE13F0A87,
-+      0x1B80, 0xE16C0A95,
-+      0x1B80, 0xE16C0A97,
-+      0x1B80, 0x56000AA5,
-+      0x1B80, 0x56000AA7,
-+      0x1B80, 0x5CF20AB5,
-+      0x1B80, 0x5CF20AB7,
-+      0x1B80, 0x0AF10AC5,
-+      0x1B80, 0x0AF10AC7,
-+      0x1B80, 0xF5040AD5,
-+      0x1B80, 0xF5040AD7,
-+      0x1B80, 0xE13F0AE5,
-+      0x1B80, 0xE13F0AE7,
-+      0x1B80, 0xE16C0AF5,
-+      0x1B80, 0xE16C0AF7,
-+      0x1B80, 0x30B30B05,
-+      0x1B80, 0x30B30B07,
-+      0x1B80, 0x07140B15,
-+      0x1B80, 0x07140B17,
-+      0x1B80, 0x07140B25,
-+      0x1B80, 0x07140B27,
-+      0x1B80, 0x630F0B35,
-+      0x1B80, 0x630F0B37,
-+      0x1B80, 0xE13F0B45,
-+      0x1B80, 0xE13F0B47,
-+      0x1B80, 0x63170B55,
-+      0x1B80, 0x63170B57,
-+      0x1B80, 0xE13F0B65,
-+      0x1B80, 0xE13F0B67,
-+      0x1B80, 0x631F0B75,
-+      0x1B80, 0x631F0B77,
-+      0x1B80, 0xE13F0B85,
-+      0x1B80, 0xE13F0B87,
-+      0x1B80, 0x63270B95,
-+      0x1B80, 0x63270B97,
-+      0x1B80, 0xE13F0BA5,
-+      0x1B80, 0xE13F0BA7,
-+      0x1B80, 0x632F0BB5,
-+      0x1B80, 0x632F0BB7,
-+      0x1B80, 0xE13F0BC5,
-+      0x1B80, 0xE13F0BC7,
-+      0x1B80, 0x63370BD5,
-+      0x1B80, 0x63370BD7,
-+      0x1B80, 0xE13F0BE5,
-+      0x1B80, 0xE13F0BE7,
-+      0x1B80, 0x633A0BF5,
-+      0x1B80, 0x633A0BF7,
-+      0x1B80, 0xE13F0C05,
-+      0x1B80, 0xE13F0C07,
-+      0x1B80, 0xF60B0C15,
-+      0x1B80, 0xF60B0C17,
-+      0x1B80, 0xF7170C25,
-+      0x1B80, 0xF7170C27,
-+      0x1B80, 0x4D300C35,
-+      0x1B80, 0x4D300C37,
-+      0x1B80, 0x57040C45,
-+      0x1B80, 0x57040C47,
-+      0x1B80, 0x57000C55,
-+      0x1B80, 0x57000C57,
-+      0x1B80, 0x96000C65,
-+      0x1B80, 0x96000C67,
-+      0x1B80, 0x57080C75,
-+      0x1B80, 0x57080C77,
-+      0x1B80, 0x57000C85,
-+      0x1B80, 0x57000C87,
-+      0x1B80, 0x95000C95,
-+      0x1B80, 0x95000C97,
-+      0x1B80, 0x4D000CA5,
-+      0x1B80, 0x4D000CA7,
-+      0x1B80, 0x6C070CB5,
-+      0x1B80, 0x6C070CB7,
-+      0x1B80, 0x00010CC5,
-+      0x1B80, 0x00010CC7,
-+      0x1B80, 0x00220CD5,
-+      0x1B80, 0x00220CD7,
-+      0x1B80, 0x06140CE5,
-+      0x1B80, 0x06140CE7,
-+      0x1B80, 0xE16C0CF5,
-+      0x1B80, 0xE16C0CF7,
-+      0x1B80, 0x00020D05,
-+      0x1B80, 0x00020D07,
-+      0x1B80, 0x00250D15,
-+      0x1B80, 0x00250D17,
-+      0x1B80, 0x06140D25,
-+      0x1B80, 0x06140D27,
-+      0x1B80, 0xE16C0D35,
-+      0x1B80, 0xE16C0D37,
-+      0x1B80, 0x00020D45,
-+      0x1B80, 0x00020D47,
-+      0x1B80, 0x00010D55,
-+      0x1B80, 0x00010D57,
-+      0x1B80, 0x00320D65,
-+      0x1B80, 0x00320D67,
-+      0x1B80, 0xE16C0D75,
-+      0x1B80, 0xE16C0D77,
-+      0x1B80, 0x00020D85,
-+      0x1B80, 0x00020D87,
-+      0x1B80, 0xE1860D95,
-+      0x1B80, 0xE1860D97,
-+      0x1B80, 0xE1B60DA5,
-+      0x1B80, 0xE1B60DA7,
-+      0x1B80, 0x5CD10DB5,
-+      0x1B80, 0x5CD10DB7,
-+      0x1B80, 0x673A0DC5,
-+      0x1B80, 0x673A0DC7,
-+      0x1B80, 0xE1230DD5,
-+      0x1B80, 0xE1230DD7,
-+      0x1B80, 0xF80B0DE5,
-+      0x1B80, 0xF80B0DE7,
-+      0x1B80, 0xF9110DF5,
-+      0x1B80, 0xF9110DF7,
-+      0x1B80, 0xE1580E05,
-+      0x1B80, 0xE1580E07,
-+      0x1B80, 0x67370E15,
-+      0x1B80, 0x67370E17,
-+      0x1B80, 0xE1580E25,
-+      0x1B80, 0xE1580E27,
-+      0x1B80, 0x672F0E35,
-+      0x1B80, 0x672F0E37,
-+      0x1B80, 0xE1580E45,
-+      0x1B80, 0xE1580E47,
-+      0x1B80, 0x67270E55,
-+      0x1B80, 0x67270E57,
-+      0x1B80, 0xE1580E65,
-+      0x1B80, 0xE1580E67,
-+      0x1B80, 0x671F0E75,
-+      0x1B80, 0x671F0E77,
-+      0x1B80, 0xE1580E85,
-+      0x1B80, 0xE1580E87,
-+      0x1B80, 0x67170E95,
-+      0x1B80, 0x67170E97,
-+      0x1B80, 0xE1580EA5,
-+      0x1B80, 0xE1580EA7,
-+      0x1B80, 0xF8020EB5,
-+      0x1B80, 0xF8020EB7,
-+      0x1B80, 0x30EE0EC5,
-+      0x1B80, 0x30EE0EC7,
-+      0x1B80, 0xE0D10ED5,
-+      0x1B80, 0xE0D10ED7,
-+      0x1B80, 0x670F0EE5,
-+      0x1B80, 0x670F0EE7,
-+      0x1B80, 0xE1580EF5,
-+      0x1B80, 0xE1580EF7,
-+      0x1B80, 0x67070F05,
-+      0x1B80, 0x67070F07,
-+      0x1B80, 0xE1580F15,
-+      0x1B80, 0xE1580F17,
-+      0x1B80, 0xF9020F25,
-+      0x1B80, 0xF9020F27,
-+      0x1B80, 0x30F50F35,
-+      0x1B80, 0x30F50F37,
-+      0x1B80, 0xE0CD0F45,
-+      0x1B80, 0xE0CD0F47,
-+      0x1B80, 0x06140F55,
-+      0x1B80, 0x06140F57,
-+      0x1B80, 0xE16C0F65,
-+      0x1B80, 0xE16C0F67,
-+      0x1B80, 0x5CF10F75,
-+      0x1B80, 0x5CF10F77,
-+      0x1B80, 0xE1580F85,
-+      0x1B80, 0xE1580F87,
-+      0x1B80, 0x06140F95,
-+      0x1B80, 0x06140F97,
-+      0x1B80, 0xE16C0FA5,
-+      0x1B80, 0xE16C0FA7,
-+      0x1B80, 0xF9020FB5,
-+      0x1B80, 0xF9020FB7,
-+      0x1B80, 0x30FF0FC5,
-+      0x1B80, 0x30FF0FC7,
-+      0x1B80, 0xE0CD0FD5,
-+      0x1B80, 0xE0CD0FD7,
-+      0x1B80, 0x31130FE5,
-+      0x1B80, 0x31130FE7,
-+      0x1B80, 0x670F0FF5,
-+      0x1B80, 0x670F0FF7,
-+      0x1B80, 0xE1581005,
-+      0x1B80, 0xE1581007,
-+      0x1B80, 0x67171015,
-+      0x1B80, 0x67171017,
-+      0x1B80, 0xE1581025,
-+      0x1B80, 0xE1581027,
-+      0x1B80, 0xF8021035,
-+      0x1B80, 0xF8021037,
-+      0x1B80, 0x31071045,
-+      0x1B80, 0x31071047,
-+      0x1B80, 0xE0D11055,
-+      0x1B80, 0xE0D11057,
-+      0x1B80, 0x31131065,
-+      0x1B80, 0x31131067,
-+      0x1B80, 0x670F1075,
-+      0x1B80, 0x670F1077,
-+      0x1B80, 0xE1581085,
-+      0x1B80, 0xE1581087,
-+      0x1B80, 0x671F1095,
-+      0x1B80, 0x671F1097,
-+      0x1B80, 0xE15810A5,
-+      0x1B80, 0xE15810A7,
-+      0x1B80, 0x672710B5,
-+      0x1B80, 0x672710B7,
-+      0x1B80, 0xE15810C5,
-+      0x1B80, 0xE15810C7,
-+      0x1B80, 0x672F10D5,
-+      0x1B80, 0x672F10D7,
-+      0x1B80, 0xE15810E5,
-+      0x1B80, 0xE15810E7,
-+      0x1B80, 0x673710F5,
-+      0x1B80, 0x673710F7,
-+      0x1B80, 0xE1581105,
-+      0x1B80, 0xE1581107,
-+      0x1B80, 0x673A1115,
-+      0x1B80, 0x673A1117,
-+      0x1B80, 0xE1581125,
-+      0x1B80, 0xE1581127,
-+      0x1B80, 0x4D101135,
-+      0x1B80, 0x4D101137,
-+      0x1B80, 0x30C41145,
-+      0x1B80, 0x30C41147,
-+      0x1B80, 0x00011155,
-+      0x1B80, 0x00011157,
-+      0x1B80, 0x6F241165,
-+      0x1B80, 0x6F241167,
-+      0x1B80, 0x6E401175,
-+      0x1B80, 0x6E401177,
-+      0x1B80, 0x6D001185,
-+      0x1B80, 0x6D001187,
-+      0x1B80, 0x55031195,
-+      0x1B80, 0x55031197,
-+      0x1B80, 0x312311A5,
-+      0x1B80, 0x312311A7,
-+      0x1B80, 0x6F1C11B5,
-+      0x1B80, 0x6F1C11B7,
-+      0x1B80, 0x6E4011C5,
-+      0x1B80, 0x6E4011C7,
-+      0x1B80, 0x550B11D5,
-+      0x1B80, 0x550B11D7,
-+      0x1B80, 0x312311E5,
-+      0x1B80, 0x312311E7,
-+      0x1B80, 0x061C11F5,
-+      0x1B80, 0x061C11F7,
-+      0x1B80, 0x54DE1205,
-+      0x1B80, 0x54DE1207,
-+      0x1B80, 0x06DC1215,
-+      0x1B80, 0x06DC1217,
-+      0x1B80, 0x55131225,
-+      0x1B80, 0x55131227,
-+      0x1B80, 0x74011235,
-+      0x1B80, 0x74011237,
-+      0x1B80, 0x74001245,
-+      0x1B80, 0x74001247,
-+      0x1B80, 0x8E001255,
-+      0x1B80, 0x8E001257,
-+      0x1B80, 0x00011265,
-+      0x1B80, 0x00011267,
-+      0x1B80, 0x57021275,
-+      0x1B80, 0x57021277,
-+      0x1B80, 0x57001285,
-+      0x1B80, 0x57001287,
-+      0x1B80, 0x97001295,
-+      0x1B80, 0x97001297,
-+      0x1B80, 0x000112A5,
-+      0x1B80, 0x000112A7,
-+      0x1B80, 0x54BF12B5,
-+      0x1B80, 0x54BF12B7,
-+      0x1B80, 0x54C112C5,
-+      0x1B80, 0x54C112C7,
-+      0x1B80, 0x54A212D5,
-+      0x1B80, 0x54A212D7,
-+      0x1B80, 0x54C012E5,
-+      0x1B80, 0x54C012E7,
-+      0x1B80, 0x54A112F5,
-+      0x1B80, 0x54A112F7,
-+      0x1B80, 0x54DF1305,
-+      0x1B80, 0x54DF1307,
-+      0x1B80, 0x00011315,
-+      0x1B80, 0x00011317,
-+      0x1B80, 0x55001325,
-+      0x1B80, 0x55001327,
-+      0x1B80, 0xE1231335,
-+      0x1B80, 0xE1231337,
-+      0x1B80, 0x54811345,
-+      0x1B80, 0x54811347,
-+      0x1B80, 0xE1231355,
-+      0x1B80, 0xE1231357,
-+      0x1B80, 0x54801365,
-+      0x1B80, 0x54801367,
-+      0x1B80, 0x002A1375,
-+      0x1B80, 0x002A1377,
-+      0x1B80, 0xE12B1385,
-+      0x1B80, 0xE12B1387,
-+      0x1B80, 0xE1231395,
-+      0x1B80, 0xE1231397,
-+      0x1B80, 0x548013A5,
-+      0x1B80, 0x548013A7,
-+      0x1B80, 0xE17213B5,
-+      0x1B80, 0xE17213B7,
-+      0x1B80, 0xBF3013C5,
-+      0x1B80, 0xBF3013C7,
-+      0x1B80, 0x000213D5,
-+      0x1B80, 0x000213D7,
-+      0x1B80, 0x302813E5,
-+      0x1B80, 0x302813E7,
-+      0x1B80, 0x4F7813F5,
-+      0x1B80, 0x4F7813F7,
-+      0x1B80, 0x4E001405,
-+      0x1B80, 0x4E001407,
-+      0x1B80, 0x53871415,
-+      0x1B80, 0x53871417,
-+      0x1B80, 0x52F11425,
-+      0x1B80, 0x52F11427,
-+      0x1B80, 0xE1161435,
-+      0x1B80, 0xE1161437,
-+      0x1B80, 0xE11B1445,
-+      0x1B80, 0xE11B1447,
-+      0x1B80, 0xE11F1455,
-+      0x1B80, 0xE11F1457,
-+      0x1B80, 0xE1271465,
-+      0x1B80, 0xE1271467,
-+      0x1B80, 0x54811475,
-+      0x1B80, 0x54811477,
-+      0x1B80, 0xE1161485,
-+      0x1B80, 0xE1161487,
-+      0x1B80, 0xE11B1495,
-+      0x1B80, 0xE11B1497,
-+      0x1B80, 0xE11F14A5,
-+      0x1B80, 0xE11F14A7,
-+      0x1B80, 0xE12714B5,
-+      0x1B80, 0xE12714B7,
-+      0x1B80, 0x548014C5,
-+      0x1B80, 0x548014C7,
-+      0x1B80, 0x002A14D5,
-+      0x1B80, 0x002A14D7,
-+      0x1B80, 0xE12B14E5,
-+      0x1B80, 0xE12B14E7,
-+      0x1B80, 0xE11614F5,
-+      0x1B80, 0xE11614F7,
-+      0x1B80, 0xE11B1505,
-+      0x1B80, 0xE11B1507,
-+      0x1B80, 0xE11F1515,
-+      0x1B80, 0xE11F1517,
-+      0x1B80, 0xE1271525,
-+      0x1B80, 0xE1271527,
-+      0x1B80, 0x54801535,
-+      0x1B80, 0x54801537,
-+      0x1B80, 0xE1721545,
-+      0x1B80, 0xE1721547,
-+      0x1B80, 0xBF171555,
-+      0x1B80, 0xBF171557,
-+      0x1B80, 0x00021565,
-+      0x1B80, 0x00021567,
-+      0x1B80, 0x30281575,
-+      0x1B80, 0x30281577,
-+      0x1B80, 0x06141585,
-+      0x1B80, 0x06141587,
-+      0x1B80, 0x73201595,
-+      0x1B80, 0x73201597,
-+      0x1B80, 0x720015A5,
-+      0x1B80, 0x720015A7,
-+      0x1B80, 0x710015B5,
-+      0x1B80, 0x710015B7,
-+      0x1B80, 0x550115C5,
-+      0x1B80, 0x550115C7,
-+      0x1B80, 0xE12315D5,
-+      0x1B80, 0xE12315D7,
-+      0x1B80, 0xE12715E5,
-+      0x1B80, 0xE12715E7,
-+      0x1B80, 0x548115F5,
-+      0x1B80, 0x548115F7,
-+      0x1B80, 0xE1231605,
-+      0x1B80, 0xE1231607,
-+      0x1B80, 0xE1271615,
-+      0x1B80, 0xE1271617,
-+      0x1B80, 0x54801625,
-+      0x1B80, 0x54801627,
-+      0x1B80, 0x002A1635,
-+      0x1B80, 0x002A1637,
-+      0x1B80, 0xE12B1645,
-+      0x1B80, 0xE12B1647,
-+      0x1B80, 0xE1231655,
-+      0x1B80, 0xE1231657,
-+      0x1B80, 0xE1271665,
-+      0x1B80, 0xE1271667,
-+      0x1B80, 0x54801675,
-+      0x1B80, 0x54801677,
-+      0x1B80, 0xE1721685,
-+      0x1B80, 0xE1721687,
-+      0x1B80, 0xBF031695,
-+      0x1B80, 0xBF031697,
-+      0x1B80, 0x000216A5,
-+      0x1B80, 0x000216A7,
-+      0x1B80, 0x302816B5,
-+      0x1B80, 0x302816B7,
-+      0x1B80, 0x54BF16C5,
-+      0x1B80, 0x54BF16C7,
-+      0x1B80, 0x54C516D5,
-+      0x1B80, 0x54C516D7,
-+      0x1B80, 0x050A16E5,
-+      0x1B80, 0x050A16E7,
-+      0x1B80, 0x071416F5,
-+      0x1B80, 0x071416F7,
-+      0x1B80, 0x54DF1705,
-+      0x1B80, 0x54DF1707,
-+      0x1B80, 0x00011715,
-+      0x1B80, 0x00011717,
-+      0x1B80, 0x54BF1725,
-+      0x1B80, 0x54BF1727,
-+      0x1B80, 0x54C01735,
-+      0x1B80, 0x54C01737,
-+      0x1B80, 0x54A31745,
-+      0x1B80, 0x54A31747,
-+      0x1B80, 0x54C11755,
-+      0x1B80, 0x54C11757,
-+      0x1B80, 0x54A41765,
-+      0x1B80, 0x54A41767,
-+      0x1B80, 0x4C831775,
-+      0x1B80, 0x4C831777,
-+      0x1B80, 0x4C031785,
-+      0x1B80, 0x4C031787,
-+      0x1B80, 0xBF0B1795,
-+      0x1B80, 0xBF0B1797,
-+      0x1B80, 0x54C217A5,
-+      0x1B80, 0x54C217A7,
-+      0x1B80, 0x54A417B5,
-+      0x1B80, 0x54A417B7,
-+      0x1B80, 0x4C8517C5,
-+      0x1B80, 0x4C8517C7,
-+      0x1B80, 0x4C0517D5,
-+      0x1B80, 0x4C0517D7,
-+      0x1B80, 0xBF0617E5,
-+      0x1B80, 0xBF0617E7,
-+      0x1B80, 0x54C117F5,
-+      0x1B80, 0x54C117F7,
-+      0x1B80, 0x54A31805,
-+      0x1B80, 0x54A31807,
-+      0x1B80, 0x4C861815,
-+      0x1B80, 0x4C861817,
-+      0x1B80, 0x4C061825,
-+      0x1B80, 0x4C061827,
-+      0x1B80, 0xBF011835,
-+      0x1B80, 0xBF011837,
-+      0x1B80, 0x54DF1845,
-+      0x1B80, 0x54DF1847,
-+      0x1B80, 0x00011855,
-+      0x1B80, 0x00011857,
-+      0x1B80, 0x00071865,
-+      0x1B80, 0x00071867,
-+      0x1B80, 0x54011875,
-+      0x1B80, 0x54011877,
-+      0x1B80, 0x00041885,
-+      0x1B80, 0x00041887,
-+      0x1B80, 0x56001895,
-+      0x1B80, 0x56001897,
-+      0x1B80, 0x5CF218A5,
-+      0x1B80, 0x5CF218A7,
-+      0x1B80, 0x630718B5,
-+      0x1B80, 0x630718B7,
-+      0x1B80, 0x620418C5,
-+      0x1B80, 0x620418C7,
-+      0x1B80, 0x610018D5,
-+      0x1B80, 0x610018D7,
-+      0x1B80, 0x670718E5,
-+      0x1B80, 0x670718E7,
-+      0x1B80, 0x660618F5,
-+      0x1B80, 0x660618F7,
-+      0x1B80, 0x6F201905,
-+      0x1B80, 0x6F201907,
-+      0x1B80, 0x6E001915,
-+      0x1B80, 0x6E001917,
-+      0x1B80, 0x6D001925,
-+      0x1B80, 0x6D001927,
-+      0x1B80, 0x6C031935,
-+      0x1B80, 0x6C031937,
-+      0x1B80, 0x73201945,
-+      0x1B80, 0x73201947,
-+      0x1B80, 0x72001955,
-+      0x1B80, 0x72001957,
-+      0x1B80, 0x71001965,
-+      0x1B80, 0x71001967,
-+      0x1B80, 0x7B201975,
-+      0x1B80, 0x7B201977,
-+      0x1B80, 0x7A001985,
-+      0x1B80, 0x7A001987,
-+      0x1B80, 0x79001995,
-+      0x1B80, 0x79001997,
-+      0x1B80, 0x7F2019A5,
-+      0x1B80, 0x7F2019A7,
-+      0x1B80, 0x7E0019B5,
-+      0x1B80, 0x7E0019B7,
-+      0x1B80, 0x7D0019C5,
-+      0x1B80, 0x7D0019C7,
-+      0x1B80, 0x090119D5,
-+      0x1B80, 0x090119D7,
-+      0x1B80, 0x0AC619E5,
-+      0x1B80, 0x0AC619E7,
-+      0x1B80, 0x0BA619F5,
-+      0x1B80, 0x0BA619F7,
-+      0x1B80, 0x0C011A05,
-+      0x1B80, 0x0C011A07,
-+      0x1B80, 0x0D021A15,
-+      0x1B80, 0x0D021A17,
-+      0x1B80, 0x0E041A25,
-+      0x1B80, 0x0E041A27,
-+      0x1B80, 0x0FFF1A35,
-+      0x1B80, 0x0FFF1A37,
-+      0x1B80, 0x4D041A45,
-+      0x1B80, 0x4D041A47,
-+      0x1B80, 0x28F81A55,
-+      0x1B80, 0x28F81A57,
-+      0x1B80, 0xE0001A65,
-+      0x1B80, 0xE0001A67,
-+      0x1B80, 0x4D001A75,
-+      0x1B80, 0x4D001A77,
-+      0x1B80, 0x00011A85,
-+      0x1B80, 0x00011A87,
-+      0x1B80, 0x4D041A95,
-+      0x1B80, 0x4D041A97,
-+      0x1B80, 0x2EF81AA5,
-+      0x1B80, 0x2EF81AA7,
-+      0x1B80, 0x00021AB5,
-+      0x1B80, 0x00021AB7,
-+      0x1B80, 0x23031AC5,
-+      0x1B80, 0x23031AC7,
-+      0x1B80, 0x00001AD5,
-+      0x1B80, 0x00001AD7,
-+      0x1B80, 0x23131AE5,
-+      0x1B80, 0x23131AE7,
-+      0x1B80, 0xE77F1AF5,
-+      0x1B80, 0xE77F1AF7,
-+      0x1B80, 0x232F1B05,
-+      0x1B80, 0x232F1B07,
-+      0x1B80, 0xEFBF1B15,
-+      0x1B80, 0xEFBF1B17,
-+      0x1B80, 0x2EF01B25,
-+      0x1B80, 0x2EF01B27,
-+      0x1B80, 0x00021B35,
-+      0x1B80, 0x00021B37,
-+      0x1B80, 0x4D001B45,
-+      0x1B80, 0x4D001B47,
-+      0x1B80, 0x00011B55,
-+      0x1B80, 0x00011B57,
-+      0x1B80, 0x4D041B65,
-+      0x1B80, 0x4D041B67,
-+      0x1B80, 0x2EF81B75,
-+      0x1B80, 0x2EF81B77,
-+      0x1B80, 0x00021B85,
-+      0x1B80, 0x00021B87,
-+      0x1B80, 0x23031B95,
-+      0x1B80, 0x23031B97,
-+      0x1B80, 0x00001BA5,
-+      0x1B80, 0x00001BA7,
-+      0x1B80, 0x23131BB5,
-+      0x1B80, 0x23131BB7,
-+      0x1B80, 0xE77F1BC5,
-+      0x1B80, 0xE77F1BC7,
-+      0x1B80, 0x232F1BD5,
-+      0x1B80, 0x232F1BD7,
-+      0x1B80, 0xE79F1BE5,
-+      0x1B80, 0xE79F1BE7,
-+      0x1B80, 0x2EF01BF5,
-+      0x1B80, 0x2EF01BF7,
-+      0x1B80, 0x00021C05,
-+      0x1B80, 0x00021C07,
-+      0x1B80, 0x28F81C15,
-+      0x1B80, 0x28F81C17,
-+      0x1B80, 0x80001C25,
-+      0x1B80, 0x80001C27,
-+      0x1B80, 0x4D001C35,
-+      0x1B80, 0x4D001C37,
-+      0x1B80, 0x00011C45,
-+      0x1B80, 0x00011C47,
-+      0x1B80, 0x00041C55,
-+      0x1B80, 0x00041C57,
-+      0x1B80, 0x6BC01C65,
-+      0x1B80, 0x6BC01C67,
-+      0x1B80, 0x4D041C75,
-+      0x1B80, 0x4D041C77,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241C85,
-+      0x1B80, 0x68241C87,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241C85,
-+      0x1B80, 0x68241C87,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241C85,
-+      0x1B80, 0x68241C87,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241C85,
-+      0x1B80, 0x68241C87,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241C85,
-+      0x1B80, 0x68241C87,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241C85,
-+      0x1B80, 0x68241C87,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241C85,
-+      0x1B80, 0x68241C87,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241C85,
-+      0x1B80, 0x68241C87,
-+      0xA0000000,     0x00000000,
-+      0x1B80, 0x68481C85,
-+      0x1B80, 0x68481C87,
-+      0xB0000000,     0x00000000,
-+      0x1B80, 0x66061C95,
-+      0x1B80, 0x66061C97,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x650C1CA5,
-+      0x1B80, 0x650C1CA7,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x650C1CA5,
-+      0x1B80, 0x650C1CA7,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x650C1CA5,
-+      0x1B80, 0x650C1CA7,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x650C1CA5,
-+      0x1B80, 0x650C1CA7,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x650C1CA5,
-+      0x1B80, 0x650C1CA7,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x650C1CA5,
-+      0x1B80, 0x650C1CA7,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x650C1CA5,
-+      0x1B80, 0x650C1CA7,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x650C1CA5,
-+      0x1B80, 0x650C1CA7,
-+      0xA0000000,     0x00000000,
-+      0x1B80, 0x65041CA5,
-+      0x1B80, 0x65041CA7,
-+      0xB0000000,     0x00000000,
-+      0x1B80, 0x64471CB5,
-+      0x1B80, 0x64471CB7,
-+      0x1B80, 0x23411CC5,
-+      0x1B80, 0x23411CC7,
-+      0x1B80, 0x100E1CD5,
-+      0x1B80, 0x100E1CD7,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60101CE5,
-+      0x1B80, 0x60101CE7,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60101CE5,
-+      0x1B80, 0x60101CE7,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60101CE5,
-+      0x1B80, 0x60101CE7,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60101CE5,
-+      0x1B80, 0x60101CE7,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60101CE5,
-+      0x1B80, 0x60101CE7,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60101CE5,
-+      0x1B80, 0x60101CE7,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60101CE5,
-+      0x1B80, 0x60101CE7,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60101CE5,
-+      0x1B80, 0x60101CE7,
-+      0xA0000000,     0x00000000,
-+      0x1B80, 0x60011CE5,
-+      0x1B80, 0x60011CE7,
-+      0xB0000000,     0x00000000,
-+      0x1B80, 0x23411CF5,
-+      0x1B80, 0x23411CF7,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60811D05,
-+      0x1B80, 0x60811D07,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60811D05,
-+      0x1B80, 0x60811D07,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60811D05,
-+      0x1B80, 0x60811D07,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60811D05,
-+      0x1B80, 0x60811D07,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60811D05,
-+      0x1B80, 0x60811D07,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60811D05,
-+      0x1B80, 0x60811D07,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60811D05,
-+      0x1B80, 0x60811D07,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60811D05,
-+      0x1B80, 0x60811D07,
-+      0xA0000000,     0x00000000,
-+      0x1B80, 0x60611D05,
-+      0x1B80, 0x60611D07,
-+      0xB0000000,     0x00000000,
-+      0x1B80, 0x23411D15,
-+      0x1B80, 0x23411D17,
-+      0x1B80, 0x70E11D25,
-+      0x1B80, 0x70E11D27,
-+      0x1B80, 0x4D001D35,
-+      0x1B80, 0x4D001D37,
-+      0x1B80, 0x00011D45,
-+      0x1B80, 0x00011D47,
-+      0x1B80, 0x00041D55,
-+      0x1B80, 0x00041D57,
-+      0x1B80, 0x6B401D65,
-+      0x1B80, 0x6B401D67,
-+      0x1B80, 0x4D041D75,
-+      0x1B80, 0x4D041D77,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241D85,
-+      0x1B80, 0x68241D87,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241D85,
-+      0x1B80, 0x68241D87,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241D85,
-+      0x1B80, 0x68241D87,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241D85,
-+      0x1B80, 0x68241D87,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241D85,
-+      0x1B80, 0x68241D87,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x68241D85,
-+      0x1B80, 0x68241D87,
-+      0xA0000000,     0x00000000,
-+      0x1B80, 0x68481D85,
-+      0x1B80, 0x68481D87,
-+      0xB0000000,     0x00000000,
-+      0x1B80, 0x66061D95,
-+      0x1B80, 0x66061D97,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x65081DA5,
-+      0x1B80, 0x65081DA7,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x65181DA5,
-+      0x1B80, 0x65181DA7,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x65181DA5,
-+      0x1B80, 0x65181DA7,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x65181DA5,
-+      0x1B80, 0x65181DA7,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x65181DA5,
-+      0x1B80, 0x65181DA7,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x65081DA5,
-+      0x1B80, 0x65081DA7,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x65181DA5,
-+      0x1B80, 0x65181DA7,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x65181DA5,
-+      0x1B80, 0x65181DA7,
-+      0xA0000000,     0x00000000,
-+      0x1B80, 0x65081DA5,
-+      0x1B80, 0x65081DA7,
-+      0xB0000000,     0x00000000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x64481DB5,
-+      0x1B80, 0x64481DB7,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x64481DB5,
-+      0x1B80, 0x64481DB7,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x64481DB5,
-+      0x1B80, 0x64481DB7,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x64481DB5,
-+      0x1B80, 0x64481DB7,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x64481DB5,
-+      0x1B80, 0x64481DB7,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x64481DB5,
-+      0x1B80, 0x64481DB7,
-+      0xA0000000,     0x00000000,
-+      0x1B80, 0x64471DB5,
-+      0x1B80, 0x64471DB7,
-+      0xB0000000,     0x00000000,
-+      0x1B80, 0x23411DC5,
-+      0x1B80, 0x23411DC7,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x11E41DD5,
-+      0x1B80, 0x11E41DD7,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x11E81DD5,
-+      0x1B80, 0x11E81DD7,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x11E81DD5,
-+      0x1B80, 0x11E81DD7,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x11E81DD5,
-+      0x1B80, 0x11E81DD7,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x11E81DD5,
-+      0x1B80, 0x11E81DD7,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x11E41DD5,
-+      0x1B80, 0x11E41DD7,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x11E81DD5,
-+      0x1B80, 0x11E81DD7,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x11E81DD5,
-+      0x1B80, 0x11E81DD7,
-+      0xA0000000,     0x00000000,
-+      0x1B80, 0x11E41DD5,
-+      0x1B80, 0x11E41DD7,
-+      0xB0000000,     0x00000000,
-+      0x1B80, 0x60011DE5,
-+      0x1B80, 0x60011DE7,
-+      0x1B80, 0x23411DF5,
-+      0x1B80, 0x23411DF7,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60E11E05,
-+      0x1B80, 0x60E11E07,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x61E11E05,
-+      0x1B80, 0x61E11E07,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x61E11E05,
-+      0x1B80, 0x61E11E07,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x61E11E05,
-+      0x1B80, 0x61E11E07,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x61E11E05,
-+      0x1B80, 0x61E11E07,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x60E11E05,
-+      0x1B80, 0x60E11E07,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x61E11E05,
-+      0x1B80, 0x61E11E07,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0x1B80, 0x61E11E05,
-+      0x1B80, 0x61E11E07,
-+      0xA0000000,     0x00000000,
-+      0x1B80, 0x60E11E05,
-+      0x1B80, 0x60E11E07,
-+      0xB0000000,     0x00000000,
-+      0x1B80, 0x23411E15,
-+      0x1B80, 0x23411E17,
-+      0x1B80, 0x70611E25,
-+      0x1B80, 0x70611E27,
-+      0x1B80, 0x4D001E35,
-+      0x1B80, 0x4D001E37,
-+      0x1B80, 0x00011E45,
-+      0x1B80, 0x00011E47,
-+      0x1B80, 0x00001E55,
-+      0x1B80, 0x00001E57,
-+      0x1B80, 0x00001E65,
-+      0x1B80, 0x00001E67,
-+      0x1B80, 0x00001E75,
-+      0x1B80, 0x00001E77,
-+      0x1B80, 0x00001E85,
-+      0x1B80, 0x00001E87,
-+      0x1B80, 0x00001E95,
-+      0x1B80, 0x00001E97,
-+      0x1B80, 0x00001EA5,
-+      0x1B80, 0x00001EA7,
-+      0x1B80, 0x00001EB5,
-+      0x1B80, 0x00001EB7,
-+      0x1B80, 0x00001EC5,
-+      0x1B80, 0x00001EC7,
-+      0x1B80, 0x00001ED5,
-+      0x1B80, 0x00001ED7,
-+      0x1B80, 0x00001EE5,
-+      0x1B80, 0x00001EE7,
-+      0x1B80, 0x00001EF5,
-+      0x1B80, 0x00001EF7,
-+      0x1B80, 0x00001F05,
-+      0x1B80, 0x00001F07,
-+      0x1B80, 0x00001F15,
-+      0x1B80, 0x00001F17,
-+      0x1B80, 0x00001F25,
-+      0x1B80, 0x00001F27,
-+      0x1B80, 0x00001F35,
-+      0x1B80, 0x00001F37,
-+      0x1B80, 0x00001F45,
-+      0x1B80, 0x00001F47,
-+      0x1B80, 0x00001F55,
-+      0x1B80, 0x00001F57,
-+      0x1B80, 0x00001F65,
-+      0x1B80, 0x00001F67,
-+      0x1B80, 0x00001F75,
-+      0x1B80, 0x00001F77,
-+      0x1B80, 0x00001F85,
-+      0x1B80, 0x00001F87,
-+      0x1B80, 0x00001F95,
-+      0x1B80, 0x00001F97,
-+      0x1B80, 0x00001FA5,
-+      0x1B80, 0x00001FA7,
-+      0x1B80, 0x00001FB5,
-+      0x1B80, 0x00001FB7,
-+      0x1B80, 0x00001FC5,
-+      0x1B80, 0x00001FC7,
-+      0x1B80, 0x00001FD5,
-+      0x1B80, 0x00001FD7,
-+      0x1B80, 0x00001FE5,
-+      0x1B80, 0x00001FE7,
-+      0x1B80, 0x00001FF5,
-+      0x1B80, 0x00001FF7,
-+      0x1B80, 0x00000006,
-+      0x1B80, 0x00000002,
-+};
-+
-+RTW_DECL_TABLE_PHY_COND(rtw8814a_bb, rtw_phy_cfg_bb);
-+
-+static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg[] = {
-+      { 0, 0, 0, 0x00000c20, 0xffffffff, 0x34343434, },
-+      { 0, 0, 0, 0x00000c24, 0xffffffff, 0x34343434, },
-+      { 0, 0, 0, 0x00000c28, 0xffffffff, 0x30323434, },
-+      { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x34343434, },
-+      { 0, 0, 0, 0x00000c30, 0xffffffff, 0x28303234, },
-+      { 0, 0, 1, 0x00000c34, 0xffffffff, 0x32323232, },
-+      { 0, 0, 1, 0x00000c38, 0xffffffff, 0x26283032, },
-+      { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x30303030, },
-+      { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x24262830, },
-+      { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
-+      { 0, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
-+      { 0, 0, 0, 0x00000c44, 0xffffffff, 0x32322426, },
-+      { 0, 0, 1, 0x00000c48, 0xffffffff, 0x30323232, },
-+      { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, },
-+      { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x30303030, },
-+      { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x24262830, },
-+      { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x20222222, },
-+      { 0, 1, 0, 0x00000e20, 0xffffffff, 0x34343434, },
-+      { 0, 1, 0, 0x00000e24, 0xffffffff, 0x34343434, },
-+      { 0, 1, 0, 0x00000e28, 0xffffffff, 0x30323434, },
-+      { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x34343434, },
-+      { 0, 1, 0, 0x00000e30, 0xffffffff, 0x28303234, },
-+      { 0, 1, 1, 0x00000e34, 0xffffffff, 0x32323232, },
-+      { 0, 1, 1, 0x00000e38, 0xffffffff, 0x26283032, },
-+      { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x30303030, },
-+      { 0, 1, 2, 0x00000edc, 0xffffffff, 0x24262830, },
-+      { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
-+      { 0, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
-+      { 0, 1, 0, 0x00000e44, 0xffffffff, 0x32322426, },
-+      { 0, 1, 1, 0x00000e48, 0xffffffff, 0x30323232, },
-+      { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, },
-+      { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x30303030, },
-+      { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x24262830, },
-+      { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x20222222, },
-+      { 0, 2, 0, 0x00001820, 0xffffffff, 0x34343434, },
-+      { 0, 2, 0, 0x00001824, 0xffffffff, 0x34343434, },
-+      { 0, 2, 0, 0x00001828, 0xffffffff, 0x30323434, },
-+      { 0, 2, 0, 0x0000182c, 0xffffffff, 0x34343434, },
-+      { 0, 2, 0, 0x00001830, 0xffffffff, 0x28303234, },
-+      { 0, 2, 1, 0x00001834, 0xffffffff, 0x32323232, },
-+      { 0, 2, 1, 0x00001838, 0xffffffff, 0x26283032, },
-+      { 0, 2, 2, 0x000018d8, 0xffffffff, 0x30303030, },
-+      { 0, 2, 2, 0x000018dc, 0xffffffff, 0x24262830, },
-+      { 0, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
-+      { 0, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
-+      { 0, 2, 0, 0x00001844, 0xffffffff, 0x32322426, },
-+      { 0, 2, 1, 0x00001848, 0xffffffff, 0x30323232, },
-+      { 0, 2, 1, 0x0000184c, 0xffffffff, 0x22242628, },
-+      { 0, 2, 2, 0x000018e0, 0xffffffff, 0x30303030, },
-+      { 0, 2, 2, 0x000018e4, 0xffffffff, 0x24262830, },
-+      { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x20222222, },
-+      { 0, 3, 0, 0x00001a20, 0xffffffff, 0x34343434, },
-+      { 0, 3, 0, 0x00001a24, 0xffffffff, 0x34343434, },
-+      { 0, 3, 0, 0x00001a28, 0xffffffff, 0x30323434, },
-+      { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x34343434, },
-+      { 0, 3, 0, 0x00001a30, 0xffffffff, 0x28303234, },
-+      { 0, 3, 1, 0x00001a34, 0xffffffff, 0x32323232, },
-+      { 0, 3, 1, 0x00001a38, 0xffffffff, 0x26283032, },
-+      { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x30303030, },
-+      { 0, 3, 2, 0x00001adc, 0xffffffff, 0x24262830, },
-+      { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
-+      { 0, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
-+      { 0, 3, 0, 0x00001a44, 0xffffffff, 0x32322426, },
-+      { 0, 3, 1, 0x00001a48, 0xffffffff, 0x30323232, },
-+      { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x22242628, },
-+      { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x30303030, },
-+      { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x24262830, },
-+      { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x20222222, },
-+      { 1, 0, 0, 0x00000c24, 0xffffffff, 0x34343434, },
-+      { 1, 0, 0, 0x00000c28, 0xffffffff, 0x30323434, },
-+      { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x34343434, },
-+      { 1, 0, 0, 0x00000c30, 0xffffffff, 0x28303234, },
-+      { 1, 0, 1, 0x00000c34, 0xffffffff, 0x32323232, },
-+      { 1, 0, 1, 0x00000c38, 0xffffffff, 0x26283032, },
-+      { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x30303030, },
-+      { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x24262830, },
-+      { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
-+      { 1, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
-+      { 1, 0, 0, 0x00000c44, 0xffffffff, 0x32322426, },
-+      { 1, 0, 1, 0x00000c48, 0xffffffff, 0x30323232, },
-+      { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, },
-+      { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x30303030, },
-+      { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x24262830, },
-+      { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x20222222, },
-+      { 1, 1, 0, 0x00000e24, 0xffffffff, 0x34343434, },
-+      { 1, 1, 0, 0x00000e28, 0xffffffff, 0x30323434, },
-+      { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x34343434, },
-+      { 1, 1, 0, 0x00000e30, 0xffffffff, 0x28303234, },
-+      { 1, 1, 1, 0x00000e34, 0xffffffff, 0x32323232, },
-+      { 1, 1, 1, 0x00000e38, 0xffffffff, 0x26283032, },
-+      { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x30303030, },
-+      { 1, 1, 2, 0x00000edc, 0xffffffff, 0x24262830, },
-+      { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
-+      { 1, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
-+      { 1, 1, 0, 0x00000e44, 0xffffffff, 0x32322426, },
-+      { 1, 1, 1, 0x00000e48, 0xffffffff, 0x30323232, },
-+      { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, },
-+      { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x30303030, },
-+      { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x24262830, },
-+      { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x20222222, },
-+      { 1, 2, 0, 0x00001824, 0xffffffff, 0x34343434, },
-+      { 1, 2, 0, 0x00001828, 0xffffffff, 0x30323434, },
-+      { 1, 2, 0, 0x0000182c, 0xffffffff, 0x34343434, },
-+      { 1, 2, 0, 0x00001830, 0xffffffff, 0x28303234, },
-+      { 1, 2, 1, 0x00001834, 0xffffffff, 0x32323232, },
-+      { 1, 2, 1, 0x00001838, 0xffffffff, 0x26283032, },
-+      { 1, 2, 2, 0x000018d8, 0xffffffff, 0x30303030, },
-+      { 1, 2, 2, 0x000018dc, 0xffffffff, 0x24262830, },
-+      { 1, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
-+      { 1, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
-+      { 1, 2, 0, 0x00001844, 0xffffffff, 0x32322426, },
-+      { 1, 2, 1, 0x00001848, 0xffffffff, 0x30323232, },
-+      { 1, 2, 1, 0x0000184c, 0xffffffff, 0x22242628, },
-+      { 1, 2, 2, 0x000018e0, 0xffffffff, 0x30303030, },
-+      { 1, 2, 2, 0x000018e4, 0xffffffff, 0x24262830, },
-+      { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x20222222, },
-+      { 1, 3, 0, 0x00001a24, 0xffffffff, 0x34343434, },
-+      { 1, 3, 0, 0x00001a28, 0xffffffff, 0x30323434, },
-+      { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x34343434, },
-+      { 1, 3, 0, 0x00001a30, 0xffffffff, 0x28303234, },
-+      { 1, 3, 1, 0x00001a34, 0xffffffff, 0x32323232, },
-+      { 1, 3, 1, 0x00001a38, 0xffffffff, 0x26283032, },
-+      { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x30303030, },
-+      { 1, 3, 2, 0x00001adc, 0xffffffff, 0x24262830, },
-+      { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
-+      { 1, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
-+      { 1, 3, 0, 0x00001a44, 0xffffffff, 0x32322426, },
-+      { 1, 3, 1, 0x00001a48, 0xffffffff, 0x30323232, },
-+      { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x22242628, },
-+      { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x30303030, },
-+      { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x24262830, },
-+      { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x20222222, },
-+};
-+
-+RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg);
-+
-+static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type0[] = {
-+      { 0, 0, 0, 0x00000c20, 0xffffffff, 0x32323232, },
-+      { 0, 0, 0, 0x00000c24, 0xffffffff, 0x32323232, },
-+      { 0, 0, 0, 0x00000c28, 0xffffffff, 0x28303232, },
-+      { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x32323232, },
-+      { 0, 0, 0, 0x00000c30, 0xffffffff, 0x26283032, },
-+      { 0, 0, 1, 0x00000c34, 0xffffffff, 0x30303030, },
-+      { 0, 0, 1, 0x00000c38, 0xffffffff, 0x24262830, },
-+      { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x28282828, },
-+      { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x22242628, },
-+      { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x32323232, },
-+      { 0, 0, 0, 0x00000c40, 0xffffffff, 0x26283032, },
-+      { 0, 0, 0, 0x00000c44, 0xffffffff, 0x30302224, },
-+      { 0, 0, 1, 0x00000c48, 0xffffffff, 0x28303030, },
-+      { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x20222426, },
-+      { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x28282828, },
-+      { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x22242628, },
-+      { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x18202020, },
-+      { 0, 1, 0, 0x00000e20, 0xffffffff, 0x32323232, },
-+      { 0, 1, 0, 0x00000e24, 0xffffffff, 0x32323232, },
-+      { 0, 1, 0, 0x00000e28, 0xffffffff, 0x28303232, },
-+      { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x32323232, },
-+      { 0, 1, 0, 0x00000e30, 0xffffffff, 0x26283032, },
-+      { 0, 1, 1, 0x00000e34, 0xffffffff, 0x30303030, },
-+      { 0, 1, 1, 0x00000e38, 0xffffffff, 0x24262830, },
-+      { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x28282828, },
-+      { 0, 1, 2, 0x00000edc, 0xffffffff, 0x22242628, },
-+      { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x32323232, },
-+      { 0, 1, 0, 0x00000e40, 0xffffffff, 0x26283032, },
-+      { 0, 1, 0, 0x00000e44, 0xffffffff, 0x30302224, },
-+      { 0, 1, 1, 0x00000e48, 0xffffffff, 0x28303030, },
-+      { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x20222426, },
-+      { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x28282828, },
-+      { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x22242628, },
-+      { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x18202020, },
-+      { 0, 2, 0, 0x00001820, 0xffffffff, 0x32323232, },
-+      { 0, 2, 0, 0x00001824, 0xffffffff, 0x32323232, },
-+      { 0, 2, 0, 0x00001828, 0xffffffff, 0x28303232, },
-+      { 0, 2, 0, 0x0000182c, 0xffffffff, 0x32323232, },
-+      { 0, 2, 0, 0x00001830, 0xffffffff, 0x26283032, },
-+      { 0, 2, 1, 0x00001834, 0xffffffff, 0x30303030, },
-+      { 0, 2, 1, 0x00001838, 0xffffffff, 0x24262830, },
-+      { 0, 2, 2, 0x000018d8, 0xffffffff, 0x28282828, },
-+      { 0, 2, 2, 0x000018dc, 0xffffffff, 0x22242628, },
-+      { 0, 2, 0, 0x0000183c, 0xffffffff, 0x32323232, },
-+      { 0, 2, 0, 0x00001840, 0xffffffff, 0x26283032, },
-+      { 0, 2, 0, 0x00001844, 0xffffffff, 0x30302224, },
-+      { 0, 2, 1, 0x00001848, 0xffffffff, 0x28303030, },
-+      { 0, 2, 1, 0x0000184c, 0xffffffff, 0x20222426, },
-+      { 0, 2, 2, 0x000018e0, 0xffffffff, 0x28282828, },
-+      { 0, 2, 2, 0x000018e4, 0xffffffff, 0x22242628, },
-+      { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x18202020, },
-+      { 0, 3, 0, 0x00001a20, 0xffffffff, 0x32323232, },
-+      { 0, 3, 0, 0x00001a24, 0xffffffff, 0x32323232, },
-+      { 0, 3, 0, 0x00001a28, 0xffffffff, 0x28303232, },
-+      { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x32323232, },
-+      { 0, 3, 0, 0x00001a30, 0xffffffff, 0x26283032, },
-+      { 0, 3, 1, 0x00001a34, 0xffffffff, 0x30303030, },
-+      { 0, 3, 1, 0x00001a38, 0xffffffff, 0x24262830, },
-+      { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x28282828, },
-+      { 0, 3, 2, 0x00001adc, 0xffffffff, 0x22242628, },
-+      { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x32323232, },
-+      { 0, 3, 0, 0x00001a40, 0xffffffff, 0x26283032, },
-+      { 0, 3, 0, 0x00001a44, 0xffffffff, 0x30302224, },
-+      { 0, 3, 1, 0x00001a48, 0xffffffff, 0x28303030, },
-+      { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x20222426, },
-+      { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x28282828, },
-+      { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x22242628, },
-+      { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x18202020, },
-+      { 1, 0, 0, 0x00000c24, 0xffffffff, 0x32323232, },
-+      { 1, 0, 0, 0x00000c28, 0xffffffff, 0x28303232, },
-+      { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x32323232, },
-+      { 1, 0, 0, 0x00000c30, 0xffffffff, 0x26283032, },
-+      { 1, 0, 1, 0x00000c34, 0xffffffff, 0x30303030, },
-+      { 1, 0, 1, 0x00000c38, 0xffffffff, 0x24262830, },
-+      { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x28282828, },
-+      { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x22242628, },
-+      { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x32323232, },
-+      { 1, 0, 0, 0x00000c40, 0xffffffff, 0x26283032, },
-+      { 1, 0, 0, 0x00000c44, 0xffffffff, 0x30302224, },
-+      { 1, 0, 1, 0x00000c48, 0xffffffff, 0x28303030, },
-+      { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x20222426, },
-+      { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x28282828, },
-+      { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x22242628, },
-+      { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x18202020, },
-+      { 1, 1, 0, 0x00000e24, 0xffffffff, 0x32323232, },
-+      { 1, 1, 0, 0x00000e28, 0xffffffff, 0x28303232, },
-+      { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x32323232, },
-+      { 1, 1, 0, 0x00000e30, 0xffffffff, 0x26283032, },
-+      { 1, 1, 1, 0x00000e34, 0xffffffff, 0x30303030, },
-+      { 1, 1, 1, 0x00000e38, 0xffffffff, 0x24262830, },
-+      { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x28282828, },
-+      { 1, 1, 2, 0x00000edc, 0xffffffff, 0x22242628, },
-+      { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x32323232, },
-+      { 1, 1, 0, 0x00000e40, 0xffffffff, 0x26283032, },
-+      { 1, 1, 0, 0x00000e44, 0xffffffff, 0x30302224, },
-+      { 1, 1, 1, 0x00000e48, 0xffffffff, 0x28303030, },
-+      { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x20222426, },
-+      { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x28282828, },
-+      { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x22242628, },
-+      { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x18202020, },
-+      { 1, 2, 0, 0x00001824, 0xffffffff, 0x32323232, },
-+      { 1, 2, 0, 0x00001828, 0xffffffff, 0x28303232, },
-+      { 1, 2, 0, 0x0000182c, 0xffffffff, 0x32323232, },
-+      { 1, 2, 0, 0x00001830, 0xffffffff, 0x26283032, },
-+      { 1, 2, 1, 0x00001834, 0xffffffff, 0x30303030, },
-+      { 1, 2, 1, 0x00001838, 0xffffffff, 0x24262830, },
-+      { 1, 2, 2, 0x000018d8, 0xffffffff, 0x28282828, },
-+      { 1, 2, 2, 0x000018dc, 0xffffffff, 0x22242628, },
-+      { 1, 2, 0, 0x0000183c, 0xffffffff, 0x32323232, },
-+      { 1, 2, 0, 0x00001840, 0xffffffff, 0x26283032, },
-+      { 1, 2, 0, 0x00001844, 0xffffffff, 0x30302224, },
-+      { 1, 2, 1, 0x00001848, 0xffffffff, 0x28303030, },
-+      { 1, 2, 1, 0x0000184c, 0xffffffff, 0x20222426, },
-+      { 1, 2, 2, 0x000018e0, 0xffffffff, 0x28282828, },
-+      { 1, 2, 2, 0x000018e4, 0xffffffff, 0x22242628, },
-+      { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x18202020, },
-+      { 1, 3, 0, 0x00001a24, 0xffffffff, 0x32323232, },
-+      { 1, 3, 0, 0x00001a28, 0xffffffff, 0x28303232, },
-+      { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x32323232, },
-+      { 1, 3, 0, 0x00001a30, 0xffffffff, 0x26283032, },
-+      { 1, 3, 1, 0x00001a34, 0xffffffff, 0x30303030, },
-+      { 1, 3, 1, 0x00001a38, 0xffffffff, 0x24262830, },
-+      { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x28282828, },
-+      { 1, 3, 2, 0x00001adc, 0xffffffff, 0x22242628, },
-+      { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x32323232, },
-+      { 1, 3, 0, 0x00001a40, 0xffffffff, 0x26283032, },
-+      { 1, 3, 0, 0x00001a44, 0xffffffff, 0x30302224, },
-+      { 1, 3, 1, 0x00001a48, 0xffffffff, 0x28303030, },
-+      { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x20222426, },
-+      { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x28282828, },
-+      { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x22242628, },
-+      { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x18202020, },
-+};
-+
-+RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type0);
-+
-+static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type2[] = {
-+      { 0, 0, 0, 0x00000c20, 0xffffffff, 0x34343434, },
-+      { 0, 0, 0, 0x00000c24, 0xffffffff, 0x34343434, },
-+      { 0, 0, 0, 0x00000c28, 0xffffffff, 0x30323434, },
-+      { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x34343434, },
-+      { 0, 0, 0, 0x00000c30, 0xffffffff, 0x28303234, },
-+      { 0, 0, 1, 0x00000c34, 0xffffffff, 0x32323232, },
-+      { 0, 0, 1, 0x00000c38, 0xffffffff, 0x26283032, },
-+      { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x30303030, },
-+      { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x24262830, },
-+      { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
-+      { 0, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
-+      { 0, 0, 0, 0x00000c44, 0xffffffff, 0x32322426, },
-+      { 0, 0, 1, 0x00000c48, 0xffffffff, 0x30323232, },
-+      { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, },
-+      { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x30303030, },
-+      { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x24262830, },
-+      { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x20222222, },
-+      { 0, 1, 0, 0x00000e20, 0xffffffff, 0x34343434, },
-+      { 0, 1, 0, 0x00000e24, 0xffffffff, 0x34343434, },
-+      { 0, 1, 0, 0x00000e28, 0xffffffff, 0x30323434, },
-+      { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x34343434, },
-+      { 0, 1, 0, 0x00000e30, 0xffffffff, 0x28303234, },
-+      { 0, 1, 1, 0x00000e34, 0xffffffff, 0x32323232, },
-+      { 0, 1, 1, 0x00000e38, 0xffffffff, 0x26283032, },
-+      { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x30303030, },
-+      { 0, 1, 2, 0x00000edc, 0xffffffff, 0x24262830, },
-+      { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
-+      { 0, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
-+      { 0, 1, 0, 0x00000e44, 0xffffffff, 0x32322426, },
-+      { 0, 1, 1, 0x00000e48, 0xffffffff, 0x30323232, },
-+      { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, },
-+      { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x30303030, },
-+      { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x24262830, },
-+      { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x20222222, },
-+      { 0, 2, 0, 0x00001820, 0xffffffff, 0x34343434, },
-+      { 0, 2, 0, 0x00001824, 0xffffffff, 0x34343434, },
-+      { 0, 2, 0, 0x00001828, 0xffffffff, 0x30323434, },
-+      { 0, 2, 0, 0x0000182c, 0xffffffff, 0x34343434, },
-+      { 0, 2, 0, 0x00001830, 0xffffffff, 0x28303234, },
-+      { 0, 2, 1, 0x00001834, 0xffffffff, 0x32323232, },
-+      { 0, 2, 1, 0x00001838, 0xffffffff, 0x26283032, },
-+      { 0, 2, 2, 0x000018d8, 0xffffffff, 0x30303030, },
-+      { 0, 2, 2, 0x000018dc, 0xffffffff, 0x24262830, },
-+      { 0, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
-+      { 0, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
-+      { 0, 2, 0, 0x00001844, 0xffffffff, 0x32322426, },
-+      { 0, 2, 1, 0x00001848, 0xffffffff, 0x30323232, },
-+      { 0, 2, 1, 0x0000184c, 0xffffffff, 0x22242628, },
-+      { 0, 2, 2, 0x000018e0, 0xffffffff, 0x30303030, },
-+      { 0, 2, 2, 0x000018e4, 0xffffffff, 0x24262830, },
-+      { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x20222222, },
-+      { 0, 3, 0, 0x00001a20, 0xffffffff, 0x34343434, },
-+      { 0, 3, 0, 0x00001a24, 0xffffffff, 0x34343434, },
-+      { 0, 3, 0, 0x00001a28, 0xffffffff, 0x30323434, },
-+      { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x34343434, },
-+      { 0, 3, 0, 0x00001a30, 0xffffffff, 0x28303234, },
-+      { 0, 3, 1, 0x00001a34, 0xffffffff, 0x32323232, },
-+      { 0, 3, 1, 0x00001a38, 0xffffffff, 0x26283032, },
-+      { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x30303030, },
-+      { 0, 3, 2, 0x00001adc, 0xffffffff, 0x24262830, },
-+      { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
-+      { 0, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
-+      { 0, 3, 0, 0x00001a44, 0xffffffff, 0x32322426, },
-+      { 0, 3, 1, 0x00001a48, 0xffffffff, 0x30323232, },
-+      { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x22242628, },
-+      { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x30303030, },
-+      { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x24262830, },
-+      { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x20222222, },
-+      { 1, 0, 0, 0x00000c24, 0xffffffff, 0x34343434, },
-+      { 1, 0, 0, 0x00000c28, 0xffffffff, 0x30323434, },
-+      { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x34343434, },
-+      { 1, 0, 0, 0x00000c30, 0xffffffff, 0x28303234, },
-+      { 1, 0, 1, 0x00000c34, 0xffffffff, 0x32323232, },
-+      { 1, 0, 1, 0x00000c38, 0xffffffff, 0x26283032, },
-+      { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x30303030, },
-+      { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x24262830, },
-+      { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
-+      { 1, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
-+      { 1, 0, 0, 0x00000c44, 0xffffffff, 0x32322426, },
-+      { 1, 0, 1, 0x00000c48, 0xffffffff, 0x30323232, },
-+      { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, },
-+      { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x30303030, },
-+      { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x24262830, },
-+      { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x20222222, },
-+      { 1, 1, 0, 0x00000e24, 0xffffffff, 0x34343434, },
-+      { 1, 1, 0, 0x00000e28, 0xffffffff, 0x30323434, },
-+      { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x34343434, },
-+      { 1, 1, 0, 0x00000e30, 0xffffffff, 0x28303234, },
-+      { 1, 1, 1, 0x00000e34, 0xffffffff, 0x32323232, },
-+      { 1, 1, 1, 0x00000e38, 0xffffffff, 0x26283032, },
-+      { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x30303030, },
-+      { 1, 1, 2, 0x00000edc, 0xffffffff, 0x24262830, },
-+      { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
-+      { 1, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
-+      { 1, 1, 0, 0x00000e44, 0xffffffff, 0x32322426, },
-+      { 1, 1, 1, 0x00000e48, 0xffffffff, 0x30323232, },
-+      { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, },
-+      { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x30303030, },
-+      { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x24262830, },
-+      { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x20222222, },
-+      { 1, 2, 0, 0x00001824, 0xffffffff, 0x34343434, },
-+      { 1, 2, 0, 0x00001828, 0xffffffff, 0x30323434, },
-+      { 1, 2, 0, 0x0000182c, 0xffffffff, 0x34343434, },
-+      { 1, 2, 0, 0x00001830, 0xffffffff, 0x28303234, },
-+      { 1, 2, 1, 0x00001834, 0xffffffff, 0x32323232, },
-+      { 1, 2, 1, 0x00001838, 0xffffffff, 0x26283032, },
-+      { 1, 2, 2, 0x000018d8, 0xffffffff, 0x30303030, },
-+      { 1, 2, 2, 0x000018dc, 0xffffffff, 0x24262830, },
-+      { 1, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
-+      { 1, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
-+      { 1, 2, 0, 0x00001844, 0xffffffff, 0x32322426, },
-+      { 1, 2, 1, 0x00001848, 0xffffffff, 0x30323232, },
-+      { 1, 2, 1, 0x0000184c, 0xffffffff, 0x22242628, },
-+      { 1, 2, 2, 0x000018e0, 0xffffffff, 0x30303030, },
-+      { 1, 2, 2, 0x000018e4, 0xffffffff, 0x24262830, },
-+      { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x20222222, },
-+      { 1, 3, 0, 0x00001a24, 0xffffffff, 0x34343434, },
-+      { 1, 3, 0, 0x00001a28, 0xffffffff, 0x30323434, },
-+      { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x34343434, },
-+      { 1, 3, 0, 0x00001a30, 0xffffffff, 0x28303234, },
-+      { 1, 3, 1, 0x00001a34, 0xffffffff, 0x32323232, },
-+      { 1, 3, 1, 0x00001a38, 0xffffffff, 0x26283032, },
-+      { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x30303030, },
-+      { 1, 3, 2, 0x00001adc, 0xffffffff, 0x24262830, },
-+      { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
-+      { 1, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
-+      { 1, 3, 0, 0x00001a44, 0xffffffff, 0x32322426, },
-+      { 1, 3, 1, 0x00001a48, 0xffffffff, 0x30323232, },
-+      { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x22242628, },
-+      { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x30303030, },
-+      { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x24262830, },
-+      { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x20222222, },
-+};
-+
-+RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type2);
-+
-+static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type3[] = {
-+      { 0, 0, 0, 0x00000c20, 0xffffffff, 0x48484848, },
-+      { 0, 0, 0, 0x00000c24, 0xffffffff, 0x46464646, },
-+      { 0, 0, 0, 0x00000c28, 0xffffffff, 0x44464646, },
-+      { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x46464646, },
-+      { 0, 0, 0, 0x00000c30, 0xffffffff, 0x42444646, },
-+      { 0, 0, 1, 0x00000c34, 0xffffffff, 0x46464646, },
-+      { 0, 0, 1, 0x00000c38, 0xffffffff, 0x42444646, },
-+      { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x46464646, },
-+      { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x42444646, },
-+      { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x46464646, },
-+      { 0, 0, 0, 0x00000c40, 0xffffffff, 0x42444646, },
-+      { 0, 0, 0, 0x00000c44, 0xffffffff, 0x46463840, },
-+      { 0, 0, 1, 0x00000c48, 0xffffffff, 0x46464646, },
-+      { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x38404244, },
-+      { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x46464646, },
-+      { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x42444646, },
-+      { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x38383840, },
-+      { 0, 1, 0, 0x00000e20, 0xffffffff, 0x48484848, },
-+      { 0, 1, 0, 0x00000e24, 0xffffffff, 0x46464646, },
-+      { 0, 1, 0, 0x00000e28, 0xffffffff, 0x44464646, },
-+      { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x46464646, },
-+      { 0, 1, 0, 0x00000e30, 0xffffffff, 0x42444646, },
-+      { 0, 1, 1, 0x00000e34, 0xffffffff, 0x46464646, },
-+      { 0, 1, 1, 0x00000e38, 0xffffffff, 0x42444646, },
-+      { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x46464646, },
-+      { 0, 1, 2, 0x00000edc, 0xffffffff, 0x42444646, },
-+      { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x46464646, },
-+      { 0, 1, 0, 0x00000e40, 0xffffffff, 0x42444646, },
-+      { 0, 1, 0, 0x00000e44, 0xffffffff, 0x46463840, },
-+      { 0, 1, 1, 0x00000e48, 0xffffffff, 0x46464646, },
-+      { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x38404244, },
-+      { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x46464646, },
-+      { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x42444646, },
-+      { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x38383840, },
-+      { 0, 2, 0, 0x00001820, 0xffffffff, 0x48484848, },
-+      { 0, 2, 0, 0x00001824, 0xffffffff, 0x46464646, },
-+      { 0, 2, 0, 0x00001828, 0xffffffff, 0x44464646, },
-+      { 0, 2, 0, 0x0000182c, 0xffffffff, 0x46464646, },
-+      { 0, 2, 0, 0x00001830, 0xffffffff, 0x42444646, },
-+      { 0, 2, 1, 0x00001834, 0xffffffff, 0x46464646, },
-+      { 0, 2, 1, 0x00001838, 0xffffffff, 0x42444646, },
-+      { 0, 2, 2, 0x000018d8, 0xffffffff, 0x46464646, },
-+      { 0, 2, 2, 0x000018dc, 0xffffffff, 0x42444646, },
-+      { 0, 2, 0, 0x0000183c, 0xffffffff, 0x46464646, },
-+      { 0, 2, 0, 0x00001840, 0xffffffff, 0x42444646, },
-+      { 0, 2, 0, 0x00001844, 0xffffffff, 0x46463840, },
-+      { 0, 2, 1, 0x00001848, 0xffffffff, 0x46464646, },
-+      { 0, 2, 1, 0x0000184c, 0xffffffff, 0x38404244, },
-+      { 0, 2, 2, 0x000018e0, 0xffffffff, 0x46464646, },
-+      { 0, 2, 2, 0x000018e4, 0xffffffff, 0x42444646, },
-+      { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x38383840, },
-+      { 0, 3, 0, 0x00001a20, 0xffffffff, 0x48484848, },
-+      { 0, 3, 0, 0x00001a24, 0xffffffff, 0x46464646, },
-+      { 0, 3, 0, 0x00001a28, 0xffffffff, 0x44464646, },
-+      { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x46464646, },
-+      { 0, 3, 0, 0x00001a30, 0xffffffff, 0x42444646, },
-+      { 0, 3, 1, 0x00001a34, 0xffffffff, 0x46464646, },
-+      { 0, 3, 1, 0x00001a38, 0xffffffff, 0x42444646, },
-+      { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x46464646, },
-+      { 0, 3, 2, 0x00001adc, 0xffffffff, 0x42444646, },
-+      { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x46464646, },
-+      { 0, 3, 0, 0x00001a40, 0xffffffff, 0x42444646, },
-+      { 0, 3, 0, 0x00001a44, 0xffffffff, 0x46463840, },
-+      { 0, 3, 1, 0x00001a48, 0xffffffff, 0x46464646, },
-+      { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x38404244, },
-+      { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x46464646, },
-+      { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x42444646, },
-+      { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x38383840, },
-+      { 1, 0, 0, 0x00000c24, 0xffffffff, 0x46464646, },
-+      { 1, 0, 0, 0x00000c28, 0xffffffff, 0x44464646, },
-+      { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x46464646, },
-+      { 1, 0, 0, 0x00000c30, 0xffffffff, 0x42444646, },
-+      { 1, 0, 1, 0x00000c34, 0xffffffff, 0x46464646, },
-+      { 1, 0, 1, 0x00000c38, 0xffffffff, 0x42444646, },
-+      { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x46464646, },
-+      { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x42444646, },
-+      { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x46464646, },
-+      { 1, 0, 0, 0x00000c40, 0xffffffff, 0x42444646, },
-+      { 1, 0, 0, 0x00000c44, 0xffffffff, 0x46463840, },
-+      { 1, 0, 1, 0x00000c48, 0xffffffff, 0x46464646, },
-+      { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x38404244, },
-+      { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x46464646, },
-+      { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x42444646, },
-+      { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x38383840, },
-+      { 1, 1, 0, 0x00000e24, 0xffffffff, 0x46464646, },
-+      { 1, 1, 0, 0x00000e28, 0xffffffff, 0x44464646, },
-+      { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x46464646, },
-+      { 1, 1, 0, 0x00000e30, 0xffffffff, 0x42444646, },
-+      { 1, 1, 1, 0x00000e34, 0xffffffff, 0x46464646, },
-+      { 1, 1, 1, 0x00000e38, 0xffffffff, 0x42444646, },
-+      { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x46464646, },
-+      { 1, 1, 2, 0x00000edc, 0xffffffff, 0x42444646, },
-+      { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x46464646, },
-+      { 1, 1, 0, 0x00000e40, 0xffffffff, 0x42444646, },
-+      { 1, 1, 0, 0x00000e44, 0xffffffff, 0x46463840, },
-+      { 1, 1, 1, 0x00000e48, 0xffffffff, 0x46464646, },
-+      { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x38404244, },
-+      { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x46464646, },
-+      { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x42444646, },
-+      { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x38383840, },
-+      { 1, 2, 0, 0x00001824, 0xffffffff, 0x46464646, },
-+      { 1, 2, 0, 0x00001828, 0xffffffff, 0x44464646, },
-+      { 1, 2, 0, 0x0000182c, 0xffffffff, 0x46464646, },
-+      { 1, 2, 0, 0x00001830, 0xffffffff, 0x42444646, },
-+      { 1, 2, 1, 0x00001834, 0xffffffff, 0x46464646, },
-+      { 1, 2, 1, 0x00001838, 0xffffffff, 0x42444646, },
-+      { 1, 2, 2, 0x000018d8, 0xffffffff, 0x46464646, },
-+      { 1, 2, 2, 0x000018dc, 0xffffffff, 0x42444646, },
-+      { 1, 2, 0, 0x0000183c, 0xffffffff, 0x46464646, },
-+      { 1, 2, 0, 0x00001840, 0xffffffff, 0x42444646, },
-+      { 1, 2, 0, 0x00001844, 0xffffffff, 0x46463840, },
-+      { 1, 2, 1, 0x00001848, 0xffffffff, 0x46464646, },
-+      { 1, 2, 1, 0x0000184c, 0xffffffff, 0x38404244, },
-+      { 1, 2, 2, 0x000018e0, 0xffffffff, 0x46464646, },
-+      { 1, 2, 2, 0x000018e4, 0xffffffff, 0x42444646, },
-+      { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x38383840, },
-+      { 1, 3, 0, 0x00001a24, 0xffffffff, 0x46464646, },
-+      { 1, 3, 0, 0x00001a28, 0xffffffff, 0x44464646, },
-+      { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x46464646, },
-+      { 1, 3, 0, 0x00001a30, 0xffffffff, 0x42444646, },
-+      { 1, 3, 1, 0x00001a34, 0xffffffff, 0x46464646, },
-+      { 1, 3, 1, 0x00001a38, 0xffffffff, 0x42444646, },
-+      { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x46464646, },
-+      { 1, 3, 2, 0x00001adc, 0xffffffff, 0x42444646, },
-+      { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x46464646, },
-+      { 1, 3, 0, 0x00001a40, 0xffffffff, 0x42444646, },
-+      { 1, 3, 0, 0x00001a44, 0xffffffff, 0x46463840, },
-+      { 1, 3, 1, 0x00001a48, 0xffffffff, 0x46464646, },
-+      { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x38404244, },
-+      { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x46464646, },
-+      { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x42444646, },
-+      { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x38383840, },
-+};
-+
-+RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type3);
-+
-+static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type4[] = {
-+      { 0, 0, 0, 0x00000c20, 0xffffffff, 0x42424242, },
-+      { 0, 0, 0, 0x00000c24, 0xffffffff, 0x42424242, },
-+      { 0, 0, 0, 0x00000c28, 0xffffffff, 0x36384042, },
-+      { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x42424242, },
-+      { 0, 0, 0, 0x00000c30, 0xffffffff, 0x34363840, },
-+      { 0, 0, 1, 0x00000c34, 0xffffffff, 0x42424242, },
-+      { 0, 0, 1, 0x00000c38, 0xffffffff, 0x34363840, },
-+      { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x42424242, },
-+      { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x34363840, },
-+      { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x42424242, },
-+      { 0, 0, 0, 0x00000c40, 0xffffffff, 0x34363840, },
-+      { 0, 0, 0, 0x00000c44, 0xffffffff, 0x42423032, },
-+      { 0, 0, 1, 0x00000c48, 0xffffffff, 0x38404242, },
-+      { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x30323436, },
-+      { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x42424242, },
-+      { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x34363840, },
-+      { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x30303032, },
-+      { 0, 1, 0, 0x00000e20, 0xffffffff, 0x42424242, },
-+      { 0, 1, 0, 0x00000e24, 0xffffffff, 0x42424242, },
-+      { 0, 1, 0, 0x00000e28, 0xffffffff, 0x36384042, },
-+      { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x42424242, },
-+      { 0, 1, 0, 0x00000e30, 0xffffffff, 0x34363840, },
-+      { 0, 1, 1, 0x00000e34, 0xffffffff, 0x42424242, },
-+      { 0, 1, 1, 0x00000e38, 0xffffffff, 0x34363840, },
-+      { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x42424242, },
-+      { 0, 1, 2, 0x00000edc, 0xffffffff, 0x34363840, },
-+      { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x42424242, },
-+      { 0, 1, 0, 0x00000e40, 0xffffffff, 0x34363840, },
-+      { 0, 1, 0, 0x00000e44, 0xffffffff, 0x42423032, },
-+      { 0, 1, 1, 0x00000e48, 0xffffffff, 0x38404242, },
-+      { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x30323436, },
-+      { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x42424242, },
-+      { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x34363840, },
-+      { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x30303032, },
-+      { 0, 2, 0, 0x00001820, 0xffffffff, 0x42424242, },
-+      { 0, 2, 0, 0x00001824, 0xffffffff, 0x42424242, },
-+      { 0, 2, 0, 0x00001828, 0xffffffff, 0x36384042, },
-+      { 0, 2, 0, 0x0000182c, 0xffffffff, 0x42424242, },
-+      { 0, 2, 0, 0x00001830, 0xffffffff, 0x34363840, },
-+      { 0, 2, 1, 0x00001834, 0xffffffff, 0x42424242, },
-+      { 0, 2, 1, 0x00001838, 0xffffffff, 0x34363840, },
-+      { 0, 2, 2, 0x000018d8, 0xffffffff, 0x42424242, },
-+      { 0, 2, 2, 0x000018dc, 0xffffffff, 0x34363840, },
-+      { 0, 2, 0, 0x0000183c, 0xffffffff, 0x42424242, },
-+      { 0, 2, 0, 0x00001840, 0xffffffff, 0x34363840, },
-+      { 0, 2, 0, 0x00001844, 0xffffffff, 0x42423032, },
-+      { 0, 2, 1, 0x00001848, 0xffffffff, 0x38404242, },
-+      { 0, 2, 1, 0x0000184c, 0xffffffff, 0x30323436, },
-+      { 0, 2, 2, 0x000018e0, 0xffffffff, 0x42424242, },
-+      { 0, 2, 2, 0x000018e4, 0xffffffff, 0x34363840, },
-+      { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x30303032, },
-+      { 0, 3, 0, 0x00001a20, 0xffffffff, 0x42424242, },
-+      { 0, 3, 0, 0x00001a24, 0xffffffff, 0x42424242, },
-+      { 0, 3, 0, 0x00001a28, 0xffffffff, 0x36384042, },
-+      { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x42424242, },
-+      { 0, 3, 0, 0x00001a30, 0xffffffff, 0x34363840, },
-+      { 0, 3, 1, 0x00001a34, 0xffffffff, 0x42424242, },
-+      { 0, 3, 1, 0x00001a38, 0xffffffff, 0x34363840, },
-+      { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x42424242, },
-+      { 0, 3, 2, 0x00001adc, 0xffffffff, 0x34363840, },
-+      { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x42424242, },
-+      { 0, 3, 0, 0x00001a40, 0xffffffff, 0x34363840, },
-+      { 0, 3, 0, 0x00001a44, 0xffffffff, 0x42423032, },
-+      { 0, 3, 1, 0x00001a48, 0xffffffff, 0x38404242, },
-+      { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x30323436, },
-+      { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x42424242, },
-+      { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x34363840, },
-+      { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x30303032, },
-+      { 1, 0, 0, 0x00000c24, 0xffffffff, 0x42424242, },
-+      { 1, 0, 0, 0x00000c28, 0xffffffff, 0x36384042, },
-+      { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x42424242, },
-+      { 1, 0, 0, 0x00000c30, 0xffffffff, 0x34363840, },
-+      { 1, 0, 1, 0x00000c34, 0xffffffff, 0x42424242, },
-+      { 1, 0, 1, 0x00000c38, 0xffffffff, 0x34363840, },
-+      { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x42424242, },
-+      { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x34363840, },
-+      { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x42424242, },
-+      { 1, 0, 0, 0x00000c40, 0xffffffff, 0x34363840, },
-+      { 1, 0, 0, 0x00000c44, 0xffffffff, 0x42423032, },
-+      { 1, 0, 1, 0x00000c48, 0xffffffff, 0x38404242, },
-+      { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x30323436, },
-+      { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x42424242, },
-+      { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x34363840, },
-+      { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x30303032, },
-+      { 1, 1, 0, 0x00000e24, 0xffffffff, 0x42424242, },
-+      { 1, 1, 0, 0x00000e28, 0xffffffff, 0x36384042, },
-+      { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x42424242, },
-+      { 1, 1, 0, 0x00000e30, 0xffffffff, 0x34363840, },
-+      { 1, 1, 1, 0x00000e34, 0xffffffff, 0x42424242, },
-+      { 1, 1, 1, 0x00000e38, 0xffffffff, 0x34363840, },
-+      { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x42424242, },
-+      { 1, 1, 2, 0x00000edc, 0xffffffff, 0x34363840, },
-+      { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x42424242, },
-+      { 1, 1, 0, 0x00000e40, 0xffffffff, 0x34363840, },
-+      { 1, 1, 0, 0x00000e44, 0xffffffff, 0x42423032, },
-+      { 1, 1, 1, 0x00000e48, 0xffffffff, 0x38404242, },
-+      { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x30323436, },
-+      { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x42424242, },
-+      { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x34363840, },
-+      { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x30303032, },
-+      { 1, 2, 0, 0x00001824, 0xffffffff, 0x42424242, },
-+      { 1, 2, 0, 0x00001828, 0xffffffff, 0x36384042, },
-+      { 1, 2, 0, 0x0000182c, 0xffffffff, 0x42424242, },
-+      { 1, 2, 0, 0x00001830, 0xffffffff, 0x34363840, },
-+      { 1, 2, 1, 0x00001834, 0xffffffff, 0x42424242, },
-+      { 1, 2, 1, 0x00001838, 0xffffffff, 0x34363840, },
-+      { 1, 2, 2, 0x000018d8, 0xffffffff, 0x42424242, },
-+      { 1, 2, 2, 0x000018dc, 0xffffffff, 0x34363840, },
-+      { 1, 2, 0, 0x0000183c, 0xffffffff, 0x42424242, },
-+      { 1, 2, 0, 0x00001840, 0xffffffff, 0x34363840, },
-+      { 1, 2, 0, 0x00001844, 0xffffffff, 0x42423032, },
-+      { 1, 2, 1, 0x00001848, 0xffffffff, 0x38404242, },
-+      { 1, 2, 1, 0x0000184c, 0xffffffff, 0x30323436, },
-+      { 1, 2, 2, 0x000018e0, 0xffffffff, 0x42424242, },
-+      { 1, 2, 2, 0x000018e4, 0xffffffff, 0x34363840, },
-+      { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x30303032, },
-+      { 1, 3, 0, 0x00001a24, 0xffffffff, 0x42424242, },
-+      { 1, 3, 0, 0x00001a28, 0xffffffff, 0x36384042, },
-+      { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x42424242, },
-+      { 1, 3, 0, 0x00001a30, 0xffffffff, 0x34363840, },
-+      { 1, 3, 1, 0x00001a34, 0xffffffff, 0x42424242, },
-+      { 1, 3, 1, 0x00001a38, 0xffffffff, 0x34363840, },
-+      { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x42424242, },
-+      { 1, 3, 2, 0x00001adc, 0xffffffff, 0x34363840, },
-+      { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x42424242, },
-+      { 1, 3, 0, 0x00001a40, 0xffffffff, 0x34363840, },
-+      { 1, 3, 0, 0x00001a44, 0xffffffff, 0x42423032, },
-+      { 1, 3, 1, 0x00001a48, 0xffffffff, 0x38404242, },
-+      { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x30323436, },
-+      { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x42424242, },
-+      { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x34363840, },
-+      { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x30303032, },
-+};
-+
-+RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type4);
-+
-+static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type5[] = {
-+      { 0, 0, 0, 0x00000c20, 0xffffffff, 0x48484848, },
-+      { 0, 0, 0, 0x00000c24, 0xffffffff, 0x46464646, },
-+      { 0, 0, 0, 0x00000c28, 0xffffffff, 0x44464646, },
-+      { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x46464646, },
-+      { 0, 0, 0, 0x00000c30, 0xffffffff, 0x42444646, },
-+      { 0, 0, 1, 0x00000c34, 0xffffffff, 0x44444444, },
-+      { 0, 0, 1, 0x00000c38, 0xffffffff, 0x40424444, },
-+      { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x42424242, },
-+      { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x38404242, },
-+      { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x46464646, },
-+      { 0, 0, 0, 0x00000c40, 0xffffffff, 0x42444646, },
-+      { 0, 0, 0, 0x00000c44, 0xffffffff, 0x44444040, },
-+      { 0, 0, 1, 0x00000c48, 0xffffffff, 0x44444444, },
-+      { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x38384042, },
-+      { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x42424242, },
-+      { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x38404242, },
-+      { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x20203636, },
-+      { 0, 1, 0, 0x00000e20, 0xffffffff, 0x48484848, },
-+      { 0, 1, 0, 0x00000e24, 0xffffffff, 0x46464646, },
-+      { 0, 1, 0, 0x00000e28, 0xffffffff, 0x44464646, },
-+      { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x46464646, },
-+      { 0, 1, 0, 0x00000e30, 0xffffffff, 0x42444646, },
-+      { 0, 1, 1, 0x00000e34, 0xffffffff, 0x44444444, },
-+      { 0, 1, 1, 0x00000e38, 0xffffffff, 0x40424444, },
-+      { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x42424242, },
-+      { 0, 1, 2, 0x00000edc, 0xffffffff, 0x38404242, },
-+      { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x46464646, },
-+      { 0, 1, 0, 0x00000e40, 0xffffffff, 0x42444646, },
-+      { 0, 1, 0, 0x00000e44, 0xffffffff, 0x44444040, },
-+      { 0, 1, 1, 0x00000e48, 0xffffffff, 0x44444444, },
-+      { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x38384042, },
-+      { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x42424242, },
-+      { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x38404242, },
-+      { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x20203636, },
-+      { 0, 2, 0, 0x00001820, 0xffffffff, 0x48484848, },
-+      { 0, 2, 0, 0x00001824, 0xffffffff, 0x46464646, },
-+      { 0, 2, 0, 0x00001828, 0xffffffff, 0x44464646, },
-+      { 0, 2, 0, 0x0000182c, 0xffffffff, 0x46464646, },
-+      { 0, 2, 0, 0x00001830, 0xffffffff, 0x42444646, },
-+      { 0, 2, 1, 0x00001834, 0xffffffff, 0x44444444, },
-+      { 0, 2, 1, 0x00001838, 0xffffffff, 0x40424444, },
-+      { 0, 2, 2, 0x000018d8, 0xffffffff, 0x42424242, },
-+      { 0, 2, 2, 0x000018dc, 0xffffffff, 0x38404242, },
-+      { 0, 2, 0, 0x0000183c, 0xffffffff, 0x46464646, },
-+      { 0, 2, 0, 0x00001840, 0xffffffff, 0x42444646, },
-+      { 0, 2, 0, 0x00001844, 0xffffffff, 0x44444040, },
-+      { 0, 2, 1, 0x00001848, 0xffffffff, 0x44444444, },
-+      { 0, 2, 1, 0x0000184c, 0xffffffff, 0x38384042, },
-+      { 0, 2, 2, 0x000018e0, 0xffffffff, 0x42424242, },
-+      { 0, 2, 2, 0x000018e4, 0xffffffff, 0x38404242, },
-+      { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x20203636, },
-+      { 0, 3, 0, 0x00001a20, 0xffffffff, 0x48484848, },
-+      { 0, 3, 0, 0x00001a24, 0xffffffff, 0x46464646, },
-+      { 0, 3, 0, 0x00001a28, 0xffffffff, 0x44464646, },
-+      { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x46464646, },
-+      { 0, 3, 0, 0x00001a30, 0xffffffff, 0x42444646, },
-+      { 0, 3, 1, 0x00001a34, 0xffffffff, 0x44444444, },
-+      { 0, 3, 1, 0x00001a38, 0xffffffff, 0x40424444, },
-+      { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x42424242, },
-+      { 0, 3, 2, 0x00001adc, 0xffffffff, 0x38404242, },
-+      { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x46464646, },
-+      { 0, 3, 0, 0x00001a40, 0xffffffff, 0x42444646, },
-+      { 0, 3, 0, 0x00001a44, 0xffffffff, 0x44444040, },
-+      { 0, 3, 1, 0x00001a48, 0xffffffff, 0x44444444, },
-+      { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x38384042, },
-+      { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x42424242, },
-+      { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x38404242, },
-+      { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x20203636, },
-+      { 1, 0, 0, 0x00000c24, 0xffffffff, 0x46464646, },
-+      { 1, 0, 0, 0x00000c28, 0xffffffff, 0x44464646, },
-+      { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x46464646, },
-+      { 1, 0, 0, 0x00000c30, 0xffffffff, 0x42444646, },
-+      { 1, 0, 1, 0x00000c34, 0xffffffff, 0x44444444, },
-+      { 1, 0, 1, 0x00000c38, 0xffffffff, 0x40424444, },
-+      { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x42424242, },
-+      { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x38404242, },
-+      { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x46464646, },
-+      { 1, 0, 0, 0x00000c40, 0xffffffff, 0x42444646, },
-+      { 1, 0, 0, 0x00000c44, 0xffffffff, 0x44443840, },
-+      { 1, 0, 1, 0x00000c48, 0xffffffff, 0x44444444, },
-+      { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x36384042, },
-+      { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x42424242, },
-+      { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x38404242, },
-+      { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x20203436, },
-+      { 1, 1, 0, 0x00000e24, 0xffffffff, 0x46464646, },
-+      { 1, 1, 0, 0x00000e28, 0xffffffff, 0x44464646, },
-+      { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x46464646, },
-+      { 1, 1, 0, 0x00000e30, 0xffffffff, 0x42444646, },
-+      { 1, 1, 1, 0x00000e34, 0xffffffff, 0x44444444, },
-+      { 1, 1, 1, 0x00000e38, 0xffffffff, 0x40424444, },
-+      { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x42424242, },
-+      { 1, 1, 2, 0x00000edc, 0xffffffff, 0x38404242, },
-+      { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x46464646, },
-+      { 1, 1, 0, 0x00000e40, 0xffffffff, 0x42444646, },
-+      { 1, 1, 0, 0x00000e44, 0xffffffff, 0x44443840, },
-+      { 1, 1, 1, 0x00000e48, 0xffffffff, 0x44444444, },
-+      { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x36384042, },
-+      { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x42424242, },
-+      { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x38404242, },
-+      { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x20203436, },
-+      { 1, 2, 0, 0x00001824, 0xffffffff, 0x46464646, },
-+      { 1, 2, 0, 0x00001828, 0xffffffff, 0x44464646, },
-+      { 1, 2, 0, 0x0000182c, 0xffffffff, 0x46464646, },
-+      { 1, 2, 0, 0x00001830, 0xffffffff, 0x42444646, },
-+      { 1, 2, 1, 0x00001834, 0xffffffff, 0x44444444, },
-+      { 1, 2, 1, 0x00001838, 0xffffffff, 0x40424444, },
-+      { 1, 2, 2, 0x000018d8, 0xffffffff, 0x42424242, },
-+      { 1, 2, 2, 0x000018dc, 0xffffffff, 0x38404242, },
-+      { 1, 2, 0, 0x0000183c, 0xffffffff, 0x46464646, },
-+      { 1, 2, 0, 0x00001840, 0xffffffff, 0x42444646, },
-+      { 1, 2, 0, 0x00001844, 0xffffffff, 0x44443840, },
-+      { 1, 2, 1, 0x00001848, 0xffffffff, 0x44444444, },
-+      { 1, 2, 1, 0x0000184c, 0xffffffff, 0x36384042, },
-+      { 1, 2, 2, 0x000018e0, 0xffffffff, 0x42424242, },
-+      { 1, 2, 2, 0x000018e4, 0xffffffff, 0x38404242, },
-+      { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x20203436, },
-+      { 1, 3, 0, 0x00001a24, 0xffffffff, 0x46464646, },
-+      { 1, 3, 0, 0x00001a28, 0xffffffff, 0x44464646, },
-+      { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x46464646, },
-+      { 1, 3, 0, 0x00001a30, 0xffffffff, 0x42444646, },
-+      { 1, 3, 1, 0x00001a34, 0xffffffff, 0x44444444, },
-+      { 1, 3, 1, 0x00001a38, 0xffffffff, 0x40424444, },
-+      { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x42424242, },
-+      { 1, 3, 2, 0x00001adc, 0xffffffff, 0x38404242, },
-+      { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x46464646, },
-+      { 1, 3, 0, 0x00001a40, 0xffffffff, 0x42444646, },
-+      { 1, 3, 0, 0x00001a44, 0xffffffff, 0x44443840, },
-+      { 1, 3, 1, 0x00001a48, 0xffffffff, 0x44444444, },
-+      { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x36384042, },
-+      { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x42424242, },
-+      { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x38404242, },
-+      { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x20203436, },
-+};
-+
-+RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type5);
-+
-+static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type7[] = {
-+      { 0, 0, 0, 0x00000c20, 0xffffffff, 0x34343434, },
-+      { 0, 0, 0, 0x00000c24, 0xffffffff, 0x34343434, },
-+      { 0, 0, 0, 0x00000c28, 0xffffffff, 0x30323434, },
-+      { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x34343434, },
-+      { 0, 0, 0, 0x00000c30, 0xffffffff, 0x28303234, },
-+      { 0, 0, 1, 0x00000c34, 0xffffffff, 0x34343434, },
-+      { 0, 0, 1, 0x00000c38, 0xffffffff, 0x28303234, },
-+      { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x34343434, },
-+      { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x28303234, },
-+      { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
-+      { 0, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
-+      { 0, 0, 0, 0x00000c44, 0xffffffff, 0x34342426, },
-+      { 0, 0, 1, 0x00000c48, 0xffffffff, 0x32343434, },
-+      { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x24262830, },
-+      { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x34343434, },
-+      { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x28303234, },
-+      { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x24263434, },
-+      { 0, 1, 0, 0x00000e20, 0xffffffff, 0x34343434, },
-+      { 0, 1, 0, 0x00000e24, 0xffffffff, 0x34343434, },
-+      { 0, 1, 0, 0x00000e28, 0xffffffff, 0x30323434, },
-+      { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x34343434, },
-+      { 0, 1, 0, 0x00000e30, 0xffffffff, 0x28303234, },
-+      { 0, 1, 1, 0x00000e34, 0xffffffff, 0x34343434, },
-+      { 0, 1, 1, 0x00000e38, 0xffffffff, 0x28303234, },
-+      { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x34343434, },
-+      { 0, 1, 2, 0x00000edc, 0xffffffff, 0x28303234, },
-+      { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
-+      { 0, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
-+      { 0, 1, 0, 0x00000e44, 0xffffffff, 0x34342426, },
-+      { 0, 1, 1, 0x00000e48, 0xffffffff, 0x32343434, },
-+      { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x24262830, },
-+      { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x34343434, },
-+      { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x28303234, },
-+      { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x24263434, },
-+      { 0, 2, 0, 0x00001820, 0xffffffff, 0x34343434, },
-+      { 0, 2, 0, 0x00001824, 0xffffffff, 0x34343434, },
-+      { 0, 2, 0, 0x00001828, 0xffffffff, 0x30323434, },
-+      { 0, 2, 0, 0x0000182c, 0xffffffff, 0x34343434, },
-+      { 0, 2, 0, 0x00001830, 0xffffffff, 0x28303234, },
-+      { 0, 2, 1, 0x00001834, 0xffffffff, 0x34343434, },
-+      { 0, 2, 1, 0x00001838, 0xffffffff, 0x28303234, },
-+      { 0, 2, 2, 0x000018d8, 0xffffffff, 0x34343434, },
-+      { 0, 2, 2, 0x000018dc, 0xffffffff, 0x28303234, },
-+      { 0, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
-+      { 0, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
-+      { 0, 2, 0, 0x00001844, 0xffffffff, 0x34342426, },
-+      { 0, 2, 1, 0x00001848, 0xffffffff, 0x32343434, },
-+      { 0, 2, 1, 0x0000184c, 0xffffffff, 0x24262830, },
-+      { 0, 2, 2, 0x000018e0, 0xffffffff, 0x34343434, },
-+      { 0, 2, 2, 0x000018e4, 0xffffffff, 0x28303234, },
-+      { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x24263434, },
-+      { 0, 3, 0, 0x00001a20, 0xffffffff, 0x34343434, },
-+      { 0, 3, 0, 0x00001a24, 0xffffffff, 0x34343434, },
-+      { 0, 3, 0, 0x00001a28, 0xffffffff, 0x30323434, },
-+      { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x34343434, },
-+      { 0, 3, 0, 0x00001a30, 0xffffffff, 0x28303234, },
-+      { 0, 3, 1, 0x00001a34, 0xffffffff, 0x34343434, },
-+      { 0, 3, 1, 0x00001a38, 0xffffffff, 0x28303234, },
-+      { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x34343434, },
-+      { 0, 3, 2, 0x00001adc, 0xffffffff, 0x28303234, },
-+      { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
-+      { 0, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
-+      { 0, 3, 0, 0x00001a44, 0xffffffff, 0x34342426, },
-+      { 0, 3, 1, 0x00001a48, 0xffffffff, 0x32343434, },
-+      { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x24262830, },
-+      { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x34343434, },
-+      { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x28303234, },
-+      { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x24263434, },
-+      { 1, 0, 0, 0x00000c24, 0xffffffff, 0x34343434, },
-+      { 1, 0, 0, 0x00000c28, 0xffffffff, 0x30323434, },
-+      { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x34343434, },
-+      { 1, 0, 0, 0x00000c30, 0xffffffff, 0x28303234, },
-+      { 1, 0, 1, 0x00000c34, 0xffffffff, 0x34343434, },
-+      { 1, 0, 1, 0x00000c38, 0xffffffff, 0x28303234, },
-+      { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x34343434, },
-+      { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x28303234, },
-+      { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
-+      { 1, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
-+      { 1, 0, 0, 0x00000c44, 0xffffffff, 0x34342426, },
-+      { 1, 0, 1, 0x00000c48, 0xffffffff, 0x32343434, },
-+      { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x24262830, },
-+      { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x34343434, },
-+      { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x28303234, },
-+      { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x24263434, },
-+      { 1, 1, 0, 0x00000e24, 0xffffffff, 0x34343434, },
-+      { 1, 1, 0, 0x00000e28, 0xffffffff, 0x30323434, },
-+      { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x34343434, },
-+      { 1, 1, 0, 0x00000e30, 0xffffffff, 0x28303234, },
-+      { 1, 1, 1, 0x00000e34, 0xffffffff, 0x34343434, },
-+      { 1, 1, 1, 0x00000e38, 0xffffffff, 0x28303234, },
-+      { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x34343434, },
-+      { 1, 1, 2, 0x00000edc, 0xffffffff, 0x28303234, },
-+      { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
-+      { 1, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
-+      { 1, 1, 0, 0x00000e44, 0xffffffff, 0x34342426, },
-+      { 1, 1, 1, 0x00000e48, 0xffffffff, 0x32343434, },
-+      { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x24262830, },
-+      { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x34343434, },
-+      { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x28303234, },
-+      { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x24263434, },
-+      { 1, 2, 0, 0x00001824, 0xffffffff, 0x34343434, },
-+      { 1, 2, 0, 0x00001828, 0xffffffff, 0x30323434, },
-+      { 1, 2, 0, 0x0000182c, 0xffffffff, 0x34343434, },
-+      { 1, 2, 0, 0x00001830, 0xffffffff, 0x28303234, },
-+      { 1, 2, 1, 0x00001834, 0xffffffff, 0x34343434, },
-+      { 1, 2, 1, 0x00001838, 0xffffffff, 0x28303234, },
-+      { 1, 2, 2, 0x000018d8, 0xffffffff, 0x34343434, },
-+      { 1, 2, 2, 0x000018dc, 0xffffffff, 0x28303234, },
-+      { 1, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
-+      { 1, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
-+      { 1, 2, 0, 0x00001844, 0xffffffff, 0x34342426, },
-+      { 1, 2, 1, 0x00001848, 0xffffffff, 0x32343434, },
-+      { 1, 2, 1, 0x0000184c, 0xffffffff, 0x24262830, },
-+      { 1, 2, 2, 0x000018e0, 0xffffffff, 0x34343434, },
-+      { 1, 2, 2, 0x000018e4, 0xffffffff, 0x28303234, },
-+      { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x24263434, },
-+      { 1, 3, 0, 0x00001a24, 0xffffffff, 0x34343434, },
-+      { 1, 3, 0, 0x00001a28, 0xffffffff, 0x30323434, },
-+      { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x34343434, },
-+      { 1, 3, 0, 0x00001a30, 0xffffffff, 0x28303234, },
-+      { 1, 3, 1, 0x00001a34, 0xffffffff, 0x34343434, },
-+      { 1, 3, 1, 0x00001a38, 0xffffffff, 0x28303234, },
-+      { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x34343434, },
-+      { 1, 3, 2, 0x00001adc, 0xffffffff, 0x28303234, },
-+      { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
-+      { 1, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
-+      { 1, 3, 0, 0x00001a44, 0xffffffff, 0x34342426, },
-+      { 1, 3, 1, 0x00001a48, 0xffffffff, 0x32343434, },
-+      { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x24262830, },
-+      { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x34343434, },
-+      { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x28303234, },
-+      { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x24263434, },
-+};
-+
-+RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type7);
-+
-+static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type8[] = {
-+      { 0, 0, 0, 0x00000c20, 0xffffffff, 0x43434343, },
-+      { 0, 0, 0, 0x00000c24, 0xffffffff, 0x43434343, },
-+      { 0, 0, 0, 0x00000c28, 0xffffffff, 0x35373941, },
-+      { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x43434343, },
-+      { 0, 0, 0, 0x00000c30, 0xffffffff, 0x33353739, },
-+      { 0, 0, 1, 0x00000c34, 0xffffffff, 0x43434343, },
-+      { 0, 0, 1, 0x00000c38, 0xffffffff, 0x31333537, },
-+      { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x43434343, },
-+      { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x29313335, },
-+      { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
-+      { 0, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
-+      { 0, 0, 0, 0x00000c44, 0xffffffff, 0x32322426, },
-+      { 0, 0, 1, 0x00000c48, 0xffffffff, 0x30323232, },
-+      { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, },
-+      { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x30303030, },
-+      { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x24262830, },
-+      { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x20222222, },
-+      { 0, 1, 0, 0x00000e20, 0xffffffff, 0x43434343, },
-+      { 0, 1, 0, 0x00000e24, 0xffffffff, 0x43434343, },
-+      { 0, 1, 0, 0x00000e28, 0xffffffff, 0x35373941, },
-+      { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x41434343, },
-+      { 0, 1, 0, 0x00000e30, 0xffffffff, 0x33353739, },
-+      { 0, 1, 1, 0x00000e34, 0xffffffff, 0x39414141, },
-+      { 0, 1, 1, 0x00000e38, 0xffffffff, 0x31333537, },
-+      { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x37393939, },
-+      { 0, 1, 2, 0x00000edc, 0xffffffff, 0x29313335, },
-+      { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
-+      { 0, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
-+      { 0, 1, 0, 0x00000e44, 0xffffffff, 0x32322426, },
-+      { 0, 1, 1, 0x00000e48, 0xffffffff, 0x30323232, },
-+      { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, },
-+      { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x30303030, },
-+      { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x24262830, },
-+      { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x20222222, },
-+      { 0, 2, 0, 0x00001820, 0xffffffff, 0x43434343, },
-+      { 0, 2, 0, 0x00001824, 0xffffffff, 0x43434343, },
-+      { 0, 2, 0, 0x00001828, 0xffffffff, 0x35373941, },
-+      { 0, 2, 0, 0x0000182c, 0xffffffff, 0x41434343, },
-+      { 0, 2, 0, 0x00001830, 0xffffffff, 0x33353739, },
-+      { 0, 2, 1, 0x00001834, 0xffffffff, 0x39414141, },
-+      { 0, 2, 1, 0x00001838, 0xffffffff, 0x31333537, },
-+      { 0, 2, 2, 0x000018d8, 0xffffffff, 0x37393939, },
-+      { 0, 2, 2, 0x000018dc, 0xffffffff, 0x29313335, },
-+      { 0, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
-+      { 0, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
-+      { 0, 2, 0, 0x00001844, 0xffffffff, 0x32322426, },
-+      { 0, 2, 1, 0x00001848, 0xffffffff, 0x30323232, },
-+      { 0, 2, 1, 0x0000184c, 0xffffffff, 0x22242628, },
-+      { 0, 2, 2, 0x000018e0, 0xffffffff, 0x30303030, },
-+      { 0, 2, 2, 0x000018e4, 0xffffffff, 0x24262830, },
-+      { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x20222222, },
-+      { 0, 3, 0, 0x00001a20, 0xffffffff, 0x43434343, },
-+      { 0, 3, 0, 0x00001a24, 0xffffffff, 0x43434343, },
-+      { 0, 3, 0, 0x00001a28, 0xffffffff, 0x35373941, },
-+      { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x41434343, },
-+      { 0, 3, 0, 0x00001a30, 0xffffffff, 0x33353739, },
-+      { 0, 3, 1, 0x00001a34, 0xffffffff, 0x39414141, },
-+      { 0, 3, 1, 0x00001a38, 0xffffffff, 0x31333537, },
-+      { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x37393939, },
-+      { 0, 3, 2, 0x00001adc, 0xffffffff, 0x29313335, },
-+      { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
-+      { 0, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
-+      { 0, 3, 0, 0x00001a44, 0xffffffff, 0x32322426, },
-+      { 0, 3, 1, 0x00001a48, 0xffffffff, 0x30323232, },
-+      { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x22242628, },
-+      { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x30303030, },
-+      { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x24262830, },
-+      { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x20222222, },
-+      { 1, 0, 0, 0x00000c24, 0xffffffff, 0x46464646, },
-+      { 1, 0, 0, 0x00000c28, 0xffffffff, 0x39414345, },
-+      { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x46464646, },
-+      { 1, 0, 0, 0x00000c30, 0xffffffff, 0x38404244, },
-+      { 1, 0, 1, 0x00000c34, 0xffffffff, 0x46464646, },
-+      { 1, 0, 1, 0x00000c38, 0xffffffff, 0x36384042, },
-+      { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x46464646, },
-+      { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x34363840, },
-+      { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x46464646, },
-+      { 1, 0, 0, 0x00000c40, 0xffffffff, 0x38404244, },
-+      { 1, 0, 0, 0x00000c44, 0xffffffff, 0x46463738, },
-+      { 1, 0, 1, 0x00000c48, 0xffffffff, 0x42444646, },
-+      { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x35373840, },
-+      { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x46464646, },
-+      { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x37394143, },
-+      { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x33333335, },
-+      { 1, 1, 0, 0x00000e24, 0xffffffff, 0x46464646, },
-+      { 1, 1, 0, 0x00000e28, 0xffffffff, 0x39414345, },
-+      { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x46464646, },
-+      { 1, 1, 0, 0x00000e30, 0xffffffff, 0x38404244, },
-+      { 1, 1, 1, 0x00000e34, 0xffffffff, 0x46464646, },
-+      { 1, 1, 1, 0x00000e38, 0xffffffff, 0x36384042, },
-+      { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x46464646, },
-+      { 1, 1, 2, 0x00000edc, 0xffffffff, 0x34363840, },
-+      { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x46464646, },
-+      { 1, 1, 0, 0x00000e40, 0xffffffff, 0x38404244, },
-+      { 1, 1, 0, 0x00000e44, 0xffffffff, 0x46463738, },
-+      { 1, 1, 1, 0x00000e48, 0xffffffff, 0x42444646, },
-+      { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x35373840, },
-+      { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x46464646, },
-+      { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x37394143, },
-+      { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x33333335, },
-+      { 1, 2, 0, 0x00001824, 0xffffffff, 0x46464646, },
-+      { 1, 2, 0, 0x00001828, 0xffffffff, 0x39414345, },
-+      { 1, 2, 0, 0x0000182c, 0xffffffff, 0x46464646, },
-+      { 1, 2, 0, 0x00001830, 0xffffffff, 0x38404244, },
-+      { 1, 2, 1, 0x00001834, 0xffffffff, 0x46464646, },
-+      { 1, 2, 1, 0x00001838, 0xffffffff, 0x36384042, },
-+      { 1, 2, 2, 0x000018d8, 0xffffffff, 0x46464646, },
-+      { 1, 2, 2, 0x000018dc, 0xffffffff, 0x34363840, },
-+      { 1, 2, 0, 0x0000183c, 0xffffffff, 0x46464646, },
-+      { 1, 2, 0, 0x00001840, 0xffffffff, 0x38404244, },
-+      { 1, 2, 0, 0x00001844, 0xffffffff, 0x46463738, },
-+      { 1, 2, 1, 0x00001848, 0xffffffff, 0x42444646, },
-+      { 1, 2, 1, 0x0000184c, 0xffffffff, 0x35373840, },
-+      { 1, 2, 2, 0x000018e0, 0xffffffff, 0x46464646, },
-+      { 1, 2, 2, 0x000018e4, 0xffffffff, 0x37394143, },
-+      { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x33333335, },
-+      { 1, 3, 0, 0x00001a24, 0xffffffff, 0x46464646, },
-+      { 1, 3, 0, 0x00001a28, 0xffffffff, 0x39414345, },
-+      { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x46464646, },
-+      { 1, 3, 0, 0x00001a30, 0xffffffff, 0x38404244, },
-+      { 1, 3, 1, 0x00001a34, 0xffffffff, 0x46464646, },
-+      { 1, 3, 1, 0x00001a38, 0xffffffff, 0x36384042, },
-+      { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x46464646, },
-+      { 1, 3, 2, 0x00001adc, 0xffffffff, 0x34363840, },
-+      { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x46464646, },
-+      { 1, 3, 0, 0x00001a40, 0xffffffff, 0x38404244, },
-+      { 1, 3, 0, 0x00001a44, 0xffffffff, 0x46463738, },
-+      { 1, 3, 1, 0x00001a48, 0xffffffff, 0x42444646, },
-+      { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x35373840, },
-+      { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x46464646, },
-+      { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x37394143, },
-+      { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x33333335, },
-+};
-+
-+RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type8);
-+
-+static const u32 rtw8814a_rf_a[] = {
-+              0x018, 0x00013124,
-+              0x040, 0x00000C00,
-+              0x058, 0x00000F98,
-+              0x07F, 0x00068004,
-+              0x0B0, 0x000FFFFE,
-+              0x0B1, 0x0003FF48,
-+              0x0B2, 0x0006AA3F,
-+              0x0B3, 0x000FFC9A,
-+              0x0B4, 0x0000A78F,
-+              0x0B5, 0x00000A3F,
-+              0x0B6, 0x0000C09C,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B7, 0x00030008,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B7, 0x00030008,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B7, 0x00030008,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B7, 0x00030008,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B7, 0x00030008,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B7, 0x00030008,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B7, 0x00030008,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B7, 0x00030008,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B7, 0x00030008,
-+      0xA0000000,     0x00000000,
-+              0x0B7, 0x0003000C,
-+      0xB0000000,     0x00000000,
-+              0x0B8, 0x0007400E,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B9, 0x000FBF50,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B9, 0x000FBF50,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B9, 0x000FBF50,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B9, 0x000FBF50,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B9, 0x000FBF50,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B9, 0x000FBF50,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B9, 0x000FBF50,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B9, 0x000FBF50,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x0B9, 0x000FBF50,
-+      0xA0000000,     0x00000000,
-+              0x0B9, 0x000FBF50,
-+      0xB0000000,     0x00000000,
-+              0x0BA, 0x00050780,
-+              0x0BB, 0x00000000,
-+              0x0BC, 0x00040009,
-+              0x0BD, 0x00000000,
-+              0x0BE, 0x00000000,
-+              0x0BF, 0x00000000,
-+              0x0EF, 0x00020000,
-+              0x03E, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03F, 0x00030000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03F, 0x00030000,
-+      0xA0000000,     0x00000000,
-+              0x03F, 0x00030000,
-+      0xB0000000,     0x00000000,
-+              0x03E, 0x00020000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03F, 0x00040000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03F, 0x00040000,
-+      0xA0000000,     0x00000000,
-+              0x03F, 0x00040000,
-+      0xB0000000,     0x00000000,
-+              0x03E, 0x00040000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03F, 0x00030000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03F, 0x00030000,
-+      0xA0000000,     0x00000000,
-+              0x03F, 0x00030000,
-+      0xB0000000,     0x00000000,
-+              0x03E, 0x00060000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03F, 0x00030000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03F, 0x00030000,
-+      0xA0000000,     0x00000000,
-+              0x03F, 0x00030000,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+              0x0EF, 0x00010000,
-+              0x03E, 0x00000000,
-+              0x03F, 0x00006800,
-+              0x03E, 0x00000080,
-+              0x03F, 0x00006000,
-+              0x03E, 0x00000100,
-+              0x03F, 0x00004800,
-+              0x03E, 0x00000180,
-+              0x03F, 0x00004000,
-+              0x03E, 0x00000200,
-+              0x03F, 0x00004000,
-+              0x03E, 0x00000280,
-+              0x03F, 0x00002800,
-+              0x03E, 0x00000300,
-+              0x03F, 0x00002800,
-+              0x03E, 0x00000380,
-+              0x03F, 0x00002000,
-+              0x0EF, 0x00000000,
-+              0x0EF, 0x00040000,
-+              0x03E, 0x00000000,
-+              0x03F, 0x000000BC,
-+              0x03E, 0x00000040,
-+              0x03F, 0x00000053,
-+              0x03E, 0x00000050,
-+              0x03F, 0x00000050,
-+              0x03E, 0x00000060,
-+              0x03F, 0x00000050,
-+              0x0EF, 0x00000000,
-+              0x0EF, 0x00000400,
-+              0x03E, 0x00000006,
-+              0x041, 0x000EE080,
-+              0x03E, 0x00000008,
-+              0x041, 0x000EE0C0,
-+              0x03E, 0x0000000A,
-+              0x041, 0x000EE100,
-+              0x03E, 0x0000000C,
-+              0x041, 0x000EE100,
-+              0x0EF, 0x00000000,
-+              0x018, 0x00000006,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0xA0000000,     0x00000000,
-+              0x086, 0x000E4B58,
-+              0x087, 0x00049F80,
-+      0xB0000000,     0x00000000,
-+              0x0DF, 0x00000008,
-+              0x0EF, 0x00002000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x000179C3,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x000179C3,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x000179C3,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x000179C3,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x000179C3,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x000179C3,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x000179C3,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0003F258,
-+              0x03B, 0x00030A58,
-+              0x03B, 0x0002FA58,
-+              0x03B, 0x00022590,
-+              0x03B, 0x0001FA50,
-+              0x03B, 0x00010248,
-+              0x03B, 0x00008240,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000100,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0000ADF6,
-+              0x034, 0x00009DF3,
-+              0x034, 0x00008DF0,
-+              0x034, 0x00007DED,
-+              0x034, 0x00006DEA,
-+              0x034, 0x00005CED,
-+              0x034, 0x00004CEA,
-+              0x034, 0x000034EA,
-+              0x034, 0x000024E7,
-+              0x034, 0x0000146A,
-+              0x034, 0x0000006B,
-+      0xB0000000,     0x00000000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0008ADF6,
-+              0x034, 0x00089DF3,
-+              0x034, 0x00088DF0,
-+              0x034, 0x00087DED,
-+              0x034, 0x00086DEA,
-+              0x034, 0x00085CED,
-+              0x034, 0x00084CEA,
-+              0x034, 0x000834EA,
-+              0x034, 0x000824E7,
-+              0x034, 0x0008146A,
-+              0x034, 0x0008006B,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+              0x0EF, 0x000020A2,
-+              0x0DF, 0x00000080,
-+              0x035, 0x00000192,
-+              0x035, 0x00008192,
-+              0x035, 0x00010192,
-+              0x036, 0x00000024,
-+              0x036, 0x00008024,
-+              0x036, 0x00010024,
-+              0x036, 0x00018024,
-+              0x0EF, 0x00000000,
-+              0x051, 0x00000C21,
-+              0x052, 0x000006D9,
-+              0x053, 0x000FC649,
-+              0x054, 0x0000017E,
-+              0x018, 0x0001012A,
-+              0x081, 0x0007FC00,
-+              0x089, 0x00050110,
-+              0x08A, 0x00043E50,
-+              0x08B, 0x0002E180,
-+              0x08C, 0x00093C3C,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x085, 0x000F8000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x085, 0x000F8000,
-+      0xA0000000,     0x00000000,
-+              0x085, 0x000F8000,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0xA0000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00001000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00038023,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00084000,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00028000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00030023,
-+              0x03C, 0x00048000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00028623,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00021633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x0001C633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00010293,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00009593,
-+              0x03C, 0x00000000,
-+              0x03A, 0x00000148,
-+      0x80000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0000118B,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0000078B,
-+      0xB0000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x000AC000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00040000,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x0004C000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00070023,
-+              0x03C, 0x00048000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00068623,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00061633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x0005C633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00050293,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00049593,
-+              0x03C, 0x00000000,
-+              0x03A, 0x00000148,
-+      0x80000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0004138B,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0004078B,
-+      0xB0000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00084000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0008C000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00084000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00084000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00060000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00084000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00084000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00004000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B0023,
-+      0x80000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000A8623,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000A1633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x0009C633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00090293,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00089593,
-+              0x03C, 0x00000000,
-+              0x03A, 0x00000148,
-+      0x80000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0008118B,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0008078B,
-+      0xB0000000,     0x00000000,
-+              0x03C, 0x00000000,
-+              0x0EF, 0x00000000,
-+              0x0EF, 0x00000800,
-+              0x03B, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000801,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001003,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001003,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001003,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0xB0000000,     0x00000000,
-+              0x03B, 0x00040000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001801,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000003,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000003,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001001,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000000,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0xB0000000,     0x00000000,
-+              0x03B, 0x00080000,
-+      0x80000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001802,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000800,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x00001002,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+      0xB0000000,     0x00000000,
-+              0x018, 0x00013124,
-+              0x0EF, 0x00000100,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A1AD,
-+              0x034, 0x000491AA,
-+              0x034, 0x000481A7,
-+              0x034, 0x000470AA,
-+              0x034, 0x000460A7,
-+              0x034, 0x00045049,
-+              0x034, 0x00044046,
-+              0x034, 0x00043026,
-+              0x034, 0x00042009,
-+              0x034, 0x00041006,
-+              0x034, 0x00040003,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3EF,
-+              0x034, 0x000493AF,
-+              0x034, 0x000483AB,
-+              0x034, 0x0004718C,
-+              0x034, 0x00046189,
-+              0x034, 0x0004506D,
-+              0x034, 0x0004406A,
-+              0x034, 0x0004302C,
-+              0x034, 0x00042029,
-+              0x034, 0x00041026,
-+              0x034, 0x00040023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3EF,
-+              0x034, 0x000493AF,
-+              0x034, 0x000483AB,
-+              0x034, 0x0004718C,
-+              0x034, 0x00046189,
-+              0x034, 0x0004506D,
-+              0x034, 0x0004406A,
-+              0x034, 0x0004302C,
-+              0x034, 0x00042029,
-+              0x034, 0x00041026,
-+              0x034, 0x00040023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3EF,
-+              0x034, 0x000493AF,
-+              0x034, 0x000483AB,
-+              0x034, 0x0004718C,
-+              0x034, 0x00046189,
-+              0x034, 0x0004506D,
-+              0x034, 0x0004406A,
-+              0x034, 0x0004302C,
-+              0x034, 0x00042029,
-+              0x034, 0x00041026,
-+              0x034, 0x00040023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3EF,
-+              0x034, 0x000493AF,
-+              0x034, 0x000483AB,
-+              0x034, 0x0004718C,
-+              0x034, 0x00046189,
-+              0x034, 0x0004506D,
-+              0x034, 0x0004406A,
-+              0x034, 0x0004302C,
-+              0x034, 0x00042029,
-+              0x034, 0x00041026,
-+              0x034, 0x00040023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3F5,
-+              0x034, 0x000493F2,
-+              0x034, 0x000483B0,
-+              0x034, 0x00047370,
-+              0x034, 0x0004636D,
-+              0x034, 0x0004536A,
-+              0x034, 0x00044349,
-+              0x034, 0x0004316A,
-+              0x034, 0x00042167,
-+              0x034, 0x00041129,
-+              0x034, 0x00040049,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3EF,
-+              0x034, 0x000493AF,
-+              0x034, 0x000483AB,
-+              0x034, 0x0004718C,
-+              0x034, 0x00046189,
-+              0x034, 0x0004506D,
-+              0x034, 0x0004406A,
-+              0x034, 0x0004302C,
-+              0x034, 0x00042029,
-+              0x034, 0x00041026,
-+              0x034, 0x00040023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3EF,
-+              0x034, 0x000493AF,
-+              0x034, 0x000483AB,
-+              0x034, 0x0004718C,
-+              0x034, 0x00046189,
-+              0x034, 0x0004506D,
-+              0x034, 0x0004406A,
-+              0x034, 0x0004302C,
-+              0x034, 0x00042029,
-+              0x034, 0x00041026,
-+              0x034, 0x00040023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0004AFF1,
-+              0x034, 0x00049FEE,
-+              0x034, 0x00048FEB,
-+              0x034, 0x00047FE8,
-+              0x034, 0x00046DEA,
-+              0x034, 0x00045DE7,
-+              0x034, 0x00044CEA,
-+              0x034, 0x00043CE7,
-+              0x034, 0x00042C69,
-+              0x034, 0x00041C66,
-+              0x034, 0x00040C28,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A1AD,
-+              0x034, 0x000291AA,
-+              0x034, 0x000281A7,
-+              0x034, 0x000270AA,
-+              0x034, 0x000260A7,
-+              0x034, 0x00025049,
-+              0x034, 0x00024046,
-+              0x034, 0x00023026,
-+              0x034, 0x00022009,
-+              0x034, 0x00021006,
-+              0x034, 0x00020003,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EF,
-+              0x034, 0x000293AC,
-+              0x034, 0x0002838A,
-+              0x034, 0x0002718C,
-+              0x034, 0x00026189,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EF,
-+              0x034, 0x000293AC,
-+              0x034, 0x0002838A,
-+              0x034, 0x0002718C,
-+              0x034, 0x00026189,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EF,
-+              0x034, 0x000293AC,
-+              0x034, 0x0002838A,
-+              0x034, 0x0002718C,
-+              0x034, 0x00026189,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EF,
-+              0x034, 0x000293AC,
-+              0x034, 0x0002838A,
-+              0x034, 0x0002718C,
-+              0x034, 0x00026189,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3F5,
-+              0x034, 0x000293F2,
-+              0x034, 0x000282F1,
-+              0x034, 0x000272B0,
-+              0x034, 0x000262AD,
-+              0x034, 0x000252AA,
-+              0x034, 0x000242A7,
-+              0x034, 0x000230EC,
-+              0x034, 0x000220E9,
-+              0x034, 0x0002106A,
-+              0x034, 0x00020067,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EF,
-+              0x034, 0x000293AC,
-+              0x034, 0x0002838A,
-+              0x034, 0x0002718C,
-+              0x034, 0x00026189,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EF,
-+              0x034, 0x000293AC,
-+              0x034, 0x0002838A,
-+              0x034, 0x0002718C,
-+              0x034, 0x00026189,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0002AFF1,
-+              0x034, 0x00029FEE,
-+              0x034, 0x00028FEB,
-+              0x034, 0x00027FE8,
-+              0x034, 0x00026DEA,
-+              0x034, 0x00025DE7,
-+              0x034, 0x00024CEA,
-+              0x034, 0x00023CE7,
-+              0x034, 0x00022C69,
-+              0x034, 0x00021C66,
-+              0x034, 0x00020C28,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EC,
-+              0x034, 0x0000938C,
-+              0x034, 0x000081AD,
-+              0x034, 0x000071AA,
-+              0x034, 0x000061A7,
-+              0x034, 0x000050AA,
-+              0x034, 0x000040A7,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x0000100C,
-+              0x034, 0x00000009,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AC,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AC,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AC,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AC,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3F4,
-+              0x034, 0x000093F1,
-+              0x034, 0x000082B1,
-+              0x034, 0x000071D1,
-+              0x034, 0x000061CE,
-+              0x034, 0x000051CB,
-+              0x034, 0x000041C8,
-+              0x034, 0x000030CB,
-+              0x034, 0x000020C8,
-+              0x034, 0x00001087,
-+              0x034, 0x00000084,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AC,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AC,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0000AFF1,
-+              0x034, 0x00009FEE,
-+              0x034, 0x00008FEB,
-+              0x034, 0x00007FE8,
-+              0x034, 0x00006DEA,
-+              0x034, 0x00005DE7,
-+              0x034, 0x00004CEA,
-+              0x034, 0x00003CE7,
-+              0x034, 0x00002C69,
-+              0x034, 0x00001C66,
-+              0x034, 0x00000C28,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA1AD,
-+              0x034, 0x000C91AA,
-+              0x034, 0x000C81A7,
-+              0x034, 0x000C70AA,
-+              0x034, 0x000C60A7,
-+              0x034, 0x000C5049,
-+              0x034, 0x000C4046,
-+              0x034, 0x000C3026,
-+              0x034, 0x000C2009,
-+              0x034, 0x000C1006,
-+              0x034, 0x000C0003,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3EF,
-+              0x034, 0x000C93AF,
-+              0x034, 0x000C83AB,
-+              0x034, 0x000C718C,
-+              0x034, 0x000C6189,
-+              0x034, 0x000C506D,
-+              0x034, 0x000C406A,
-+              0x034, 0x000C302C,
-+              0x034, 0x000C2029,
-+              0x034, 0x000C1026,
-+              0x034, 0x000C0023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3EF,
-+              0x034, 0x000C93AF,
-+              0x034, 0x000C83AB,
-+              0x034, 0x000C718C,
-+              0x034, 0x000C6189,
-+              0x034, 0x000C506D,
-+              0x034, 0x000C406A,
-+              0x034, 0x000C302C,
-+              0x034, 0x000C2029,
-+              0x034, 0x000C1026,
-+              0x034, 0x000C0023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3EF,
-+              0x034, 0x000C93AF,
-+              0x034, 0x000C83AB,
-+              0x034, 0x000C718C,
-+              0x034, 0x000C6189,
-+              0x034, 0x000C506D,
-+              0x034, 0x000C406A,
-+              0x034, 0x000C302C,
-+              0x034, 0x000C2029,
-+              0x034, 0x000C1026,
-+              0x034, 0x000C0023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3EF,
-+              0x034, 0x000C93AF,
-+              0x034, 0x000C83AB,
-+              0x034, 0x000C718C,
-+              0x034, 0x000C6189,
-+              0x034, 0x000C506D,
-+              0x034, 0x000C406A,
-+              0x034, 0x000C302C,
-+              0x034, 0x000C2029,
-+              0x034, 0x000C1026,
-+              0x034, 0x000C0023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3F5,
-+              0x034, 0x000C93F2,
-+              0x034, 0x000C83B0,
-+              0x034, 0x000C7370,
-+              0x034, 0x000C636D,
-+              0x034, 0x000C536A,
-+              0x034, 0x000C4349,
-+              0x034, 0x000C316A,
-+              0x034, 0x000C2167,
-+              0x034, 0x000C1129,
-+              0x034, 0x000C0049,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3EF,
-+              0x034, 0x000C93AF,
-+              0x034, 0x000C83AB,
-+              0x034, 0x000C718C,
-+              0x034, 0x000C6189,
-+              0x034, 0x000C506D,
-+              0x034, 0x000C406A,
-+              0x034, 0x000C302C,
-+              0x034, 0x000C2029,
-+              0x034, 0x000C1026,
-+              0x034, 0x000C0023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3EF,
-+              0x034, 0x000C93AF,
-+              0x034, 0x000C83AB,
-+              0x034, 0x000C718C,
-+              0x034, 0x000C6189,
-+              0x034, 0x000C506D,
-+              0x034, 0x000C406A,
-+              0x034, 0x000C302C,
-+              0x034, 0x000C2029,
-+              0x034, 0x000C1026,
-+              0x034, 0x000C0023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x000CA794,
-+              0x034, 0x000C9791,
-+              0x034, 0x000C878E,
-+              0x034, 0x000C778B,
-+              0x034, 0x000C658D,
-+              0x034, 0x000C558A,
-+              0x034, 0x000C448D,
-+              0x034, 0x000C348A,
-+              0x034, 0x000C244C,
-+              0x034, 0x000C1449,
-+              0x034, 0x000C042B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA1AD,
-+              0x034, 0x000A91AA,
-+              0x034, 0x000A81A7,
-+              0x034, 0x000A70AA,
-+              0x034, 0x000A60A7,
-+              0x034, 0x000A5049,
-+              0x034, 0x000A4046,
-+              0x034, 0x000A3026,
-+              0x034, 0x000A2009,
-+              0x034, 0x000A1006,
-+              0x034, 0x000A0003,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EF,
-+              0x034, 0x000A93AC,
-+              0x034, 0x000A838A,
-+              0x034, 0x000A718C,
-+              0x034, 0x000A6189,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EF,
-+              0x034, 0x000A93AC,
-+              0x034, 0x000A838A,
-+              0x034, 0x000A718C,
-+              0x034, 0x000A6189,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EF,
-+              0x034, 0x000A93AC,
-+              0x034, 0x000A838A,
-+              0x034, 0x000A718C,
-+              0x034, 0x000A6189,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EF,
-+              0x034, 0x000A93AC,
-+              0x034, 0x000A838A,
-+              0x034, 0x000A718C,
-+              0x034, 0x000A6189,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3F5,
-+              0x034, 0x000A93F2,
-+              0x034, 0x000A82F1,
-+              0x034, 0x000A72B0,
-+              0x034, 0x000A62AD,
-+              0x034, 0x000A52AA,
-+              0x034, 0x000A42A7,
-+              0x034, 0x000A30EC,
-+              0x034, 0x000A20E9,
-+              0x034, 0x000A106A,
-+              0x034, 0x000A0067,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EF,
-+              0x034, 0x000A93AC,
-+              0x034, 0x000A838A,
-+              0x034, 0x000A718C,
-+              0x034, 0x000A6189,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EF,
-+              0x034, 0x000A93AC,
-+              0x034, 0x000A838A,
-+              0x034, 0x000A718C,
-+              0x034, 0x000A6189,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x000AA794,
-+              0x034, 0x000A9791,
-+              0x034, 0x000A878E,
-+              0x034, 0x000A778B,
-+              0x034, 0x000A658D,
-+              0x034, 0x000A558A,
-+              0x034, 0x000A448D,
-+              0x034, 0x000A348A,
-+              0x034, 0x000A244C,
-+              0x034, 0x000A1449,
-+              0x034, 0x000A042B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EC,
-+              0x034, 0x0008938C,
-+              0x034, 0x000881AD,
-+              0x034, 0x000871AA,
-+              0x034, 0x000861A7,
-+              0x034, 0x000850AA,
-+              0x034, 0x000840A7,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x0008100C,
-+              0x034, 0x00080009,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AC,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AC,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AC,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AC,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3F4,
-+              0x034, 0x000893F1,
-+              0x034, 0x000882B1,
-+              0x034, 0x000871D1,
-+              0x034, 0x000861CE,
-+              0x034, 0x000851CB,
-+              0x034, 0x000841C8,
-+              0x034, 0x000830CB,
-+              0x034, 0x000820C8,
-+              0x034, 0x00081087,
-+              0x034, 0x00080084,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AC,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AC,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0008A794,
-+              0x034, 0x00089791,
-+              0x034, 0x0008878E,
-+              0x034, 0x0008778B,
-+              0x034, 0x0008658D,
-+              0x034, 0x0008558A,
-+              0x034, 0x0008448D,
-+              0x034, 0x0008348A,
-+              0x034, 0x0008244C,
-+              0x034, 0x00081449,
-+              0x034, 0x0008042B,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+              0x0DF, 0x00000001,
-+              0x018, 0x0001712A,
-+              0x0EF, 0x00000040,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0xA0000000,     0x00000000,
-+              0x035, 0x00000747,
-+              0x035, 0x00008747,
-+              0x035, 0x00010747,
-+              0x035, 0x00020747,
-+              0x035, 0x00028747,
-+              0x035, 0x00030747,
-+              0x035, 0x00040747,
-+              0x035, 0x00048747,
-+              0x035, 0x00050747,
-+              0x035, 0x000805FB,
-+              0x035, 0x000885FB,
-+              0x035, 0x000905FB,
-+              0x035, 0x000A05FB,
-+              0x035, 0x000A85FB,
-+              0x035, 0x000B05FB,
-+              0x035, 0x000C05FB,
-+              0x035, 0x000C85FB,
-+              0x035, 0x000D05FB,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+              0x0DF, 0x00000001,
-+              0x018, 0x0001712A,
-+              0x0EF, 0x00000010,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000473,
-+              0x036, 0x00008473,
-+              0x036, 0x00010473,
-+              0x036, 0x00020473,
-+              0x036, 0x00028473,
-+              0x036, 0x00030473,
-+              0x036, 0x00040473,
-+              0x036, 0x00048473,
-+              0x036, 0x00050473,
-+              0x036, 0x00080473,
-+              0x036, 0x00088473,
-+              0x036, 0x00090473,
-+              0x036, 0x000A0473,
-+              0x036, 0x000A8473,
-+              0x036, 0x000B0473,
-+              0x036, 0x000C0473,
-+              0x036, 0x000C8473,
-+              0x036, 0x000D0473,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0xA0000000,     0x00000000,
-+              0x036, 0x00000473,
-+              0x036, 0x00008473,
-+              0x036, 0x00010473,
-+              0x036, 0x00020473,
-+              0x036, 0x00028473,
-+              0x036, 0x00030473,
-+              0x036, 0x00040473,
-+              0x036, 0x00048473,
-+              0x036, 0x00050473,
-+              0x036, 0x00080473,
-+              0x036, 0x00088473,
-+              0x036, 0x00090473,
-+              0x036, 0x000A0473,
-+              0x036, 0x000A8473,
-+              0x036, 0x000B0473,
-+              0x036, 0x000C0473,
-+              0x036, 0x000C8473,
-+              0x036, 0x000D0473,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+              0x0EF, 0x00000004,
-+              0x037, 0x00000000,
-+              0x038, 0x00005146,
-+              0x037, 0x00004000,
-+              0x038, 0x00005146,
-+              0x037, 0x00008000,
-+              0x038, 0x00005146,
-+              0x037, 0x00010000,
-+              0x038, 0x00005146,
-+              0x037, 0x00014000,
-+              0x038, 0x00005146,
-+              0x037, 0x00018000,
-+              0x038, 0x00004D4E,
-+              0x037, 0x0001C000,
-+              0x038, 0x00004D4E,
-+              0x037, 0x00020000,
-+              0x038, 0x00004D4E,
-+              0x037, 0x00024000,
-+              0x038, 0x000071C6,
-+              0x037, 0x00028000,
-+              0x038, 0x000071C6,
-+              0x037, 0x0002C000,
-+              0x038, 0x000071C6,
-+              0x037, 0x00030000,
-+              0x038, 0x000071CE,
-+              0x037, 0x00034000,
-+              0x038, 0x000071CE,
-+              0x037, 0x00038000,
-+              0x038, 0x00005126,
-+              0x037, 0x0003C000,
-+              0x038, 0x00005126,
-+              0x037, 0x00040000,
-+              0x038, 0x00005126,
-+              0x037, 0x00044000,
-+              0x038, 0x00005126,
-+              0x037, 0x00048000,
-+              0x038, 0x00005126,
-+              0x037, 0x00080000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00084000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00088000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00090000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00094000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00098000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x0009C000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000A0000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000A4000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000A8000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000AC000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000B0000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000B4000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000B8000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000BC000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000C0000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000C4000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000C8000,
-+              0x038, 0x00005ECE,
-+              0x0EF, 0x00000000,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000008,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x0000007D,
-+              0x03C, 0x0000047D,
-+              0x03C, 0x0000087D,
-+              0x03C, 0x0000107D,
-+              0x03C, 0x0000147D,
-+              0x03C, 0x0000187D,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x0000054A,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x0000154A,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x0000254A,
-+              0x03C, 0x00002821,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x0000054A,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x0000154A,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x0000254A,
-+              0x03C, 0x00002821,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x0000054A,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x0000154A,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x0000254A,
-+              0x03C, 0x00002821,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x0000054A,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x0000154A,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x0000254A,
-+              0x03C, 0x00002821,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x0000054A,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x0000154A,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x0000254A,
-+              0x03C, 0x00002821,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x0000054A,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x0000154A,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x0000254A,
-+              0x03C, 0x00002821,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x0000054A,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x0000154A,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x0000254A,
-+              0x03C, 0x00002821,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x0000054A,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x0000154A,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x0000254A,
-+              0x03C, 0x00002821,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x0000037E,
-+              0x03C, 0x00000575,
-+              0x03C, 0x00000971,
-+              0x03C, 0x0000127E,
-+              0x03C, 0x00001575,
-+              0x03C, 0x00001871,
-+              0x03C, 0x0000217E,
-+              0x03C, 0x00002575,
-+              0x03C, 0x00002871,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+              0x061, 0x000C0D47,
-+              0x062, 0x0000133C,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0xA0000000,     0x00000000,
-+              0x063, 0x0007D0E7,
-+      0xB0000000,     0x00000000,
-+              0x064, 0x00014FEC,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0xA0000000,     0x00000000,
-+              0x065, 0x000933FF,
-+      0xB0000000,     0x00000000,
-+              0x066, 0x00000040,
-+              0x057, 0x00050000,
-+              0x056, 0x00051DF0,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x055, 0x00082061,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x055, 0x00082061,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x055, 0x00082061,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x055, 0x00082061,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x055, 0x00082061,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x055, 0x00082061,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x055, 0x00082061,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x055, 0x00082061,
-+      0xA0000000,     0x00000000,
-+              0x055, 0x00082060,
-+      0xB0000000,     0x00000000,
-+              0x01C, 0x000739D2,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x01F, 0x0002255C,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x01F, 0x0002255C,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x01F, 0x0002255C,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x01F, 0x0002255C,
-+      0xA0000000,     0x00000000,
-+              0x01F, 0x0002255C,
-+      0xB0000000,     0x00000000,
-+              0x0B1, 0x0007FF48,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x0C4, 0x00081700,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x0C4, 0x00081700,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x0C4, 0x00081700,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x0C4, 0x00081700,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x0C4, 0x00081700,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x0C4, 0x00081700,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x0C4, 0x00081700,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x0C4, 0x00081700,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x0C4, 0x00081700,
-+      0xA0000000,     0x00000000,
-+              0x0C4, 0x00083F00,
-+      0xB0000000,     0x00000000,
-+              0x018, 0x0001B126,
-+              0xFFE, 0x00000000,
-+              0xFFE, 0x00000000,
-+              0xFFE, 0x00000000,
-+              0x018, 0x00013126,
-+              0x018, 0x00013124,
-+};
-+
-+RTW_DECL_TABLE_RF_RADIO(rtw8814a_rf_a, A);
-+
-+static const u32 rtw8814a_rf_b[] = {
-+              0x018, 0x00013124,
-+              0x040, 0x00000C00,
-+              0x058, 0x00000F98,
-+              0x07F, 0x00068004,
-+              0x018, 0x00000006,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0xA0000000,     0x00000000,
-+              0x086, 0x000E4B58,
-+              0x087, 0x00049F80,
-+      0xB0000000,     0x00000000,
-+              0x0DF, 0x00000008,
-+              0x0EF, 0x00002000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017BC3,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F39B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017BC3,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017BC3,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F39B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017BC3,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017BC3,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017BC3,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017BC3,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0003F258,
-+              0x03B, 0x00030A58,
-+              0x03B, 0x0002FA58,
-+              0x03B, 0x00022590,
-+              0x03B, 0x0001FA50,
-+              0x03B, 0x00010248,
-+              0x03B, 0x00008240,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000100,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0000ADF6,
-+              0x034, 0x00009DF3,
-+              0x034, 0x00008DF0,
-+              0x034, 0x00007DED,
-+              0x034, 0x00006DEA,
-+              0x034, 0x00005CED,
-+              0x034, 0x00004CEA,
-+              0x034, 0x000034EA,
-+              0x034, 0x000024E7,
-+              0x034, 0x0000146A,
-+              0x034, 0x0000006B,
-+      0xB0000000,     0x00000000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0008ADF6,
-+              0x034, 0x00089DF3,
-+              0x034, 0x00088DF0,
-+              0x034, 0x00087DED,
-+              0x034, 0x00086DEA,
-+              0x034, 0x00085CED,
-+              0x034, 0x00084CEA,
-+              0x034, 0x000834EA,
-+              0x034, 0x000824E7,
-+              0x034, 0x0008146A,
-+              0x034, 0x0008006B,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+              0x0EF, 0x000020A2,
-+              0x0DF, 0x00000080,
-+              0x035, 0x00000192,
-+              0x035, 0x00008192,
-+              0x035, 0x00010192,
-+              0x036, 0x00000024,
-+              0x036, 0x00008024,
-+              0x036, 0x00010024,
-+              0x036, 0x00018024,
-+              0x0EF, 0x00000000,
-+              0x051, 0x00000C21,
-+              0x052, 0x000006D9,
-+              0x053, 0x000FC649,
-+              0x054, 0x0000017E,
-+              0x018, 0x0001012A,
-+              0x081, 0x0007FC00,
-+              0x089, 0x00050110,
-+              0x08A, 0x00043E50,
-+              0x08B, 0x0002E180,
-+              0x08C, 0x00093C3C,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x085, 0x000F8000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x085, 0x000F8000,
-+      0xA0000000,     0x00000000,
-+              0x085, 0x000F8000,
-+      0xB0000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+              0x0EF, 0x00001000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00038023,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00084000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00040000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00030023,
-+              0x03C, 0x00048000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00028623,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00021633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x0001C633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00010293,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00009593,
-+              0x03C, 0x00000000,
-+              0x03A, 0x00000148,
-+      0x80000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x00000F8B,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0000078B,
-+      0xB0000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00060000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00048000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00048000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00048000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00048000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00070023,
-+              0x03C, 0x00048000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00068623,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00061633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x0005C633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00050293,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00049593,
-+              0x03C, 0x00000000,
-+              0x03A, 0x00000148,
-+              0x03B, 0x0004078B,
-+              0x03C, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00048000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00060000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0004C000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00044000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0004C000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00048000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00004000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00044000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00044000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B0023,
-+      0x80000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000A8623,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000A1633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x0009C633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00090293,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00089593,
-+              0x03C, 0x00000000,
-+              0x03A, 0x00000148,
-+      0x80000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0008138B,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0008078B,
-+      0xB0000000,     0x00000000,
-+              0x03C, 0x00000000,
-+              0x0EF, 0x00000000,
-+              0x0EF, 0x00000800,
-+              0x03B, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001003,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001003,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001003,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0xB0000000,     0x00000000,
-+              0x03B, 0x00040000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001003,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000800,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000800,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0xB0000000,     0x00000000,
-+              0x03B, 0x00080000,
-+      0x80000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001802,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001802,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x00001002,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+      0xB0000000,     0x00000000,
-+              0x018, 0x00013124,
-+              0x0EF, 0x00000100,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A38C,
-+              0x034, 0x000491AD,
-+              0x034, 0x000481AA,
-+              0x034, 0x000471A7,
-+              0x034, 0x000460AA,
-+              0x034, 0x000450A7,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x0004200C,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A38C,
-+              0x034, 0x00049389,
-+              0x034, 0x0004816D,
-+              0x034, 0x0004716A,
-+              0x034, 0x0004606D,
-+              0x034, 0x0004506A,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x00042026,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A38B,
-+              0x034, 0x00049388,
-+              0x034, 0x0004818B,
-+              0x034, 0x00047188,
-+              0x034, 0x0004606D,
-+              0x034, 0x0004506A,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x00042026,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A38C,
-+              0x034, 0x00049389,
-+              0x034, 0x0004816D,
-+              0x034, 0x0004716A,
-+              0x034, 0x0004606D,
-+              0x034, 0x0004506A,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x00042026,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A38B,
-+              0x034, 0x00049388,
-+              0x034, 0x0004818B,
-+              0x034, 0x00047188,
-+              0x034, 0x0004606D,
-+              0x034, 0x0004506A,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x00042026,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3F5,
-+              0x034, 0x000493F3,
-+              0x034, 0x000483B2,
-+              0x034, 0x00047390,
-+              0x034, 0x0004638D,
-+              0x034, 0x0004538A,
-+              0x034, 0x00044387,
-+              0x034, 0x0004324A,
-+              0x034, 0x00042247,
-+              0x034, 0x0004104D,
-+              0x034, 0x0004004A,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004AFF7,
-+              0x034, 0x00049FF6,
-+              0x034, 0x00048FF3,
-+              0x034, 0x00047FF0,
-+              0x034, 0x00046FED,
-+              0x034, 0x00045FEA,
-+              0x034, 0x00044FE7,
-+              0x034, 0x00043DEA,
-+              0x034, 0x00042DE7,
-+              0x034, 0x00041DE4,
-+              0x034, 0x00040CE7,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A38C,
-+              0x034, 0x00049389,
-+              0x034, 0x0004816D,
-+              0x034, 0x0004716A,
-+              0x034, 0x0004606D,
-+              0x034, 0x0004506A,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x00042026,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A38C,
-+              0x034, 0x00049389,
-+              0x034, 0x0004816D,
-+              0x034, 0x0004716A,
-+              0x034, 0x0004606D,
-+              0x034, 0x0004506A,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x00042026,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0004AFF4,
-+              0x034, 0x00049FF1,
-+              0x034, 0x00048FEE,
-+              0x034, 0x00047FEB,
-+              0x034, 0x00046FE8,
-+              0x034, 0x00045DEA,
-+              0x034, 0x00044CED,
-+              0x034, 0x00043CEA,
-+              0x034, 0x00042C6C,
-+              0x034, 0x00041C69,
-+              0x034, 0x00040C2B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A38C,
-+              0x034, 0x000291AD,
-+              0x034, 0x000281AA,
-+              0x034, 0x000271A7,
-+              0x034, 0x000260AA,
-+              0x034, 0x000250A7,
-+              0x034, 0x0002402C,
-+              0x034, 0x00023029,
-+              0x034, 0x0002200C,
-+              0x034, 0x00021009,
-+              0x034, 0x00020006,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EE,
-+              0x034, 0x000293AC,
-+              0x034, 0x00028389,
-+              0x034, 0x0002716D,
-+              0x034, 0x0002616A,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EF,
-+              0x034, 0x000293AD,
-+              0x034, 0x0002838A,
-+              0x034, 0x0002718C,
-+              0x034, 0x00026189,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EE,
-+              0x034, 0x000293AC,
-+              0x034, 0x00028389,
-+              0x034, 0x0002716D,
-+              0x034, 0x0002616A,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EF,
-+              0x034, 0x000293AD,
-+              0x034, 0x0002838A,
-+              0x034, 0x0002718C,
-+              0x034, 0x00026189,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3F5,
-+              0x034, 0x000293F3,
-+              0x034, 0x000283D0,
-+              0x034, 0x00027371,
-+              0x034, 0x0002636E,
-+              0x034, 0x0002536B,
-+              0x034, 0x00024368,
-+              0x034, 0x0002332A,
-+              0x034, 0x00022327,
-+              0x034, 0x0002104C,
-+              0x034, 0x00020049,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002AFF7,
-+              0x034, 0x00029FF6,
-+              0x034, 0x00028FF3,
-+              0x034, 0x00027FF0,
-+              0x034, 0x00026FED,
-+              0x034, 0x00025FEA,
-+              0x034, 0x00024FE7,
-+              0x034, 0x00023DEA,
-+              0x034, 0x00022DE7,
-+              0x034, 0x00021DE4,
-+              0x034, 0x00020F25,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EE,
-+              0x034, 0x000293AC,
-+              0x034, 0x00028389,
-+              0x034, 0x0002716D,
-+              0x034, 0x0002616A,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EE,
-+              0x034, 0x000293AC,
-+              0x034, 0x00028389,
-+              0x034, 0x0002716D,
-+              0x034, 0x0002616A,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0002AFF4,
-+              0x034, 0x00029FF1,
-+              0x034, 0x00028FEE,
-+              0x034, 0x00027FEB,
-+              0x034, 0x00026FE8,
-+              0x034, 0x00025DEA,
-+              0x034, 0x00024CED,
-+              0x034, 0x00023CEA,
-+              0x034, 0x00022C6C,
-+              0x034, 0x00021C69,
-+              0x034, 0x00020C2B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A38C,
-+              0x034, 0x000091AD,
-+              0x034, 0x000081AA,
-+              0x034, 0x000071A7,
-+              0x034, 0x000060AA,
-+              0x034, 0x000050A7,
-+              0x034, 0x0000402C,
-+              0x034, 0x00003029,
-+              0x034, 0x00002026,
-+              0x034, 0x00001009,
-+              0x034, 0x00000006,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EC,
-+              0x034, 0x000093AC,
-+              0x034, 0x000081EC,
-+              0x034, 0x0000716D,
-+              0x034, 0x0000616A,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000404C,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EF,
-+              0x034, 0x000093AD,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EC,
-+              0x034, 0x000093AC,
-+              0x034, 0x000081EC,
-+              0x034, 0x0000716D,
-+              0x034, 0x0000616A,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000404C,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EF,
-+              0x034, 0x000093AD,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3F4,
-+              0x034, 0x000093F0,
-+              0x034, 0x000083AE,
-+              0x034, 0x00007350,
-+              0x034, 0x0000634D,
-+              0x034, 0x0000534A,
-+              0x034, 0x00004347,
-+              0x034, 0x0000312D,
-+              0x034, 0x0000212A,
-+              0x034, 0x00001127,
-+              0x034, 0x0000002A,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000AFF7,
-+              0x034, 0x00009FF4,
-+              0x034, 0x00008FF1,
-+              0x034, 0x00007FEE,
-+              0x034, 0x00006FEB,
-+              0x034, 0x00005FE8,
-+              0x034, 0x00004DEB,
-+              0x034, 0x00003DE8,
-+              0x034, 0x00002DE5,
-+              0x034, 0x00001C8B,
-+              0x034, 0x00000C88,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EC,
-+              0x034, 0x000093AC,
-+              0x034, 0x000081EC,
-+              0x034, 0x0000716D,
-+              0x034, 0x0000616A,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000404C,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EC,
-+              0x034, 0x000093AC,
-+              0x034, 0x000081EC,
-+              0x034, 0x0000716D,
-+              0x034, 0x0000616A,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000404C,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0000AFF4,
-+              0x034, 0x00009FF1,
-+              0x034, 0x00008FEE,
-+              0x034, 0x00007FEB,
-+              0x034, 0x00006FE8,
-+              0x034, 0x00005DEA,
-+              0x034, 0x00004CED,
-+              0x034, 0x00003CEA,
-+              0x034, 0x00002C6C,
-+              0x034, 0x00001C69,
-+              0x034, 0x00000C2B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA38C,
-+              0x034, 0x000C91AD,
-+              0x034, 0x000C81AA,
-+              0x034, 0x000C71A7,
-+              0x034, 0x000C60AA,
-+              0x034, 0x000C50A7,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C200C,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA38C,
-+              0x034, 0x000C9389,
-+              0x034, 0x000C816D,
-+              0x034, 0x000C716A,
-+              0x034, 0x000C606D,
-+              0x034, 0x000C506A,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C2026,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA38B,
-+              0x034, 0x000C9388,
-+              0x034, 0x000C818B,
-+              0x034, 0x000C7188,
-+              0x034, 0x000C606D,
-+              0x034, 0x000C506A,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C2026,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA38C,
-+              0x034, 0x000C9389,
-+              0x034, 0x000C816D,
-+              0x034, 0x000C716A,
-+              0x034, 0x000C606D,
-+              0x034, 0x000C506A,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C2026,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA38B,
-+              0x034, 0x000C9388,
-+              0x034, 0x000C818B,
-+              0x034, 0x000C7188,
-+              0x034, 0x000C606D,
-+              0x034, 0x000C506A,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C2026,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3F5,
-+              0x034, 0x000C93F3,
-+              0x034, 0x000C83B2,
-+              0x034, 0x000C7390,
-+              0x034, 0x000C638D,
-+              0x034, 0x000C538A,
-+              0x034, 0x000C4387,
-+              0x034, 0x000C324A,
-+              0x034, 0x000C2247,
-+              0x034, 0x000C104D,
-+              0x034, 0x000C004A,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CAFF7,
-+              0x034, 0x000C9FF6,
-+              0x034, 0x000C8FF3,
-+              0x034, 0x000C7FF0,
-+              0x034, 0x000C6FED,
-+              0x034, 0x000C5FEA,
-+              0x034, 0x000C4FE7,
-+              0x034, 0x000C3DEA,
-+              0x034, 0x000C2DE7,
-+              0x034, 0x000C1DE4,
-+              0x034, 0x000C0CE7,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA38C,
-+              0x034, 0x000C9389,
-+              0x034, 0x000C816D,
-+              0x034, 0x000C716A,
-+              0x034, 0x000C606D,
-+              0x034, 0x000C506A,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C2026,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA38C,
-+              0x034, 0x000C9389,
-+              0x034, 0x000C816D,
-+              0x034, 0x000C716A,
-+              0x034, 0x000C606D,
-+              0x034, 0x000C506A,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C2026,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x000CA794,
-+              0x034, 0x000C9791,
-+              0x034, 0x000C878E,
-+              0x034, 0x000C778B,
-+              0x034, 0x000C658D,
-+              0x034, 0x000C558A,
-+              0x034, 0x000C448D,
-+              0x034, 0x000C348A,
-+              0x034, 0x000C244C,
-+              0x034, 0x000C1449,
-+              0x034, 0x000C042B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA38C,
-+              0x034, 0x000A91AD,
-+              0x034, 0x000A81AA,
-+              0x034, 0x000A71A7,
-+              0x034, 0x000A60AA,
-+              0x034, 0x000A50A7,
-+              0x034, 0x000A402C,
-+              0x034, 0x000A3029,
-+              0x034, 0x000A200C,
-+              0x034, 0x000A1009,
-+              0x034, 0x000A0006,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EE,
-+              0x034, 0x000A93AC,
-+              0x034, 0x000A8389,
-+              0x034, 0x000A716D,
-+              0x034, 0x000A616A,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EF,
-+              0x034, 0x000A93AD,
-+              0x034, 0x000A838A,
-+              0x034, 0x000A718C,
-+              0x034, 0x000A6189,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EE,
-+              0x034, 0x000A93AC,
-+              0x034, 0x000A8389,
-+              0x034, 0x000A716D,
-+              0x034, 0x000A616A,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EF,
-+              0x034, 0x000A93AD,
-+              0x034, 0x000A838A,
-+              0x034, 0x000A718C,
-+              0x034, 0x000A6189,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3F5,
-+              0x034, 0x000A93F3,
-+              0x034, 0x000A83D0,
-+              0x034, 0x000A7371,
-+              0x034, 0x000A636E,
-+              0x034, 0x000A536B,
-+              0x034, 0x000A4368,
-+              0x034, 0x000A332A,
-+              0x034, 0x000A2327,
-+              0x034, 0x000A104C,
-+              0x034, 0x000A0049,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AAFF7,
-+              0x034, 0x000A9FF6,
-+              0x034, 0x000A8FF3,
-+              0x034, 0x000A7FF0,
-+              0x034, 0x000A6FED,
-+              0x034, 0x000A5FEA,
-+              0x034, 0x000A4FE7,
-+              0x034, 0x000A3DEA,
-+              0x034, 0x000A2DE7,
-+              0x034, 0x000A1DE4,
-+              0x034, 0x000A0F25,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EE,
-+              0x034, 0x000A93AC,
-+              0x034, 0x000A8389,
-+              0x034, 0x000A716D,
-+              0x034, 0x000A616A,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EE,
-+              0x034, 0x000A93AC,
-+              0x034, 0x000A8389,
-+              0x034, 0x000A716D,
-+              0x034, 0x000A616A,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x000AA794,
-+              0x034, 0x000A9791,
-+              0x034, 0x000A878E,
-+              0x034, 0x000A778B,
-+              0x034, 0x000A658D,
-+              0x034, 0x000A558A,
-+              0x034, 0x000A448D,
-+              0x034, 0x000A348A,
-+              0x034, 0x000A244C,
-+              0x034, 0x000A1449,
-+              0x034, 0x000A042B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A38C,
-+              0x034, 0x000891AD,
-+              0x034, 0x000881AA,
-+              0x034, 0x000871A7,
-+              0x034, 0x000860AA,
-+              0x034, 0x000850A7,
-+              0x034, 0x0008402C,
-+              0x034, 0x00083029,
-+              0x034, 0x00082026,
-+              0x034, 0x00081009,
-+              0x034, 0x00080006,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EC,
-+              0x034, 0x000893AC,
-+              0x034, 0x000881EC,
-+              0x034, 0x0008716D,
-+              0x034, 0x0008616A,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008404C,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EF,
-+              0x034, 0x000893AD,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EC,
-+              0x034, 0x000893AC,
-+              0x034, 0x000881EC,
-+              0x034, 0x0008716D,
-+              0x034, 0x0008616A,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008404C,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EF,
-+              0x034, 0x000893AD,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3F4,
-+              0x034, 0x000893F0,
-+              0x034, 0x000883AE,
-+              0x034, 0x00087350,
-+              0x034, 0x0008634D,
-+              0x034, 0x0008534A,
-+              0x034, 0x00084347,
-+              0x034, 0x0008312D,
-+              0x034, 0x0008212A,
-+              0x034, 0x00081127,
-+              0x034, 0x0008002A,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008AFF7,
-+              0x034, 0x00089FF4,
-+              0x034, 0x00088FF1,
-+              0x034, 0x00087FEE,
-+              0x034, 0x00086FEB,
-+              0x034, 0x00085FE8,
-+              0x034, 0x00084DEB,
-+              0x034, 0x00083DE8,
-+              0x034, 0x00082DE5,
-+              0x034, 0x00081C8B,
-+              0x034, 0x00080C88,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EC,
-+              0x034, 0x000893AC,
-+              0x034, 0x000881EC,
-+              0x034, 0x0008716D,
-+              0x034, 0x0008616A,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008404C,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EC,
-+              0x034, 0x000893AC,
-+              0x034, 0x000881EC,
-+              0x034, 0x0008716D,
-+              0x034, 0x0008616A,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008404C,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0008A794,
-+              0x034, 0x00089791,
-+              0x034, 0x0008878E,
-+              0x034, 0x0008778B,
-+              0x034, 0x0008658D,
-+              0x034, 0x0008558A,
-+              0x034, 0x0008448D,
-+              0x034, 0x0008348A,
-+              0x034, 0x0008244C,
-+              0x034, 0x00081449,
-+              0x034, 0x0008042B,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x0DF, 0x00000000,
-+      0xB0000000,     0x00000000,
-+              0x018, 0x0001712A,
-+              0x0EF, 0x00000040,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0xA0000000,     0x00000000,
-+              0x035, 0x00000484,
-+              0x035, 0x00008484,
-+              0x035, 0x00010484,
-+              0x035, 0x00020584,
-+              0x035, 0x00028584,
-+              0x035, 0x00030584,
-+              0x035, 0x00040584,
-+              0x035, 0x00048584,
-+              0x035, 0x00050584,
-+              0x035, 0x000805FB,
-+              0x035, 0x000885FB,
-+              0x035, 0x000905FB,
-+              0x035, 0x000A05FB,
-+              0x035, 0x000A85FB,
-+              0x035, 0x000B05FB,
-+              0x035, 0x000C05FB,
-+              0x035, 0x000C85FB,
-+              0x035, 0x000D05FB,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x0DF, 0x00000000,
-+      0xB0000000,     0x00000000,
-+              0x018, 0x0001712A,
-+              0x0EF, 0x00000010,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000473,
-+              0x036, 0x00008473,
-+              0x036, 0x00010473,
-+              0x036, 0x00020473,
-+              0x036, 0x00028473,
-+              0x036, 0x00030473,
-+              0x036, 0x00040473,
-+              0x036, 0x00048473,
-+              0x036, 0x00050473,
-+              0x036, 0x00080473,
-+              0x036, 0x00088473,
-+              0x036, 0x00090473,
-+              0x036, 0x000A0473,
-+              0x036, 0x000A8473,
-+              0x036, 0x000B0473,
-+              0x036, 0x000C0473,
-+              0x036, 0x000C8473,
-+              0x036, 0x000D0473,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0xA0000000,     0x00000000,
-+              0x036, 0x00000474,
-+              0x036, 0x00008474,
-+              0x036, 0x00010474,
-+              0x036, 0x00020474,
-+              0x036, 0x00028474,
-+              0x036, 0x00030474,
-+              0x036, 0x00040474,
-+              0x036, 0x00048474,
-+              0x036, 0x00050474,
-+              0x036, 0x00080474,
-+              0x036, 0x00088474,
-+              0x036, 0x00090474,
-+              0x036, 0x000A0474,
-+              0x036, 0x000A8474,
-+              0x036, 0x000B0474,
-+              0x036, 0x000C0474,
-+              0x036, 0x000C8474,
-+              0x036, 0x000D0474,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+              0x0EF, 0x00000004,
-+              0x037, 0x00000000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00004000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00008000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00010000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00014000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00018000,
-+              0x038, 0x0000514E,
-+              0x037, 0x0001C000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00020000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00024000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00028000,
-+              0x038, 0x0000514E,
-+              0x037, 0x0002C000,
-+              0x038, 0x0000714E,
-+              0x037, 0x00030000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00034000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00038000,
-+              0x038, 0x0000514E,
-+              0x037, 0x0003C000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00040000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00044000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00048000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00080000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00084000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00088000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00090000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00094000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00098000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x0009C000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000A0000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000A4000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000A8000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000AC000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000B0000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000B4000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000B8000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000BC000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000C0000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000C4000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000C8000,
-+              0x038, 0x00005ECE,
-+              0x0EF, 0x00000000,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000008,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x0000007D,
-+              0x03C, 0x0000047D,
-+              0x03C, 0x0000087D,
-+              0x03C, 0x0000107D,
-+              0x03C, 0x0000147D,
-+              0x03C, 0x0000187D,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027E,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127E,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227E,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027E,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127E,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227E,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027E,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127E,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227E,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027E,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127E,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227E,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027E,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127E,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227E,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027E,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127E,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227E,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027E,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127E,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227E,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027E,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127E,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227E,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x0000037E,
-+              0x03C, 0x00000575,
-+              0x03C, 0x00000971,
-+              0x03C, 0x0000127E,
-+              0x03C, 0x00001575,
-+              0x03C, 0x00001871,
-+              0x03C, 0x0000217E,
-+              0x03C, 0x00002575,
-+              0x03C, 0x00002871,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+              0x061, 0x000C0D47,
-+              0x062, 0x0000133C,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0xA0000000,     0x00000000,
-+              0x063, 0x0007D0E7,
-+      0xB0000000,     0x00000000,
-+              0x064, 0x00014FEC,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0xA0000000,     0x00000000,
-+              0x065, 0x000923FF,
-+      0xB0000000,     0x00000000,
-+              0x066, 0x00000040,
-+              0x057, 0x00050000,
-+              0x056, 0x00051DF0,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+              0x055, 0x00082060,
-+      0xB0000000,     0x00000000,
-+};
-+
-+RTW_DECL_TABLE_RF_RADIO(rtw8814a_rf_b, B);
-+
-+static const u32 rtw8814a_rf_c[] = {
-+              0x018, 0x00013124,
-+              0x040, 0x00000C00,
-+              0x058, 0x00000F98,
-+              0x07F, 0x00068004,
-+              0x018, 0x00000006,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0xA0000000,     0x00000000,
-+              0x086, 0x000E4B58,
-+              0x087, 0x00049F80,
-+      0xB0000000,     0x00000000,
-+              0x0DF, 0x00000008,
-+              0x0EF, 0x00002000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017823,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017823,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017823,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017823,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017823,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017823,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017823,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0003F258,
-+              0x03B, 0x00030A58,
-+              0x03B, 0x0002FA58,
-+              0x03B, 0x00022590,
-+              0x03B, 0x0001FA50,
-+              0x03B, 0x00010248,
-+              0x03B, 0x00008240,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000100,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0000ADF6,
-+              0x034, 0x00009DF3,
-+              0x034, 0x00008DF0,
-+              0x034, 0x00007DED,
-+              0x034, 0x00006DEA,
-+              0x034, 0x00005CED,
-+              0x034, 0x00004CEA,
-+              0x034, 0x000034EA,
-+              0x034, 0x000024E7,
-+              0x034, 0x0000146A,
-+              0x034, 0x0000006B,
-+      0xB0000000,     0x00000000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0008ADF6,
-+              0x034, 0x00089DF3,
-+              0x034, 0x00088DF0,
-+              0x034, 0x00087DED,
-+              0x034, 0x00086DEA,
-+              0x034, 0x00085CED,
-+              0x034, 0x00084CEA,
-+              0x034, 0x000834EA,
-+              0x034, 0x000824E7,
-+              0x034, 0x0008146A,
-+              0x034, 0x0008006B,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+              0x0EF, 0x000020A2,
-+              0x0DF, 0x00000080,
-+              0x035, 0x00000192,
-+              0x035, 0x00008192,
-+              0x035, 0x00010192,
-+              0x036, 0x00000024,
-+              0x036, 0x00008024,
-+              0x036, 0x00010024,
-+              0x036, 0x00018024,
-+              0x0EF, 0x00000000,
-+              0x051, 0x00000C21,
-+              0x052, 0x000006D9,
-+              0x053, 0x000FC649,
-+              0x054, 0x0000017E,
-+              0x018, 0x0001012A,
-+              0x081, 0x0007FC00,
-+              0x089, 0x00050110,
-+              0x08A, 0x00043E50,
-+              0x08B, 0x0002E180,
-+              0x08C, 0x00093C3C,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x085, 0x000F8000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x085, 0x000F8000,
-+      0xA0000000,     0x00000000,
-+              0x085, 0x000F8000,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0xA0000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00001000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00038023,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0006C000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x000D4000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00080000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0006C000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0008C000,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00004000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x000A0000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00030023,
-+              0x03C, 0x00048000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00028623,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00021633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x0001C633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00010293,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00009593,
-+              0x03C, 0x00000000,
-+              0x03A, 0x00000148,
-+      0x80000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0000118B,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0000078B,
-+      0xB0000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0004C000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00084000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00080000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0004C000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x000D0000,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00080000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00080000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00028000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00070023,
-+              0x03C, 0x00048000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00068623,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00061633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x0005C633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00050293,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00049593,
-+              0x03C, 0x00000000,
-+              0x03A, 0x00000148,
-+              0x03B, 0x0004078B,
-+              0x03C, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00060000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00080000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B0023,
-+      0x80000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000A8623,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000A1633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x0009C633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00090293,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00089593,
-+              0x03C, 0x00000000,
-+              0x03A, 0x00000148,
-+      0x80000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0008128B,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0008078B,
-+      0xB0000000,     0x00000000,
-+              0x03C, 0x00000000,
-+              0x0EF, 0x00000000,
-+              0x0EF, 0x00000800,
-+              0x03B, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001803,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001803,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001003,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001003,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001003,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0xB0000000,     0x00000000,
-+              0x03B, 0x00040000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000800,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000000,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000000,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0xB0000000,     0x00000000,
-+              0x03B, 0x00080000,
-+      0x80000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001802,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001802,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x00001002,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+      0xB0000000,     0x00000000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x018, 0x00013124,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x018, 0x00013124,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x018, 0x00013124,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x018, 0x00013124,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x018, 0x00013124,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x018, 0x00013124,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x018, 0x00013124,
-+      0xA0000000,     0x00000000,
-+              0x018, 0x00013124,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000100,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A38C,
-+              0x034, 0x000491AD,
-+              0x034, 0x000481AA,
-+              0x034, 0x000471A7,
-+              0x034, 0x000460AA,
-+              0x034, 0x000450A7,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x0004200C,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3EF,
-+              0x034, 0x000493AD,
-+              0x034, 0x0004838A,
-+              0x034, 0x0004718C,
-+              0x034, 0x00046189,
-+              0x034, 0x0004506D,
-+              0x034, 0x0004404C,
-+              0x034, 0x0004302C,
-+              0x034, 0x00042029,
-+              0x034, 0x00041026,
-+              0x034, 0x00040023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3EF,
-+              0x034, 0x000493AD,
-+              0x034, 0x0004838A,
-+              0x034, 0x0004718C,
-+              0x034, 0x00046189,
-+              0x034, 0x0004506D,
-+              0x034, 0x0004404C,
-+              0x034, 0x0004302C,
-+              0x034, 0x00042029,
-+              0x034, 0x00041026,
-+              0x034, 0x00040023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3EF,
-+              0x034, 0x000493AD,
-+              0x034, 0x0004838A,
-+              0x034, 0x0004718C,
-+              0x034, 0x00046189,
-+              0x034, 0x0004506D,
-+              0x034, 0x0004404C,
-+              0x034, 0x0004302C,
-+              0x034, 0x00042029,
-+              0x034, 0x00041026,
-+              0x034, 0x00040023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3EF,
-+              0x034, 0x000493AD,
-+              0x034, 0x0004838A,
-+              0x034, 0x0004718C,
-+              0x034, 0x00046189,
-+              0x034, 0x0004506D,
-+              0x034, 0x0004404C,
-+              0x034, 0x0004302C,
-+              0x034, 0x00042029,
-+              0x034, 0x00041026,
-+              0x034, 0x00040023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3F5,
-+              0x034, 0x000493F3,
-+              0x034, 0x00048393,
-+              0x034, 0x00047390,
-+              0x034, 0x0004638D,
-+              0x034, 0x0004538A,
-+              0x034, 0x00044387,
-+              0x034, 0x000430ED,
-+              0x034, 0x000420EA,
-+              0x034, 0x000410E7,
-+              0x034, 0x0004002D,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004AFF7,
-+              0x034, 0x00049FF6,
-+              0x034, 0x00048FF3,
-+              0x034, 0x00047FF0,
-+              0x034, 0x00046FED,
-+              0x034, 0x00045FEA,
-+              0x034, 0x00044FE7,
-+              0x034, 0x00043CD0,
-+              0x034, 0x00042CCD,
-+              0x034, 0x00041CCA,
-+              0x034, 0x00040CC7,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3EF,
-+              0x034, 0x000493AD,
-+              0x034, 0x0004838A,
-+              0x034, 0x0004718C,
-+              0x034, 0x00046189,
-+              0x034, 0x0004506D,
-+              0x034, 0x0004404C,
-+              0x034, 0x0004302C,
-+              0x034, 0x00042029,
-+              0x034, 0x00041026,
-+              0x034, 0x00040023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3EF,
-+              0x034, 0x000493AD,
-+              0x034, 0x0004838A,
-+              0x034, 0x0004718C,
-+              0x034, 0x00046189,
-+              0x034, 0x0004506D,
-+              0x034, 0x0004404C,
-+              0x034, 0x0004302C,
-+              0x034, 0x00042029,
-+              0x034, 0x00041026,
-+              0x034, 0x00040023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0004AFF4,
-+              0x034, 0x00049FF1,
-+              0x034, 0x00048FEE,
-+              0x034, 0x00047FEB,
-+              0x034, 0x00046FE8,
-+              0x034, 0x00045DEA,
-+              0x034, 0x00044CED,
-+              0x034, 0x00043CEA,
-+              0x034, 0x00042C6C,
-+              0x034, 0x00041C69,
-+              0x034, 0x00040C2B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EC,
-+              0x034, 0x0002938C,
-+              0x034, 0x000281AD,
-+              0x034, 0x000271AA,
-+              0x034, 0x000261A7,
-+              0x034, 0x000250AA,
-+              0x034, 0x000240A7,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x0002100C,
-+              0x034, 0x00020009,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EC,
-+              0x034, 0x0002936D,
-+              0x034, 0x0002836A,
-+              0x034, 0x0002716D,
-+              0x034, 0x0002616A,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EC,
-+              0x034, 0x000293AC,
-+              0x034, 0x0002838A,
-+              0x034, 0x0002718C,
-+              0x034, 0x00026189,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EC,
-+              0x034, 0x0002936D,
-+              0x034, 0x0002836A,
-+              0x034, 0x0002716D,
-+              0x034, 0x0002616A,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EC,
-+              0x034, 0x000293AC,
-+              0x034, 0x0002838A,
-+              0x034, 0x0002718C,
-+              0x034, 0x00026189,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3F5,
-+              0x034, 0x000293F3,
-+              0x034, 0x000282F2,
-+              0x034, 0x000272D0,
-+              0x034, 0x000262CD,
-+              0x034, 0x000252CA,
-+              0x034, 0x000242C7,
-+              0x034, 0x000230CD,
-+              0x034, 0x000220CA,
-+              0x034, 0x000210C7,
-+              0x034, 0x00020086,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002AFF7,
-+              0x034, 0x00029FF6,
-+              0x034, 0x00028FF3,
-+              0x034, 0x00027FF0,
-+              0x034, 0x00026FED,
-+              0x034, 0x00025FEA,
-+              0x034, 0x00024FE7,
-+              0x034, 0x00023DEA,
-+              0x034, 0x00022DE7,
-+              0x034, 0x00021DE4,
-+              0x034, 0x00020E44,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EC,
-+              0x034, 0x0002936D,
-+              0x034, 0x0002836A,
-+              0x034, 0x0002716D,
-+              0x034, 0x0002616A,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EC,
-+              0x034, 0x0002936D,
-+              0x034, 0x0002836A,
-+              0x034, 0x0002716D,
-+              0x034, 0x0002616A,
-+              0x034, 0x0002506D,
-+              0x034, 0x0002406A,
-+              0x034, 0x0002302C,
-+              0x034, 0x00022029,
-+              0x034, 0x00021026,
-+              0x034, 0x00020023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0002AFF4,
-+              0x034, 0x00029FF1,
-+              0x034, 0x00028FEE,
-+              0x034, 0x00027FEB,
-+              0x034, 0x00026FE8,
-+              0x034, 0x00025DEA,
-+              0x034, 0x00024CED,
-+              0x034, 0x00023CEA,
-+              0x034, 0x00022C6C,
-+              0x034, 0x00021C69,
-+              0x034, 0x00020C2B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A38C,
-+              0x034, 0x000091AD,
-+              0x034, 0x000081AA,
-+              0x034, 0x000071A7,
-+              0x034, 0x000060AA,
-+              0x034, 0x000050A7,
-+              0x034, 0x0000402C,
-+              0x034, 0x00003029,
-+              0x034, 0x0000200C,
-+              0x034, 0x00001009,
-+              0x034, 0x00000006,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AB,
-+              0x034, 0x00008389,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AB,
-+              0x034, 0x00008389,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AB,
-+              0x034, 0x00008389,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AB,
-+              0x034, 0x00008389,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3F5,
-+              0x034, 0x000093F1,
-+              0x034, 0x000083B0,
-+              0x034, 0x00007370,
-+              0x034, 0x0000636D,
-+              0x034, 0x0000536A,
-+              0x034, 0x00004367,
-+              0x034, 0x0000308E,
-+              0x034, 0x0000208B,
-+              0x034, 0x00001088,
-+              0x034, 0x00000085,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000AFF7,
-+              0x034, 0x00009FF5,
-+              0x034, 0x00008FF2,
-+              0x034, 0x00007FEF,
-+              0x034, 0x00006FEC,
-+              0x034, 0x00005FE9,
-+              0x034, 0x00004EAA,
-+              0x034, 0x00003EA7,
-+              0x034, 0x00002C70,
-+              0x034, 0x00001C6D,
-+              0x034, 0x00000C6A,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AB,
-+              0x034, 0x00008389,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AB,
-+              0x034, 0x00008389,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0000AFF4,
-+              0x034, 0x00009FF1,
-+              0x034, 0x00008FEE,
-+              0x034, 0x00007FEB,
-+              0x034, 0x00006FE8,
-+              0x034, 0x00005DEA,
-+              0x034, 0x00004CED,
-+              0x034, 0x00003CEA,
-+              0x034, 0x00002C6C,
-+              0x034, 0x00001C69,
-+              0x034, 0x00000C2B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA38C,
-+              0x034, 0x000C91AD,
-+              0x034, 0x000C81AA,
-+              0x034, 0x000C71A7,
-+              0x034, 0x000C60AA,
-+              0x034, 0x000C50A7,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C200C,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3EF,
-+              0x034, 0x000C93AD,
-+              0x034, 0x000C838A,
-+              0x034, 0x000C718C,
-+              0x034, 0x000C6189,
-+              0x034, 0x000C506D,
-+              0x034, 0x000C404C,
-+              0x034, 0x000C302C,
-+              0x034, 0x000C2029,
-+              0x034, 0x000C1026,
-+              0x034, 0x000C0023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3EF,
-+              0x034, 0x000C93AD,
-+              0x034, 0x000C838A,
-+              0x034, 0x000C718C,
-+              0x034, 0x000C6189,
-+              0x034, 0x000C506D,
-+              0x034, 0x000C404C,
-+              0x034, 0x000C302C,
-+              0x034, 0x000C2029,
-+              0x034, 0x000C1026,
-+              0x034, 0x000C0023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3EF,
-+              0x034, 0x000C93AD,
-+              0x034, 0x000C838A,
-+              0x034, 0x000C718C,
-+              0x034, 0x000C6189,
-+              0x034, 0x000C506D,
-+              0x034, 0x000C404C,
-+              0x034, 0x000C302C,
-+              0x034, 0x000C2029,
-+              0x034, 0x000C1026,
-+              0x034, 0x000C0023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3EF,
-+              0x034, 0x000C93AD,
-+              0x034, 0x000C838A,
-+              0x034, 0x000C718C,
-+              0x034, 0x000C6189,
-+              0x034, 0x000C506D,
-+              0x034, 0x000C404C,
-+              0x034, 0x000C302C,
-+              0x034, 0x000C2029,
-+              0x034, 0x000C1026,
-+              0x034, 0x000C0023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3F5,
-+              0x034, 0x000C93F3,
-+              0x034, 0x000C8393,
-+              0x034, 0x000C7390,
-+              0x034, 0x000C638D,
-+              0x034, 0x000C538A,
-+              0x034, 0x000C4387,
-+              0x034, 0x000C30ED,
-+              0x034, 0x000C20EA,
-+              0x034, 0x000C10E7,
-+              0x034, 0x000C002D,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CAFF7,
-+              0x034, 0x000C9FF6,
-+              0x034, 0x000C8FF3,
-+              0x034, 0x000C7FF0,
-+              0x034, 0x000C6FED,
-+              0x034, 0x000C5FEA,
-+              0x034, 0x000C4FE7,
-+              0x034, 0x000C3CD0,
-+              0x034, 0x000C2CCD,
-+              0x034, 0x000C1CCA,
-+              0x034, 0x000C0CC7,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3EF,
-+              0x034, 0x000C93AD,
-+              0x034, 0x000C838A,
-+              0x034, 0x000C718C,
-+              0x034, 0x000C6189,
-+              0x034, 0x000C506D,
-+              0x034, 0x000C404C,
-+              0x034, 0x000C302C,
-+              0x034, 0x000C2029,
-+              0x034, 0x000C1026,
-+              0x034, 0x000C0023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3EF,
-+              0x034, 0x000C93AD,
-+              0x034, 0x000C838A,
-+              0x034, 0x000C718C,
-+              0x034, 0x000C6189,
-+              0x034, 0x000C506D,
-+              0x034, 0x000C404C,
-+              0x034, 0x000C302C,
-+              0x034, 0x000C2029,
-+              0x034, 0x000C1026,
-+              0x034, 0x000C0023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x000CA794,
-+              0x034, 0x000C9791,
-+              0x034, 0x000C878E,
-+              0x034, 0x000C778B,
-+              0x034, 0x000C658D,
-+              0x034, 0x000C558A,
-+              0x034, 0x000C448D,
-+              0x034, 0x000C348A,
-+              0x034, 0x000C244C,
-+              0x034, 0x000C1449,
-+              0x034, 0x000C042B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EC,
-+              0x034, 0x000A938C,
-+              0x034, 0x000A81AD,
-+              0x034, 0x000A71AA,
-+              0x034, 0x000A61A7,
-+              0x034, 0x000A50AA,
-+              0x034, 0x000A40A7,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A100C,
-+              0x034, 0x000A0009,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EC,
-+              0x034, 0x000A936D,
-+              0x034, 0x000A836A,
-+              0x034, 0x000A716D,
-+              0x034, 0x000A616A,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EC,
-+              0x034, 0x000A93AC,
-+              0x034, 0x000A838A,
-+              0x034, 0x000A718C,
-+              0x034, 0x000A6189,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EC,
-+              0x034, 0x000A936D,
-+              0x034, 0x000A836A,
-+              0x034, 0x000A716D,
-+              0x034, 0x000A616A,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EC,
-+              0x034, 0x000A93AC,
-+              0x034, 0x000A838A,
-+              0x034, 0x000A718C,
-+              0x034, 0x000A6189,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3F5,
-+              0x034, 0x000A93F3,
-+              0x034, 0x000A82F2,
-+              0x034, 0x000A72D0,
-+              0x034, 0x000A62CD,
-+              0x034, 0x000A52CA,
-+              0x034, 0x000A42C7,
-+              0x034, 0x000A30CD,
-+              0x034, 0x000A20CA,
-+              0x034, 0x000A10C7,
-+              0x034, 0x000A0086,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AAFF7,
-+              0x034, 0x000A9FF6,
-+              0x034, 0x000A8FF3,
-+              0x034, 0x000A7FF0,
-+              0x034, 0x000A6FED,
-+              0x034, 0x000A5FEA,
-+              0x034, 0x000A4FE7,
-+              0x034, 0x000A3DEA,
-+              0x034, 0x000A2DE7,
-+              0x034, 0x000A1DE4,
-+              0x034, 0x000A0E44,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EC,
-+              0x034, 0x000A936D,
-+              0x034, 0x000A836A,
-+              0x034, 0x000A716D,
-+              0x034, 0x000A616A,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EC,
-+              0x034, 0x000A936D,
-+              0x034, 0x000A836A,
-+              0x034, 0x000A716D,
-+              0x034, 0x000A616A,
-+              0x034, 0x000A506D,
-+              0x034, 0x000A406A,
-+              0x034, 0x000A302C,
-+              0x034, 0x000A2029,
-+              0x034, 0x000A1026,
-+              0x034, 0x000A0023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x000AA794,
-+              0x034, 0x000A9791,
-+              0x034, 0x000A878E,
-+              0x034, 0x000A778B,
-+              0x034, 0x000A658D,
-+              0x034, 0x000A558A,
-+              0x034, 0x000A448D,
-+              0x034, 0x000A348A,
-+              0x034, 0x000A244C,
-+              0x034, 0x000A1449,
-+              0x034, 0x000A042B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A38C,
-+              0x034, 0x000891AD,
-+              0x034, 0x000881AA,
-+              0x034, 0x000871A7,
-+              0x034, 0x000860AA,
-+              0x034, 0x000850A7,
-+              0x034, 0x0008402C,
-+              0x034, 0x00083029,
-+              0x034, 0x0008200C,
-+              0x034, 0x00081009,
-+              0x034, 0x00000006,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AB,
-+              0x034, 0x00088389,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AB,
-+              0x034, 0x00088389,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AB,
-+              0x034, 0x00088389,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AB,
-+              0x034, 0x00088389,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3F5,
-+              0x034, 0x000893F1,
-+              0x034, 0x000883B0,
-+              0x034, 0x00087370,
-+              0x034, 0x0008636D,
-+              0x034, 0x0008536A,
-+              0x034, 0x00084367,
-+              0x034, 0x0008308E,
-+              0x034, 0x0008208B,
-+              0x034, 0x00081088,
-+              0x034, 0x00080085,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008AFF7,
-+              0x034, 0x00089FF5,
-+              0x034, 0x00088FF2,
-+              0x034, 0x00087FEF,
-+              0x034, 0x00086FEC,
-+              0x034, 0x00085FE9,
-+              0x034, 0x00084EAA,
-+              0x034, 0x00083EA7,
-+              0x034, 0x00082C70,
-+              0x034, 0x00081C6D,
-+              0x034, 0x00080C6A,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AB,
-+              0x034, 0x00088389,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AB,
-+              0x034, 0x00088389,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0008A794,
-+              0x034, 0x00089791,
-+              0x034, 0x0008878E,
-+              0x034, 0x0008778B,
-+              0x034, 0x0008658D,
-+              0x034, 0x0008558A,
-+              0x034, 0x0008448D,
-+              0x034, 0x0008348A,
-+              0x034, 0x0008244C,
-+              0x034, 0x00081449,
-+              0x034, 0x0008042B,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x0DF, 0x00000000,
-+      0xB0000000,     0x00000000,
-+              0x018, 0x0001712A,
-+              0x0EF, 0x00000040,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0xA0000000,     0x00000000,
-+              0x035, 0x00000484,
-+              0x035, 0x00008484,
-+              0x035, 0x00010484,
-+              0x035, 0x00020584,
-+              0x035, 0x00028584,
-+              0x035, 0x00030584,
-+              0x035, 0x00040584,
-+              0x035, 0x00048584,
-+              0x035, 0x00050584,
-+              0x035, 0x000805FB,
-+              0x035, 0x000885FB,
-+              0x035, 0x000905FB,
-+              0x035, 0x000A05FB,
-+              0x035, 0x000A85FB,
-+              0x035, 0x000B05FB,
-+              0x035, 0x000C05FB,
-+              0x035, 0x000C85FB,
-+              0x035, 0x000D05FB,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x0DF, 0x00000000,
-+      0xB0000000,     0x00000000,
-+              0x018, 0x0001712A,
-+              0x0EF, 0x00000010,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000473,
-+              0x036, 0x00008473,
-+              0x036, 0x00010473,
-+              0x036, 0x00020473,
-+              0x036, 0x00028473,
-+              0x036, 0x00030473,
-+              0x036, 0x00040473,
-+              0x036, 0x00048473,
-+              0x036, 0x00050473,
-+              0x036, 0x00080473,
-+              0x036, 0x00088473,
-+              0x036, 0x00090473,
-+              0x036, 0x000A0473,
-+              0x036, 0x000A8473,
-+              0x036, 0x000B0473,
-+              0x036, 0x000C0473,
-+              0x036, 0x000C8473,
-+              0x036, 0x000D0473,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0xA0000000,     0x00000000,
-+              0x036, 0x00000474,
-+              0x036, 0x00008474,
-+              0x036, 0x00010474,
-+              0x036, 0x00020474,
-+              0x036, 0x00028474,
-+              0x036, 0x00030474,
-+              0x036, 0x00040474,
-+              0x036, 0x00048474,
-+              0x036, 0x00050474,
-+              0x036, 0x00080474,
-+              0x036, 0x00088474,
-+              0x036, 0x00090474,
-+              0x036, 0x000A0474,
-+              0x036, 0x000A8474,
-+              0x036, 0x000B0474,
-+              0x036, 0x000C0474,
-+              0x036, 0x000C8474,
-+              0x036, 0x000D0474,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+              0x0EF, 0x00000004,
-+              0x037, 0x00000000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00004000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00008000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00010000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00014000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00018000,
-+              0x038, 0x0000514E,
-+              0x037, 0x0001C000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00020000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00024000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00028000,
-+              0x038, 0x0000514E,
-+              0x037, 0x0002C000,
-+              0x038, 0x0000714E,
-+              0x037, 0x00030000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00034000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00038000,
-+              0x038, 0x0000514E,
-+              0x037, 0x0003C000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00040000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00044000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00048000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00080000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00084000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00088000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00090000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00094000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00098000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x0009C000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000A0000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000A4000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000A8000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000AC000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000B0000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000B4000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000B8000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000BC000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000C0000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000C4000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000C8000,
-+              0x038, 0x00005ECE,
-+              0x0EF, 0x00000000,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000008,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x0000007D,
-+              0x03C, 0x0000047D,
-+              0x03C, 0x0000087D,
-+              0x03C, 0x0000107D,
-+              0x03C, 0x0000147D,
-+              0x03C, 0x0000187D,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x00000541,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x00001541,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x00002541,
-+              0x03C, 0x00002821,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027D,
-+              0x03C, 0x00000546,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127D,
-+              0x03C, 0x00001546,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227D,
-+              0x03C, 0x00002546,
-+              0x03C, 0x00002821,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x0000037E,
-+              0x03C, 0x00000575,
-+              0x03C, 0x00000971,
-+              0x03C, 0x0000127E,
-+              0x03C, 0x00001575,
-+              0x03C, 0x00001871,
-+              0x03C, 0x0000217E,
-+              0x03C, 0x00002575,
-+              0x03C, 0x00002871,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+              0x061, 0x000C0D47,
-+              0x062, 0x0000133C,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0xA0000000,     0x00000000,
-+              0x063, 0x0007D0E7,
-+      0xB0000000,     0x00000000,
-+              0x064, 0x00014FEC,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0xA0000000,     0x00000000,
-+              0x065, 0x000923FF,
-+      0xB0000000,     0x00000000,
-+              0x066, 0x00000040,
-+              0x057, 0x00050000,
-+              0x056, 0x00051DF0,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+              0x055, 0x00082060,
-+      0xB0000000,     0x00000000,
-+};
-+
-+RTW_DECL_TABLE_RF_RADIO(rtw8814a_rf_c, C);
diff --git a/package/kernel/mac80211/patches/rtl/087-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-2-2.patch b/package/kernel/mac80211/patches/rtl/087-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-2-2.patch
deleted file mode 100644 (file)
index 56402a4..0000000
+++ /dev/null
@@ -1,11450 +0,0 @@
-From e38246889cc9f8497c8d7413b73856ae1634322d Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Fri, 7 Mar 2025 02:24:02 +0200
-Subject: [PATCH] wifi: rtw88: Add rtw8814a_table.c (part 2/2)
-
-This contains various tables for initialising the RTL8814A, plus TX
-power limits.
-
-Also add rtw8814a_table.h.
-
-Split into two patches because they are big.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- .../wireless/realtek/rtw88/rtw8814a_table.c   | 11379 ++++++++++++++++
- .../wireless/realtek/rtw88/rtw8814a_table.h   |    40 +
- 2 files changed, 11419 insertions(+)
- create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8814a_table.h
-
---- a/drivers/net/wireless/realtek/rtw88/rtw8814a_table.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8814a_table.c
-@@ -12549,3 +12549,11382 @@ static const u32 rtw8814a_rf_c[] = {
- };
- RTW_DECL_TABLE_RF_RADIO(rtw8814a_rf_c, C);
-+
-+static const u32 rtw8814a_rf_d[] = {
-+              0x018, 0x00013124,
-+              0x040, 0x00000C00,
-+              0x058, 0x00000F98,
-+              0x07F, 0x00068004,
-+              0x018, 0x00000006,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x086, 0x000E335A,
-+              0x087, 0x00079F80,
-+      0xA0000000,     0x00000000,
-+              0x086, 0x000E4B58,
-+              0x087, 0x00049F80,
-+      0xB0000000,     0x00000000,
-+              0x0DF, 0x00000008,
-+              0x0EF, 0x00002000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017803,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F09B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017803,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017803,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F09B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017803,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017803,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017803,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0003F19B,
-+              0x03B, 0x00037A5B,
-+              0x03B, 0x0002A433,
-+              0x03B, 0x00027BD3,
-+              0x03B, 0x0001F80B,
-+              0x03B, 0x00017803,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0003F258,
-+              0x03B, 0x00030A58,
-+              0x03B, 0x0002FA58,
-+              0x03B, 0x00022590,
-+              0x03B, 0x0001FA50,
-+              0x03B, 0x00010248,
-+              0x03B, 0x00008240,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000100,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0000ADF6,
-+              0x034, 0x00009DF3,
-+              0x034, 0x00008DF0,
-+              0x034, 0x00007DED,
-+              0x034, 0x00006DEA,
-+              0x034, 0x00005CED,
-+              0x034, 0x00004CEA,
-+              0x034, 0x000034EA,
-+              0x034, 0x000024E7,
-+              0x034, 0x0000146A,
-+              0x034, 0x0000006B,
-+      0xB0000000,     0x00000000,
-+      0x80000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A0D0,
-+              0x034, 0x000090CD,
-+              0x034, 0x000080CA,
-+              0x034, 0x0000704D,
-+              0x034, 0x0000604A,
-+              0x034, 0x00005047,
-+              0x034, 0x0000400A,
-+              0x034, 0x00003007,
-+              0x034, 0x00002004,
-+              0x034, 0x00001001,
-+              0x034, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0008ADF6,
-+              0x034, 0x00089DF3,
-+              0x034, 0x00088DF0,
-+              0x034, 0x00087DED,
-+              0x034, 0x00086DEA,
-+              0x034, 0x00085CED,
-+              0x034, 0x00084CEA,
-+              0x034, 0x000834EA,
-+              0x034, 0x000824E7,
-+              0x034, 0x0008146A,
-+              0x034, 0x0008006B,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+              0x0EF, 0x000020A2,
-+              0x0DF, 0x00000080,
-+              0x035, 0x00000192,
-+              0x035, 0x00008192,
-+              0x035, 0x00010192,
-+              0x036, 0x00000024,
-+              0x036, 0x00008024,
-+              0x036, 0x00010024,
-+              0x036, 0x00018024,
-+              0x0EF, 0x00000000,
-+              0x051, 0x00000C21,
-+              0x052, 0x000006D9,
-+              0x053, 0x000FC649,
-+              0x054, 0x0000017E,
-+              0x018, 0x0001012A,
-+              0x081, 0x0007FC00,
-+              0x089, 0x00050110,
-+              0x08A, 0x00043E50,
-+              0x08B, 0x0002E180,
-+              0x08C, 0x00093C3C,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x085, 0x000F8000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x085, 0x000F8000,
-+      0xA0000000,     0x00000000,
-+              0x085, 0x000F8000,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0xA0000000,     0x00000000,
-+              0x08D, 0x000FFFF0,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00001000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00038023,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00038023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00038023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00038023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00038023,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00038023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00038023,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00038023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00038023,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00038023,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00044000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00048000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00044000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00040000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00088000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00048000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00030023,
-+              0x03C, 0x00048000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00028623,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00021633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x0001C633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00010293,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00009593,
-+              0x03C, 0x00000000,
-+              0x03A, 0x00000148,
-+      0x80000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x00000F8B,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0000078B,
-+      0xB0000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00078023,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00044000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00044000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00044000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00070023,
-+              0x03C, 0x00048000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00068623,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00061633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x0005C633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00050293,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00049593,
-+              0x03C, 0x00000000,
-+              0x03A, 0x00000148,
-+      0x80000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x00040F8B,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0004078B,
-+      0xB0000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B8023,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00004000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00060000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00004000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00060000,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00024000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00004000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000B0023,
-+      0x80000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x00020000,
-+      0xB0000000,     0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000A8623,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x000A1633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x0009C633,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00090293,
-+              0x03C, 0x00000000,
-+              0x03A, 0x0000013C,
-+              0x03B, 0x00089593,
-+              0x03C, 0x00000000,
-+              0x03A, 0x00000148,
-+      0x80000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03B, 0x0008138B,
-+      0xA0000000,     0x00000000,
-+              0x03B, 0x0008078B,
-+      0xB0000000,     0x00000000,
-+              0x03C, 0x00000000,
-+              0x0EF, 0x00000000,
-+              0x0EF, 0x00000800,
-+              0x03B, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001003,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001003,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001803,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x00000803,
-+      0xB0000000,     0x00000000,
-+              0x03B, 0x00040000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001002,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000001,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0x90000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000802,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001803,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0xB0000000,     0x00000000,
-+              0x03B, 0x00080000,
-+      0x80000007,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001802,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00001000,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x03A, 0x00000802,
-+      0xA0000000,     0x00000000,
-+              0x03A, 0x00001002,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000006,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+      0xB0000000,     0x00000000,
-+              0x018, 0x00013124,
-+              0x0EF, 0x00000100,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3EB,
-+              0x034, 0x0004938B,
-+              0x034, 0x000481AC,
-+              0x034, 0x000471A9,
-+              0x034, 0x000460AC,
-+              0x034, 0x000450A9,
-+              0x034, 0x0004402E,
-+              0x034, 0x0004302B,
-+              0x034, 0x00042028,
-+              0x034, 0x0004100B,
-+              0x034, 0x00040008,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3AD,
-+              0x034, 0x0004938A,
-+              0x034, 0x0004818C,
-+              0x034, 0x00047189,
-+              0x034, 0x0004606D,
-+              0x034, 0x0004506A,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x00042026,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3AD,
-+              0x034, 0x0004938A,
-+              0x034, 0x0004818C,
-+              0x034, 0x00047189,
-+              0x034, 0x0004606D,
-+              0x034, 0x0004506A,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x00042026,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3AD,
-+              0x034, 0x0004938A,
-+              0x034, 0x0004818C,
-+              0x034, 0x00047189,
-+              0x034, 0x0004606D,
-+              0x034, 0x0004506A,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x00042026,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3AD,
-+              0x034, 0x0004938A,
-+              0x034, 0x0004818C,
-+              0x034, 0x00047189,
-+              0x034, 0x0004606D,
-+              0x034, 0x0004506A,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x00042026,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3F4,
-+              0x034, 0x000493D2,
-+              0x034, 0x000482D1,
-+              0x034, 0x000471F1,
-+              0x034, 0x000461EE,
-+              0x034, 0x000451EB,
-+              0x034, 0x000441E8,
-+              0x034, 0x0004314B,
-+              0x034, 0x00042148,
-+              0x034, 0x0004104B,
-+              0x034, 0x00040048,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004AFF7,
-+              0x034, 0x00049FF6,
-+              0x034, 0x00048FF3,
-+              0x034, 0x00047FF0,
-+              0x034, 0x00046FED,
-+              0x034, 0x00045FEA,
-+              0x034, 0x00044FE7,
-+              0x034, 0x00043CB1,
-+              0x034, 0x00042CAE,
-+              0x034, 0x00041CAB,
-+              0x034, 0x00040CA8,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3AD,
-+              0x034, 0x0004938A,
-+              0x034, 0x0004818C,
-+              0x034, 0x00047189,
-+              0x034, 0x0004606D,
-+              0x034, 0x0004506A,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x00042026,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0004A3AD,
-+              0x034, 0x0004938A,
-+              0x034, 0x0004818C,
-+              0x034, 0x00047189,
-+              0x034, 0x0004606D,
-+              0x034, 0x0004506A,
-+              0x034, 0x0004402C,
-+              0x034, 0x00043029,
-+              0x034, 0x00042026,
-+              0x034, 0x00041009,
-+              0x034, 0x00040006,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0004AFF4,
-+              0x034, 0x00049FF1,
-+              0x034, 0x00048FEE,
-+              0x034, 0x00047FEB,
-+              0x034, 0x00046FE8,
-+              0x034, 0x00045DEA,
-+              0x034, 0x00044CED,
-+              0x034, 0x00043CEA,
-+              0x034, 0x00042C6C,
-+              0x034, 0x00041C69,
-+              0x034, 0x00040C2B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3EE,
-+              0x034, 0x000293EB,
-+              0x034, 0x0002838B,
-+              0x034, 0x000271AC,
-+              0x034, 0x000261A9,
-+              0x034, 0x000250AC,
-+              0x034, 0x000240A9,
-+              0x034, 0x000230A6,
-+              0x034, 0x0002202C,
-+              0x034, 0x00021029,
-+              0x034, 0x00020026,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3AD,
-+              0x034, 0x0002938A,
-+              0x034, 0x0002818C,
-+              0x034, 0x00027189,
-+              0x034, 0x0002606D,
-+              0x034, 0x0002504C,
-+              0x034, 0x0002402C,
-+              0x034, 0x00023029,
-+              0x034, 0x00022026,
-+              0x034, 0x00021023,
-+              0x034, 0x00020006,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3AD,
-+              0x034, 0x0002938A,
-+              0x034, 0x0002818C,
-+              0x034, 0x00027189,
-+              0x034, 0x0002606D,
-+              0x034, 0x0002504C,
-+              0x034, 0x0002402C,
-+              0x034, 0x00023029,
-+              0x034, 0x00022026,
-+              0x034, 0x00021023,
-+              0x034, 0x00020006,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3AD,
-+              0x034, 0x0002938A,
-+              0x034, 0x0002818C,
-+              0x034, 0x00027189,
-+              0x034, 0x0002606D,
-+              0x034, 0x0002504C,
-+              0x034, 0x0002402C,
-+              0x034, 0x00023029,
-+              0x034, 0x00022026,
-+              0x034, 0x00021023,
-+              0x034, 0x00020006,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3AD,
-+              0x034, 0x0002938A,
-+              0x034, 0x0002818C,
-+              0x034, 0x00027189,
-+              0x034, 0x0002606D,
-+              0x034, 0x0002504C,
-+              0x034, 0x0002402C,
-+              0x034, 0x00023029,
-+              0x034, 0x00022026,
-+              0x034, 0x00021023,
-+              0x034, 0x00020006,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3F5,
-+              0x034, 0x000293D2,
-+              0x034, 0x000283CE,
-+              0x034, 0x00027290,
-+              0x034, 0x0002628D,
-+              0x034, 0x0002528A,
-+              0x034, 0x00024287,
-+              0x034, 0x0002308D,
-+              0x034, 0x0002208A,
-+              0x034, 0x00021087,
-+              0x034, 0x00020048,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002AFF7,
-+              0x034, 0x00029FF6,
-+              0x034, 0x00028FF3,
-+              0x034, 0x00027FF0,
-+              0x034, 0x00026FED,
-+              0x034, 0x00025FEA,
-+              0x034, 0x00024FE7,
-+              0x034, 0x00023DEA,
-+              0x034, 0x00022DE7,
-+              0x034, 0x00021DE4,
-+              0x034, 0x00020D48,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3AD,
-+              0x034, 0x0002938A,
-+              0x034, 0x0002818C,
-+              0x034, 0x00027189,
-+              0x034, 0x0002606D,
-+              0x034, 0x0002504C,
-+              0x034, 0x0002402C,
-+              0x034, 0x00023029,
-+              0x034, 0x00022026,
-+              0x034, 0x00021023,
-+              0x034, 0x00020006,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0002A3AD,
-+              0x034, 0x0002938A,
-+              0x034, 0x0002818C,
-+              0x034, 0x00027189,
-+              0x034, 0x0002606D,
-+              0x034, 0x0002504C,
-+              0x034, 0x0002402C,
-+              0x034, 0x00023029,
-+              0x034, 0x00022026,
-+              0x034, 0x00021023,
-+              0x034, 0x00020006,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0002AFF4,
-+              0x034, 0x00029FF1,
-+              0x034, 0x00028FEE,
-+              0x034, 0x00027FEB,
-+              0x034, 0x00026FE8,
-+              0x034, 0x00025DEA,
-+              0x034, 0x00024CED,
-+              0x034, 0x00023CEA,
-+              0x034, 0x00022C6C,
-+              0x034, 0x00021C69,
-+              0x034, 0x00020C2B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EF,
-+              0x034, 0x000093EC,
-+              0x034, 0x0000838C,
-+              0x034, 0x000071AD,
-+              0x034, 0x000061AA,
-+              0x034, 0x000050AD,
-+              0x034, 0x000040AA,
-+              0x034, 0x0000306A,
-+              0x034, 0x0000202D,
-+              0x034, 0x0000102A,
-+              0x034, 0x00000027,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AC,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AC,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AC,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AC,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3F1,
-+              0x034, 0x000092B1,
-+              0x034, 0x000081CF,
-+              0x034, 0x00007170,
-+              0x034, 0x0000616D,
-+              0x034, 0x0000516A,
-+              0x034, 0x00004167,
-+              0x034, 0x0000302F,
-+              0x034, 0x0000202C,
-+              0x034, 0x00001029,
-+              0x034, 0x00000026,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000AFF7,
-+              0x034, 0x00009FF6,
-+              0x034, 0x00008FF3,
-+              0x034, 0x00007FF0,
-+              0x034, 0x00006FED,
-+              0x034, 0x00005FEA,
-+              0x034, 0x00004FE7,
-+              0x034, 0x00003EC7,
-+              0x034, 0x00002EC4,
-+              0x034, 0x00001D4B,
-+              0x034, 0x00000D48,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AC,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0000A3EE,
-+              0x034, 0x000093AC,
-+              0x034, 0x0000838A,
-+              0x034, 0x0000718C,
-+              0x034, 0x00006189,
-+              0x034, 0x0000506D,
-+              0x034, 0x0000406A,
-+              0x034, 0x0000302C,
-+              0x034, 0x00002029,
-+              0x034, 0x00001026,
-+              0x034, 0x00000023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0000AFF4,
-+              0x034, 0x00009FF1,
-+              0x034, 0x00008FEE,
-+              0x034, 0x00007FEB,
-+              0x034, 0x00006FE8,
-+              0x034, 0x00005DEA,
-+              0x034, 0x00004CED,
-+              0x034, 0x00003CEA,
-+              0x034, 0x00002C6C,
-+              0x034, 0x00001C69,
-+              0x034, 0x00000C2B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3EB,
-+              0x034, 0x000C938B,
-+              0x034, 0x000C81AC,
-+              0x034, 0x000C71A9,
-+              0x034, 0x000C60AC,
-+              0x034, 0x000C50A9,
-+              0x034, 0x000C402E,
-+              0x034, 0x000C302B,
-+              0x034, 0x000C2028,
-+              0x034, 0x000C100B,
-+              0x034, 0x000C0008,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3AD,
-+              0x034, 0x000C938A,
-+              0x034, 0x000C818C,
-+              0x034, 0x000C7189,
-+              0x034, 0x000C606D,
-+              0x034, 0x000C506A,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C2026,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3AD,
-+              0x034, 0x000C938A,
-+              0x034, 0x000C818C,
-+              0x034, 0x000C7189,
-+              0x034, 0x000C606D,
-+              0x034, 0x000C506A,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C2026,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3AD,
-+              0x034, 0x000C938A,
-+              0x034, 0x000C818C,
-+              0x034, 0x000C7189,
-+              0x034, 0x000C606D,
-+              0x034, 0x000C506A,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C2026,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3AD,
-+              0x034, 0x000C938A,
-+              0x034, 0x000C818C,
-+              0x034, 0x000C7189,
-+              0x034, 0x000C606D,
-+              0x034, 0x000C506A,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C2026,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3F4,
-+              0x034, 0x000C93D2,
-+              0x034, 0x000C82D1,
-+              0x034, 0x000C71F1,
-+              0x034, 0x000C61EE,
-+              0x034, 0x000C51EB,
-+              0x034, 0x000C41E8,
-+              0x034, 0x000C314B,
-+              0x034, 0x000C2148,
-+              0x034, 0x000C104B,
-+              0x034, 0x000C0048,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CAFF7,
-+              0x034, 0x000C9FF6,
-+              0x034, 0x000C8FF3,
-+              0x034, 0x000C7FF0,
-+              0x034, 0x000C6FED,
-+              0x034, 0x000C5FEA,
-+              0x034, 0x000C4FE7,
-+              0x034, 0x000C3CB1,
-+              0x034, 0x000C2CAE,
-+              0x034, 0x000C1CAB,
-+              0x034, 0x000C0CA8,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3AD,
-+              0x034, 0x000C938A,
-+              0x034, 0x000C818C,
-+              0x034, 0x000C7189,
-+              0x034, 0x000C606D,
-+              0x034, 0x000C506A,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C2026,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000CA3AD,
-+              0x034, 0x000C938A,
-+              0x034, 0x000C818C,
-+              0x034, 0x000C7189,
-+              0x034, 0x000C606D,
-+              0x034, 0x000C506A,
-+              0x034, 0x000C402C,
-+              0x034, 0x000C3029,
-+              0x034, 0x000C2026,
-+              0x034, 0x000C1009,
-+              0x034, 0x000C0006,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x000CA794,
-+              0x034, 0x000C9791,
-+              0x034, 0x000C878E,
-+              0x034, 0x000C778B,
-+              0x034, 0x000C658D,
-+              0x034, 0x000C558A,
-+              0x034, 0x000C448D,
-+              0x034, 0x000C348A,
-+              0x034, 0x000C244C,
-+              0x034, 0x000C1449,
-+              0x034, 0x000C042B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3EE,
-+              0x034, 0x000A93EB,
-+              0x034, 0x000A838B,
-+              0x034, 0x000A71AC,
-+              0x034, 0x000A61A9,
-+              0x034, 0x000A50AC,
-+              0x034, 0x000A40A9,
-+              0x034, 0x000A30A6,
-+              0x034, 0x000A202C,
-+              0x034, 0x000A1029,
-+              0x034, 0x000A0026,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3AD,
-+              0x034, 0x000A938A,
-+              0x034, 0x000A818C,
-+              0x034, 0x000A7189,
-+              0x034, 0x000A606D,
-+              0x034, 0x000A504C,
-+              0x034, 0x000A402C,
-+              0x034, 0x000A3029,
-+              0x034, 0x000A2026,
-+              0x034, 0x000A1023,
-+              0x034, 0x000A0006,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3AD,
-+              0x034, 0x000A938A,
-+              0x034, 0x000A818C,
-+              0x034, 0x000A7189,
-+              0x034, 0x000A606D,
-+              0x034, 0x000A504C,
-+              0x034, 0x000A402C,
-+              0x034, 0x000A3029,
-+              0x034, 0x000A2026,
-+              0x034, 0x000A1023,
-+              0x034, 0x000A0006,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3AD,
-+              0x034, 0x000A938A,
-+              0x034, 0x000A818C,
-+              0x034, 0x000A7189,
-+              0x034, 0x000A606D,
-+              0x034, 0x000A504C,
-+              0x034, 0x000A402C,
-+              0x034, 0x000A3029,
-+              0x034, 0x000A2026,
-+              0x034, 0x000A1023,
-+              0x034, 0x000A0006,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3AD,
-+              0x034, 0x000A938A,
-+              0x034, 0x000A818C,
-+              0x034, 0x000A7189,
-+              0x034, 0x000A606D,
-+              0x034, 0x000A504C,
-+              0x034, 0x000A402C,
-+              0x034, 0x000A3029,
-+              0x034, 0x000A2026,
-+              0x034, 0x000A1023,
-+              0x034, 0x000A0006,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3F5,
-+              0x034, 0x000A93D2,
-+              0x034, 0x000A83CE,
-+              0x034, 0x000A7290,
-+              0x034, 0x000A628D,
-+              0x034, 0x000A528A,
-+              0x034, 0x000A4287,
-+              0x034, 0x000A308D,
-+              0x034, 0x000A208A,
-+              0x034, 0x000A1087,
-+              0x034, 0x000A0048,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AAFF7,
-+              0x034, 0x000A9FF6,
-+              0x034, 0x000A8FF3,
-+              0x034, 0x000A7FF0,
-+              0x034, 0x000A6FED,
-+              0x034, 0x000A5FEA,
-+              0x034, 0x000A4FE7,
-+              0x034, 0x000A3DEA,
-+              0x034, 0x000A2DE7,
-+              0x034, 0x000A1DE4,
-+              0x034, 0x000A0D48,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3AD,
-+              0x034, 0x000A938A,
-+              0x034, 0x000A818C,
-+              0x034, 0x000A7189,
-+              0x034, 0x000A606D,
-+              0x034, 0x000A504C,
-+              0x034, 0x000A402C,
-+              0x034, 0x000A3029,
-+              0x034, 0x000A2026,
-+              0x034, 0x000A1023,
-+              0x034, 0x000A0006,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x000AA3AD,
-+              0x034, 0x000A938A,
-+              0x034, 0x000A818C,
-+              0x034, 0x000A7189,
-+              0x034, 0x000A606D,
-+              0x034, 0x000A504C,
-+              0x034, 0x000A402C,
-+              0x034, 0x000A3029,
-+              0x034, 0x000A2026,
-+              0x034, 0x000A1023,
-+              0x034, 0x000A0006,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x000AA794,
-+              0x034, 0x000A9791,
-+              0x034, 0x000A878E,
-+              0x034, 0x000A778B,
-+              0x034, 0x000A658D,
-+              0x034, 0x000A558A,
-+              0x034, 0x000A448D,
-+              0x034, 0x000A348A,
-+              0x034, 0x000A244C,
-+              0x034, 0x000A1449,
-+              0x034, 0x000A042B,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EF,
-+              0x034, 0x000893EC,
-+              0x034, 0x0008838C,
-+              0x034, 0x000871AD,
-+              0x034, 0x000861AA,
-+              0x034, 0x000850AD,
-+              0x034, 0x000840AA,
-+              0x034, 0x0008306A,
-+              0x034, 0x0008202D,
-+              0x034, 0x0008102A,
-+              0x034, 0x00080027,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AC,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AC,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AC,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AC,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3F1,
-+              0x034, 0x000892B1,
-+              0x034, 0x000881CF,
-+              0x034, 0x00087170,
-+              0x034, 0x0008616D,
-+              0x034, 0x0008516A,
-+              0x034, 0x00084167,
-+              0x034, 0x0008302F,
-+              0x034, 0x0008202C,
-+              0x034, 0x00081029,
-+              0x034, 0x00080026,
-+      0x90000009,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008AFF7,
-+              0x034, 0x00089FF6,
-+              0x034, 0x00088FF3,
-+              0x034, 0x00087FF0,
-+              0x034, 0x00086FED,
-+              0x034, 0x00085FEA,
-+              0x034, 0x00084FE7,
-+              0x034, 0x00083EC7,
-+              0x034, 0x00082EC4,
-+              0x034, 0x00081D4B,
-+              0x034, 0x00080D48,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AC,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x034, 0x0008A3EE,
-+              0x034, 0x000893AC,
-+              0x034, 0x0008838A,
-+              0x034, 0x0008718C,
-+              0x034, 0x00086189,
-+              0x034, 0x0008506D,
-+              0x034, 0x0008406A,
-+              0x034, 0x0008302C,
-+              0x034, 0x00082029,
-+              0x034, 0x00081026,
-+              0x034, 0x00080023,
-+      0xA0000000,     0x00000000,
-+              0x034, 0x0008A794,
-+              0x034, 0x00089791,
-+              0x034, 0x0008878E,
-+              0x034, 0x0008778B,
-+              0x034, 0x0008658D,
-+              0x034, 0x0008558A,
-+              0x034, 0x0008448D,
-+              0x034, 0x0008348A,
-+              0x034, 0x0008244C,
-+              0x034, 0x00081449,
-+              0x034, 0x0008042B,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x0DF, 0x00000000,
-+      0xB0000000,     0x00000000,
-+              0x018, 0x0001712A,
-+              0x0EF, 0x00000040,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x035, 0x000006CC,
-+              0x035, 0x000086CC,
-+              0x035, 0x000106CC,
-+              0x035, 0x000206CC,
-+              0x035, 0x000286CC,
-+              0x035, 0x000306CC,
-+              0x035, 0x000406CC,
-+              0x035, 0x000486CC,
-+              0x035, 0x000506CC,
-+              0x035, 0x000806CC,
-+              0x035, 0x000886CC,
-+              0x035, 0x000906CC,
-+              0x035, 0x000A06CC,
-+              0x035, 0x000A86CC,
-+              0x035, 0x000B06CC,
-+              0x035, 0x000C06CC,
-+              0x035, 0x000C86CC,
-+              0x035, 0x000D06CC,
-+      0xA0000000,     0x00000000,
-+              0x035, 0x00000484,
-+              0x035, 0x00008484,
-+              0x035, 0x00010484,
-+              0x035, 0x00020584,
-+              0x035, 0x00028584,
-+              0x035, 0x00030584,
-+              0x035, 0x00040584,
-+              0x035, 0x00048584,
-+              0x035, 0x00050584,
-+              0x035, 0x000805FB,
-+              0x035, 0x000885FB,
-+              0x035, 0x000905FB,
-+              0x035, 0x000A05FB,
-+              0x035, 0x000A85FB,
-+              0x035, 0x000B05FB,
-+              0x035, 0x000C05FB,
-+              0x035, 0x000C85FB,
-+              0x035, 0x000D05FB,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x0DF, 0x00000001,
-+      0xA0000000,     0x00000000,
-+              0x0DF, 0x00000000,
-+      0xB0000000,     0x00000000,
-+              0x018, 0x0001712A,
-+              0x0EF, 0x00000010,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000473,
-+              0x036, 0x00008473,
-+              0x036, 0x00010473,
-+              0x036, 0x00020473,
-+              0x036, 0x00028473,
-+              0x036, 0x00030473,
-+              0x036, 0x00040473,
-+              0x036, 0x00048473,
-+              0x036, 0x00050473,
-+              0x036, 0x00080473,
-+              0x036, 0x00088473,
-+              0x036, 0x00090473,
-+              0x036, 0x000A0473,
-+              0x036, 0x000A8473,
-+              0x036, 0x000B0473,
-+              0x036, 0x000C0473,
-+              0x036, 0x000C8473,
-+              0x036, 0x000D0473,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x036, 0x00000475,
-+              0x036, 0x00008475,
-+              0x036, 0x00010475,
-+              0x036, 0x00020475,
-+              0x036, 0x00028475,
-+              0x036, 0x00030475,
-+              0x036, 0x00040475,
-+              0x036, 0x00048475,
-+              0x036, 0x00050475,
-+              0x036, 0x00080475,
-+              0x036, 0x00088475,
-+              0x036, 0x00090475,
-+              0x036, 0x000A0475,
-+              0x036, 0x000A8475,
-+              0x036, 0x000B0475,
-+              0x036, 0x000C0475,
-+              0x036, 0x000C8475,
-+              0x036, 0x000D0475,
-+      0xA0000000,     0x00000000,
-+              0x036, 0x00000474,
-+              0x036, 0x00008474,
-+              0x036, 0x00010474,
-+              0x036, 0x00020474,
-+              0x036, 0x00028474,
-+              0x036, 0x00030474,
-+              0x036, 0x00040474,
-+              0x036, 0x00048474,
-+              0x036, 0x00050474,
-+              0x036, 0x00080474,
-+              0x036, 0x00088474,
-+              0x036, 0x00090474,
-+              0x036, 0x000A0474,
-+              0x036, 0x000A8474,
-+              0x036, 0x000B0474,
-+              0x036, 0x000C0474,
-+              0x036, 0x000C8474,
-+              0x036, 0x000D0474,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+              0x0EF, 0x00000004,
-+              0x037, 0x00000000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00004000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00008000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00010000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00014000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00018000,
-+              0x038, 0x0000514E,
-+              0x037, 0x0001C000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00020000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00024000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00028000,
-+              0x038, 0x0000514E,
-+              0x037, 0x0002C000,
-+              0x038, 0x0000714E,
-+              0x037, 0x00030000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00034000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00038000,
-+              0x038, 0x0000514E,
-+              0x037, 0x0003C000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00040000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00044000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00048000,
-+              0x038, 0x0000514E,
-+              0x037, 0x00080000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00084000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00088000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00090000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00094000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x00098000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x0009C000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000A0000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000A4000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000A8000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000AC000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000B0000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000B4000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000B8000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000BC000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000C0000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000C4000,
-+              0x038, 0x00005ECE,
-+              0x037, 0x000C8000,
-+              0x038, 0x00005ECE,
-+              0x0EF, 0x00000000,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000008,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x0000007D,
-+              0x03C, 0x0000047D,
-+              0x03C, 0x0000087D,
-+              0x03C, 0x0000107D,
-+              0x03C, 0x0000147D,
-+              0x03C, 0x0000187D,
-+      0xB0000000,     0x00000000,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x00000275,
-+              0x03C, 0x00000542,
-+              0x03C, 0x00000821,
-+              0x03C, 0x00001275,
-+              0x03C, 0x00001542,
-+              0x03C, 0x00001821,
-+              0x03C, 0x00002275,
-+              0x03C, 0x00002542,
-+              0x03C, 0x00002821,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027F,
-+              0x03C, 0x00000542,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127F,
-+              0x03C, 0x00001542,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227F,
-+              0x03C, 0x00002542,
-+              0x03C, 0x00002821,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027F,
-+              0x03C, 0x00000542,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127F,
-+              0x03C, 0x00001542,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227F,
-+              0x03C, 0x00002542,
-+              0x03C, 0x00002821,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027F,
-+              0x03C, 0x00000542,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127F,
-+              0x03C, 0x00001542,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227F,
-+              0x03C, 0x00002542,
-+              0x03C, 0x00002821,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027F,
-+              0x03C, 0x00000542,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127F,
-+              0x03C, 0x00001542,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227F,
-+              0x03C, 0x00002542,
-+              0x03C, 0x00002821,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027F,
-+              0x03C, 0x00000542,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127F,
-+              0x03C, 0x00001542,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227F,
-+              0x03C, 0x00002542,
-+              0x03C, 0x00002821,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027F,
-+              0x03C, 0x00000542,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127F,
-+              0x03C, 0x00001542,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227F,
-+              0x03C, 0x00002542,
-+              0x03C, 0x00002821,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x03C, 0x0000027F,
-+              0x03C, 0x00000542,
-+              0x03C, 0x00000821,
-+              0x03C, 0x0000127F,
-+              0x03C, 0x00001542,
-+              0x03C, 0x00001821,
-+              0x03C, 0x0000227F,
-+              0x03C, 0x00002542,
-+              0x03C, 0x00002821,
-+      0xA0000000,     0x00000000,
-+              0x03C, 0x0000037E,
-+              0x03C, 0x00000575,
-+              0x03C, 0x00000971,
-+              0x03C, 0x0000127E,
-+              0x03C, 0x00001575,
-+              0x03C, 0x00001871,
-+              0x03C, 0x0000217E,
-+              0x03C, 0x00002575,
-+              0x03C, 0x00002871,
-+      0xB0000000,     0x00000000,
-+              0x0EF, 0x00000000,
-+              0x061, 0x000C0D47,
-+              0x062, 0x0000133C,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x063, 0x000750E7,
-+      0xA0000000,     0x00000000,
-+              0x063, 0x0007D0E7,
-+      0xB0000000,     0x00000000,
-+              0x064, 0x00014FEC,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+              0x065, 0x000920D0,
-+      0xA0000000,     0x00000000,
-+              0x065, 0x000923FF,
-+      0xB0000000,     0x00000000,
-+              0x066, 0x00000040,
-+              0x057, 0x00050000,
-+              0x056, 0x00051DF0,
-+      0x80000001,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000002,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000003,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000004,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000005,     0x00000000,     0x40000000,     0x00000000,
-+      0x90000008,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000a,     0x00000000,     0x40000000,     0x00000000,
-+      0x9000000b,     0x00000000,     0x40000000,     0x00000000,
-+      0xA0000000,     0x00000000,
-+              0x055, 0x00082060,
-+      0xB0000000,     0x00000000,
-+};
-+
-+RTW_DECL_TABLE_RF_RADIO(rtw8814a_rf_d, D);
-+
-+static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt[] = {
-+      { 0, 0, 0, 0, 1, 36, },
-+      { 2, 0, 0, 0, 1, 32, },
-+      { 1, 0, 0, 0, 1, 32, },
-+      { 0, 0, 0, 0, 2, 36, },
-+      { 2, 0, 0, 0, 2, 32, },
-+      { 1, 0, 0, 0, 2, 32, },
-+      { 0, 0, 0, 0, 3, 36, },
-+      { 2, 0, 0, 0, 3, 32, },
-+      { 1, 0, 0, 0, 3, 32, },
-+      { 0, 0, 0, 0, 4, 36, },
-+      { 2, 0, 0, 0, 4, 32, },
-+      { 1, 0, 0, 0, 4, 32, },
-+      { 0, 0, 0, 0, 5, 36, },
-+      { 2, 0, 0, 0, 5, 32, },
-+      { 1, 0, 0, 0, 5, 32, },
-+      { 0, 0, 0, 0, 6, 36, },
-+      { 2, 0, 0, 0, 6, 32, },
-+      { 1, 0, 0, 0, 6, 32, },
-+      { 0, 0, 0, 0, 7, 36, },
-+      { 2, 0, 0, 0, 7, 32, },
-+      { 1, 0, 0, 0, 7, 32, },
-+      { 0, 0, 0, 0, 8, 36, },
-+      { 2, 0, 0, 0, 8, 32, },
-+      { 1, 0, 0, 0, 8, 32, },
-+      { 0, 0, 0, 0, 9, 36, },
-+      { 2, 0, 0, 0, 9, 32, },
-+      { 1, 0, 0, 0, 9, 32, },
-+      { 0, 0, 0, 0, 10, 36, },
-+      { 2, 0, 0, 0, 10, 32, },
-+      { 1, 0, 0, 0, 10, 32, },
-+      { 0, 0, 0, 0, 11, 36, },
-+      { 2, 0, 0, 0, 11, 32, },
-+      { 1, 0, 0, 0, 11, 32, },
-+      { 0, 0, 0, 0, 12, 63, },
-+      { 2, 0, 0, 0, 12, 32, },
-+      { 1, 0, 0, 0, 12, 32, },
-+      { 0, 0, 0, 0, 13, 63, },
-+      { 2, 0, 0, 0, 13, 32, },
-+      { 1, 0, 0, 0, 13, 32, },
-+      { 0, 0, 0, 0, 14, 63, },
-+      { 2, 0, 0, 0, 14, 63, },
-+      { 1, 0, 0, 0, 14, 32, },
-+      { 0, 0, 0, 1, 1, 34, },
-+      { 2, 0, 0, 1, 1, 32, },
-+      { 1, 0, 0, 1, 1, 32, },
-+      { 0, 0, 0, 1, 2, 36, },
-+      { 2, 0, 0, 1, 2, 32, },
-+      { 1, 0, 0, 1, 2, 32, },
-+      { 0, 0, 0, 1, 3, 36, },
-+      { 2, 0, 0, 1, 3, 32, },
-+      { 1, 0, 0, 1, 3, 32, },
-+      { 0, 0, 0, 1, 4, 36, },
-+      { 2, 0, 0, 1, 4, 32, },
-+      { 1, 0, 0, 1, 4, 32, },
-+      { 0, 0, 0, 1, 5, 36, },
-+      { 2, 0, 0, 1, 5, 32, },
-+      { 1, 0, 0, 1, 5, 32, },
-+      { 0, 0, 0, 1, 6, 36, },
-+      { 2, 0, 0, 1, 6, 32, },
-+      { 1, 0, 0, 1, 6, 32, },
-+      { 0, 0, 0, 1, 7, 36, },
-+      { 2, 0, 0, 1, 7, 32, },
-+      { 1, 0, 0, 1, 7, 32, },
-+      { 0, 0, 0, 1, 8, 36, },
-+      { 2, 0, 0, 1, 8, 32, },
-+      { 1, 0, 0, 1, 8, 32, },
-+      { 0, 0, 0, 1, 9, 36, },
-+      { 2, 0, 0, 1, 9, 32, },
-+      { 1, 0, 0, 1, 9, 32, },
-+      { 0, 0, 0, 1, 10, 36, },
-+      { 2, 0, 0, 1, 10, 32, },
-+      { 1, 0, 0, 1, 10, 32, },
-+      { 0, 0, 0, 1, 11, 32, },
-+      { 2, 0, 0, 1, 11, 32, },
-+      { 1, 0, 0, 1, 11, 32, },
-+      { 0, 0, 0, 1, 12, 63, },
-+      { 2, 0, 0, 1, 12, 32, },
-+      { 1, 0, 0, 1, 12, 32, },
-+      { 0, 0, 0, 1, 13, 63, },
-+      { 2, 0, 0, 1, 13, 32, },
-+      { 1, 0, 0, 1, 13, 32, },
-+      { 0, 0, 0, 1, 14, 63, },
-+      { 2, 0, 0, 1, 14, 63, },
-+      { 1, 0, 0, 1, 14, 63, },
-+      { 0, 0, 0, 2, 1, 34, },
-+      { 2, 0, 0, 2, 1, 32, },
-+      { 1, 0, 0, 2, 1, 32, },
-+      { 0, 0, 0, 2, 2, 36, },
-+      { 2, 0, 0, 2, 2, 32, },
-+      { 1, 0, 0, 2, 2, 32, },
-+      { 0, 0, 0, 2, 3, 36, },
-+      { 2, 0, 0, 2, 3, 32, },
-+      { 1, 0, 0, 2, 3, 32, },
-+      { 0, 0, 0, 2, 4, 36, },
-+      { 2, 0, 0, 2, 4, 32, },
-+      { 1, 0, 0, 2, 4, 32, },
-+      { 0, 0, 0, 2, 5, 36, },
-+      { 2, 0, 0, 2, 5, 32, },
-+      { 1, 0, 0, 2, 5, 32, },
-+      { 0, 0, 0, 2, 6, 36, },
-+      { 2, 0, 0, 2, 6, 32, },
-+      { 1, 0, 0, 2, 6, 32, },
-+      { 0, 0, 0, 2, 7, 36, },
-+      { 2, 0, 0, 2, 7, 32, },
-+      { 1, 0, 0, 2, 7, 32, },
-+      { 0, 0, 0, 2, 8, 36, },
-+      { 2, 0, 0, 2, 8, 32, },
-+      { 1, 0, 0, 2, 8, 32, },
-+      { 0, 0, 0, 2, 9, 36, },
-+      { 2, 0, 0, 2, 9, 32, },
-+      { 1, 0, 0, 2, 9, 32, },
-+      { 0, 0, 0, 2, 10, 36, },
-+      { 2, 0, 0, 2, 10, 32, },
-+      { 1, 0, 0, 2, 10, 32, },
-+      { 0, 0, 0, 2, 11, 32, },
-+      { 2, 0, 0, 2, 11, 32, },
-+      { 1, 0, 0, 2, 11, 32, },
-+      { 0, 0, 0, 2, 12, 63, },
-+      { 2, 0, 0, 2, 12, 32, },
-+      { 1, 0, 0, 2, 12, 32, },
-+      { 0, 0, 0, 2, 13, 63, },
-+      { 2, 0, 0, 2, 13, 32, },
-+      { 1, 0, 0, 2, 13, 32, },
-+      { 0, 0, 0, 2, 14, 63, },
-+      { 2, 0, 0, 2, 14, 63, },
-+      { 1, 0, 0, 2, 14, 63, },
-+      { 0, 0, 0, 3, 1, 32, },
-+      { 2, 0, 0, 3, 1, 30, },
-+      { 1, 0, 0, 3, 1, 30, },
-+      { 0, 0, 0, 3, 2, 34, },
-+      { 2, 0, 0, 3, 2, 30, },
-+      { 1, 0, 0, 3, 2, 30, },
-+      { 0, 0, 0, 3, 3, 34, },
-+      { 2, 0, 0, 3, 3, 30, },
-+      { 1, 0, 0, 3, 3, 30, },
-+      { 0, 0, 0, 3, 4, 34, },
-+      { 2, 0, 0, 3, 4, 30, },
-+      { 1, 0, 0, 3, 4, 30, },
-+      { 0, 0, 0, 3, 5, 34, },
-+      { 2, 0, 0, 3, 5, 30, },
-+      { 1, 0, 0, 3, 5, 30, },
-+      { 0, 0, 0, 3, 6, 34, },
-+      { 2, 0, 0, 3, 6, 30, },
-+      { 1, 0, 0, 3, 6, 30, },
-+      { 0, 0, 0, 3, 7, 34, },
-+      { 2, 0, 0, 3, 7, 30, },
-+      { 1, 0, 0, 3, 7, 30, },
-+      { 0, 0, 0, 3, 8, 34, },
-+      { 2, 0, 0, 3, 8, 30, },
-+      { 1, 0, 0, 3, 8, 30, },
-+      { 0, 0, 0, 3, 9, 34, },
-+      { 2, 0, 0, 3, 9, 30, },
-+      { 1, 0, 0, 3, 9, 30, },
-+      { 0, 0, 0, 3, 10, 34, },
-+      { 2, 0, 0, 3, 10, 30, },
-+      { 1, 0, 0, 3, 10, 30, },
-+      { 0, 0, 0, 3, 11, 30, },
-+      { 2, 0, 0, 3, 11, 30, },
-+      { 1, 0, 0, 3, 11, 30, },
-+      { 0, 0, 0, 3, 12, 63, },
-+      { 2, 0, 0, 3, 12, 30, },
-+      { 1, 0, 0, 3, 12, 30, },
-+      { 0, 0, 0, 3, 13, 63, },
-+      { 2, 0, 0, 3, 13, 30, },
-+      { 1, 0, 0, 3, 13, 30, },
-+      { 0, 0, 0, 3, 14, 63, },
-+      { 2, 0, 0, 3, 14, 63, },
-+      { 1, 0, 0, 3, 14, 63, },
-+      { 0, 0, 0, 6, 1, 30, },
-+      { 2, 0, 0, 6, 1, 28, },
-+      { 1, 0, 0, 6, 1, 28, },
-+      { 0, 0, 0, 6, 2, 32, },
-+      { 2, 0, 0, 6, 2, 28, },
-+      { 1, 0, 0, 6, 2, 28, },
-+      { 0, 0, 0, 6, 3, 32, },
-+      { 2, 0, 0, 6, 3, 28, },
-+      { 1, 0, 0, 6, 3, 28, },
-+      { 0, 0, 0, 6, 4, 32, },
-+      { 2, 0, 0, 6, 4, 28, },
-+      { 1, 0, 0, 6, 4, 28, },
-+      { 0, 0, 0, 6, 5, 32, },
-+      { 2, 0, 0, 6, 5, 28, },
-+      { 1, 0, 0, 6, 5, 28, },
-+      { 0, 0, 0, 6, 6, 32, },
-+      { 2, 0, 0, 6, 6, 28, },
-+      { 1, 0, 0, 6, 6, 28, },
-+      { 0, 0, 0, 6, 7, 32, },
-+      { 2, 0, 0, 6, 7, 28, },
-+      { 1, 0, 0, 6, 7, 28, },
-+      { 0, 0, 0, 6, 8, 32, },
-+      { 2, 0, 0, 6, 8, 28, },
-+      { 1, 0, 0, 6, 8, 28, },
-+      { 0, 0, 0, 6, 9, 32, },
-+      { 2, 0, 0, 6, 9, 28, },
-+      { 1, 0, 0, 6, 9, 28, },
-+      { 0, 0, 0, 6, 10, 32, },
-+      { 2, 0, 0, 6, 10, 28, },
-+      { 1, 0, 0, 6, 10, 28, },
-+      { 0, 0, 0, 6, 11, 28, },
-+      { 2, 0, 0, 6, 11, 28, },
-+      { 1, 0, 0, 6, 11, 28, },
-+      { 0, 0, 0, 6, 12, 63, },
-+      { 2, 0, 0, 6, 12, 28, },
-+      { 1, 0, 0, 6, 12, 28, },
-+      { 0, 0, 0, 6, 13, 63, },
-+      { 2, 0, 0, 6, 13, 28, },
-+      { 1, 0, 0, 6, 13, 28, },
-+      { 0, 0, 0, 6, 14, 63, },
-+      { 2, 0, 0, 6, 14, 63, },
-+      { 1, 0, 0, 6, 14, 63, },
-+      { 0, 0, 0, 7, 1, 28, },
-+      { 2, 0, 0, 7, 1, 26, },
-+      { 1, 0, 0, 7, 1, 26, },
-+      { 0, 0, 0, 7, 2, 30, },
-+      { 2, 0, 0, 7, 2, 26, },
-+      { 1, 0, 0, 7, 2, 26, },
-+      { 0, 0, 0, 7, 3, 30, },
-+      { 2, 0, 0, 7, 3, 26, },
-+      { 1, 0, 0, 7, 3, 26, },
-+      { 0, 0, 0, 7, 4, 30, },
-+      { 2, 0, 0, 7, 4, 26, },
-+      { 1, 0, 0, 7, 4, 26, },
-+      { 0, 0, 0, 7, 5, 30, },
-+      { 2, 0, 0, 7, 5, 26, },
-+      { 1, 0, 0, 7, 5, 26, },
-+      { 0, 0, 0, 7, 6, 30, },
-+      { 2, 0, 0, 7, 6, 26, },
-+      { 1, 0, 0, 7, 6, 26, },
-+      { 0, 0, 0, 7, 7, 30, },
-+      { 2, 0, 0, 7, 7, 26, },
-+      { 1, 0, 0, 7, 7, 26, },
-+      { 0, 0, 0, 7, 8, 30, },
-+      { 2, 0, 0, 7, 8, 26, },
-+      { 1, 0, 0, 7, 8, 26, },
-+      { 0, 0, 0, 7, 9, 30, },
-+      { 2, 0, 0, 7, 9, 26, },
-+      { 1, 0, 0, 7, 9, 26, },
-+      { 0, 0, 0, 7, 10, 30, },
-+      { 2, 0, 0, 7, 10, 26, },
-+      { 1, 0, 0, 7, 10, 26, },
-+      { 0, 0, 0, 7, 11, 26, },
-+      { 2, 0, 0, 7, 11, 26, },
-+      { 1, 0, 0, 7, 11, 26, },
-+      { 0, 0, 0, 7, 12, 63, },
-+      { 2, 0, 0, 7, 12, 26, },
-+      { 1, 0, 0, 7, 12, 26, },
-+      { 0, 0, 0, 7, 13, 63, },
-+      { 2, 0, 0, 7, 13, 26, },
-+      { 1, 0, 0, 7, 13, 26, },
-+      { 0, 0, 0, 7, 14, 63, },
-+      { 2, 0, 0, 7, 14, 63, },
-+      { 1, 0, 0, 7, 14, 63, },
-+      { 0, 0, 1, 2, 1, 63, },
-+      { 2, 0, 1, 2, 1, 63, },
-+      { 1, 0, 1, 2, 1, 63, },
-+      { 0, 0, 1, 2, 2, 63, },
-+      { 2, 0, 1, 2, 2, 63, },
-+      { 1, 0, 1, 2, 2, 63, },
-+      { 0, 0, 1, 2, 3, 32, },
-+      { 2, 0, 1, 2, 3, 32, },
-+      { 1, 0, 1, 2, 3, 32, },
-+      { 0, 0, 1, 2, 4, 36, },
-+      { 2, 0, 1, 2, 4, 32, },
-+      { 1, 0, 1, 2, 4, 32, },
-+      { 0, 0, 1, 2, 5, 36, },
-+      { 2, 0, 1, 2, 5, 32, },
-+      { 1, 0, 1, 2, 5, 32, },
-+      { 0, 0, 1, 2, 6, 36, },
-+      { 2, 0, 1, 2, 6, 32, },
-+      { 1, 0, 1, 2, 6, 32, },
-+      { 0, 0, 1, 2, 7, 36, },
-+      { 2, 0, 1, 2, 7, 32, },
-+      { 1, 0, 1, 2, 7, 32, },
-+      { 0, 0, 1, 2, 8, 36, },
-+      { 2, 0, 1, 2, 8, 32, },
-+      { 1, 0, 1, 2, 8, 32, },
-+      { 0, 0, 1, 2, 9, 36, },
-+      { 2, 0, 1, 2, 9, 32, },
-+      { 1, 0, 1, 2, 9, 32, },
-+      { 0, 0, 1, 2, 10, 36, },
-+      { 2, 0, 1, 2, 10, 32, },
-+      { 1, 0, 1, 2, 10, 32, },
-+      { 0, 0, 1, 2, 11, 32, },
-+      { 2, 0, 1, 2, 11, 32, },
-+      { 1, 0, 1, 2, 11, 32, },
-+      { 0, 0, 1, 2, 12, 63, },
-+      { 2, 0, 1, 2, 12, 32, },
-+      { 1, 0, 1, 2, 12, 32, },
-+      { 0, 0, 1, 2, 13, 63, },
-+      { 2, 0, 1, 2, 13, 32, },
-+      { 1, 0, 1, 2, 13, 32, },
-+      { 0, 0, 1, 2, 14, 63, },
-+      { 2, 0, 1, 2, 14, 63, },
-+      { 1, 0, 1, 2, 14, 63, },
-+      { 0, 0, 1, 3, 1, 63, },
-+      { 2, 0, 1, 3, 1, 63, },
-+      { 1, 0, 1, 3, 1, 63, },
-+      { 0, 0, 1, 3, 2, 63, },
-+      { 2, 0, 1, 3, 2, 63, },
-+      { 1, 0, 1, 3, 2, 63, },
-+      { 0, 0, 1, 3, 3, 30, },
-+      { 2, 0, 1, 3, 3, 30, },
-+      { 1, 0, 1, 3, 3, 30, },
-+      { 0, 0, 1, 3, 4, 34, },
-+      { 2, 0, 1, 3, 4, 30, },
-+      { 1, 0, 1, 3, 4, 30, },
-+      { 0, 0, 1, 3, 5, 34, },
-+      { 2, 0, 1, 3, 5, 30, },
-+      { 1, 0, 1, 3, 5, 30, },
-+      { 0, 0, 1, 3, 6, 34, },
-+      { 2, 0, 1, 3, 6, 30, },
-+      { 1, 0, 1, 3, 6, 30, },
-+      { 0, 0, 1, 3, 7, 34, },
-+      { 2, 0, 1, 3, 7, 30, },
-+      { 1, 0, 1, 3, 7, 30, },
-+      { 0, 0, 1, 3, 8, 34, },
-+      { 2, 0, 1, 3, 8, 30, },
-+      { 1, 0, 1, 3, 8, 30, },
-+      { 0, 0, 1, 3, 9, 34, },
-+      { 2, 0, 1, 3, 9, 30, },
-+      { 1, 0, 1, 3, 9, 30, },
-+      { 0, 0, 1, 3, 10, 34, },
-+      { 2, 0, 1, 3, 10, 30, },
-+      { 1, 0, 1, 3, 10, 30, },
-+      { 0, 0, 1, 3, 11, 30, },
-+      { 2, 0, 1, 3, 11, 30, },
-+      { 1, 0, 1, 3, 11, 30, },
-+      { 0, 0, 1, 3, 12, 63, },
-+      { 2, 0, 1, 3, 12, 30, },
-+      { 1, 0, 1, 3, 12, 30, },
-+      { 0, 0, 1, 3, 13, 63, },
-+      { 2, 0, 1, 3, 13, 30, },
-+      { 1, 0, 1, 3, 13, 30, },
-+      { 0, 0, 1, 3, 14, 63, },
-+      { 2, 0, 1, 3, 14, 63, },
-+      { 1, 0, 1, 3, 14, 63, },
-+      { 0, 0, 1, 6, 1, 63, },
-+      { 2, 0, 1, 6, 1, 63, },
-+      { 1, 0, 1, 6, 1, 63, },
-+      { 0, 0, 1, 6, 2, 63, },
-+      { 2, 0, 1, 6, 2, 63, },
-+      { 1, 0, 1, 6, 2, 63, },
-+      { 0, 0, 1, 6, 3, 28, },
-+      { 2, 0, 1, 6, 3, 28, },
-+      { 1, 0, 1, 6, 3, 28, },
-+      { 0, 0, 1, 6, 4, 32, },
-+      { 2, 0, 1, 6, 4, 28, },
-+      { 1, 0, 1, 6, 4, 28, },
-+      { 0, 0, 1, 6, 5, 32, },
-+      { 2, 0, 1, 6, 5, 28, },
-+      { 1, 0, 1, 6, 5, 28, },
-+      { 0, 0, 1, 6, 6, 32, },
-+      { 2, 0, 1, 6, 6, 28, },
-+      { 1, 0, 1, 6, 6, 28, },
-+      { 0, 0, 1, 6, 7, 32, },
-+      { 2, 0, 1, 6, 7, 28, },
-+      { 1, 0, 1, 6, 7, 28, },
-+      { 0, 0, 1, 6, 8, 32, },
-+      { 2, 0, 1, 6, 8, 28, },
-+      { 1, 0, 1, 6, 8, 28, },
-+      { 0, 0, 1, 6, 9, 32, },
-+      { 2, 0, 1, 6, 9, 28, },
-+      { 1, 0, 1, 6, 9, 28, },
-+      { 0, 0, 1, 6, 10, 32, },
-+      { 2, 0, 1, 6, 10, 28, },
-+      { 1, 0, 1, 6, 10, 28, },
-+      { 0, 0, 1, 6, 11, 28, },
-+      { 2, 0, 1, 6, 11, 28, },
-+      { 1, 0, 1, 6, 11, 28, },
-+      { 0, 0, 1, 6, 12, 63, },
-+      { 2, 0, 1, 6, 12, 28, },
-+      { 1, 0, 1, 6, 12, 28, },
-+      { 0, 0, 1, 6, 13, 63, },
-+      { 2, 0, 1, 6, 13, 28, },
-+      { 1, 0, 1, 6, 13, 28, },
-+      { 0, 0, 1, 6, 14, 63, },
-+      { 2, 0, 1, 6, 14, 63, },
-+      { 1, 0, 1, 6, 14, 63, },
-+      { 0, 0, 1, 7, 1, 63, },
-+      { 2, 0, 1, 7, 1, 63, },
-+      { 1, 0, 1, 7, 1, 63, },
-+      { 0, 0, 1, 7, 2, 63, },
-+      { 2, 0, 1, 7, 2, 63, },
-+      { 1, 0, 1, 7, 2, 63, },
-+      { 0, 0, 1, 7, 3, 26, },
-+      { 2, 0, 1, 7, 3, 26, },
-+      { 1, 0, 1, 7, 3, 26, },
-+      { 0, 0, 1, 7, 4, 30, },
-+      { 2, 0, 1, 7, 4, 26, },
-+      { 1, 0, 1, 7, 4, 26, },
-+      { 0, 0, 1, 7, 5, 30, },
-+      { 2, 0, 1, 7, 5, 26, },
-+      { 1, 0, 1, 7, 5, 26, },
-+      { 0, 0, 1, 7, 6, 30, },
-+      { 2, 0, 1, 7, 6, 26, },
-+      { 1, 0, 1, 7, 6, 26, },
-+      { 0, 0, 1, 7, 7, 30, },
-+      { 2, 0, 1, 7, 7, 26, },
-+      { 1, 0, 1, 7, 7, 26, },
-+      { 0, 0, 1, 7, 8, 30, },
-+      { 2, 0, 1, 7, 8, 26, },
-+      { 1, 0, 1, 7, 8, 26, },
-+      { 0, 0, 1, 7, 9, 30, },
-+      { 2, 0, 1, 7, 9, 26, },
-+      { 1, 0, 1, 7, 9, 26, },
-+      { 0, 0, 1, 7, 10, 30, },
-+      { 2, 0, 1, 7, 10, 26, },
-+      { 1, 0, 1, 7, 10, 26, },
-+      { 0, 0, 1, 7, 11, 26, },
-+      { 2, 0, 1, 7, 11, 26, },
-+      { 1, 0, 1, 7, 11, 26, },
-+      { 0, 0, 1, 7, 12, 63, },
-+      { 2, 0, 1, 7, 12, 26, },
-+      { 1, 0, 1, 7, 12, 26, },
-+      { 0, 0, 1, 7, 13, 63, },
-+      { 2, 0, 1, 7, 13, 26, },
-+      { 1, 0, 1, 7, 13, 26, },
-+      { 0, 0, 1, 7, 14, 63, },
-+      { 2, 0, 1, 7, 14, 63, },
-+      { 1, 0, 1, 7, 14, 63, },
-+      { 0, 1, 0, 1, 36, 30, },
-+      { 2, 1, 0, 1, 36, 32, },
-+      { 1, 1, 0, 1, 36, 32, },
-+      { 0, 1, 0, 1, 40, 30, },
-+      { 2, 1, 0, 1, 40, 32, },
-+      { 1, 1, 0, 1, 40, 32, },
-+      { 0, 1, 0, 1, 44, 30, },
-+      { 2, 1, 0, 1, 44, 32, },
-+      { 1, 1, 0, 1, 44, 32, },
-+      { 0, 1, 0, 1, 48, 30, },
-+      { 2, 1, 0, 1, 48, 32, },
-+      { 1, 1, 0, 1, 48, 32, },
-+      { 0, 1, 0, 1, 52, 36, },
-+      { 2, 1, 0, 1, 52, 32, },
-+      { 1, 1, 0, 1, 52, 32, },
-+      { 0, 1, 0, 1, 56, 34, },
-+      { 2, 1, 0, 1, 56, 32, },
-+      { 1, 1, 0, 1, 56, 32, },
-+      { 0, 1, 0, 1, 60, 32, },
-+      { 2, 1, 0, 1, 60, 32, },
-+      { 1, 1, 0, 1, 60, 32, },
-+      { 0, 1, 0, 1, 64, 28, },
-+      { 2, 1, 0, 1, 64, 32, },
-+      { 1, 1, 0, 1, 64, 32, },
-+      { 0, 1, 0, 1, 100, 30, },
-+      { 2, 1, 0, 1, 100, 32, },
-+      { 1, 1, 0, 1, 100, 32, },
-+      { 0, 1, 0, 1, 104, 30, },
-+      { 2, 1, 0, 1, 104, 32, },
-+      { 1, 1, 0, 1, 104, 32, },
-+      { 0, 1, 0, 1, 108, 32, },
-+      { 2, 1, 0, 1, 108, 32, },
-+      { 1, 1, 0, 1, 108, 32, },
-+      { 0, 1, 0, 1, 112, 34, },
-+      { 2, 1, 0, 1, 112, 32, },
-+      { 1, 1, 0, 1, 112, 32, },
-+      { 0, 1, 0, 1, 116, 34, },
-+      { 2, 1, 0, 1, 116, 32, },
-+      { 1, 1, 0, 1, 116, 32, },
-+      { 0, 1, 0, 1, 120, 36, },
-+      { 2, 1, 0, 1, 120, 32, },
-+      { 1, 1, 0, 1, 120, 32, },
-+      { 0, 1, 0, 1, 124, 34, },
-+      { 2, 1, 0, 1, 124, 32, },
-+      { 1, 1, 0, 1, 124, 32, },
-+      { 0, 1, 0, 1, 128, 32, },
-+      { 2, 1, 0, 1, 128, 32, },
-+      { 1, 1, 0, 1, 128, 32, },
-+      { 0, 1, 0, 1, 132, 30, },
-+      { 2, 1, 0, 1, 132, 32, },
-+      { 1, 1, 0, 1, 132, 32, },
-+      { 0, 1, 0, 1, 136, 30, },
-+      { 2, 1, 0, 1, 136, 32, },
-+      { 1, 1, 0, 1, 136, 32, },
-+      { 0, 1, 0, 1, 140, 28, },
-+      { 2, 1, 0, 1, 140, 32, },
-+      { 1, 1, 0, 1, 140, 32, },
-+      { 0, 1, 0, 1, 149, 36, },
-+      { 2, 1, 0, 1, 149, 32, },
-+      { 1, 1, 0, 1, 149, 63, },
-+      { 0, 1, 0, 1, 153, 36, },
-+      { 2, 1, 0, 1, 153, 32, },
-+      { 1, 1, 0, 1, 153, 63, },
-+      { 0, 1, 0, 1, 157, 36, },
-+      { 2, 1, 0, 1, 157, 32, },
-+      { 1, 1, 0, 1, 157, 63, },
-+      { 0, 1, 0, 1, 161, 36, },
-+      { 2, 1, 0, 1, 161, 32, },
-+      { 1, 1, 0, 1, 161, 63, },
-+      { 0, 1, 0, 1, 165, 36, },
-+      { 2, 1, 0, 1, 165, 32, },
-+      { 1, 1, 0, 1, 165, 63, },
-+      { 0, 1, 0, 2, 36, 30, },
-+      { 2, 1, 0, 2, 36, 32, },
-+      { 1, 1, 0, 2, 36, 32, },
-+      { 0, 1, 0, 2, 40, 30, },
-+      { 2, 1, 0, 2, 40, 32, },
-+      { 1, 1, 0, 2, 40, 32, },
-+      { 0, 1, 0, 2, 44, 30, },
-+      { 2, 1, 0, 2, 44, 32, },
-+      { 1, 1, 0, 2, 44, 32, },
-+      { 0, 1, 0, 2, 48, 30, },
-+      { 2, 1, 0, 2, 48, 32, },
-+      { 1, 1, 0, 2, 48, 32, },
-+      { 0, 1, 0, 2, 52, 36, },
-+      { 2, 1, 0, 2, 52, 32, },
-+      { 1, 1, 0, 2, 52, 32, },
-+      { 0, 1, 0, 2, 56, 34, },
-+      { 2, 1, 0, 2, 56, 32, },
-+      { 1, 1, 0, 2, 56, 32, },
-+      { 0, 1, 0, 2, 60, 32, },
-+      { 2, 1, 0, 2, 60, 32, },
-+      { 1, 1, 0, 2, 60, 32, },
-+      { 0, 1, 0, 2, 64, 28, },
-+      { 2, 1, 0, 2, 64, 32, },
-+      { 1, 1, 0, 2, 64, 32, },
-+      { 0, 1, 0, 2, 100, 30, },
-+      { 2, 1, 0, 2, 100, 32, },
-+      { 1, 1, 0, 2, 100, 32, },
-+      { 0, 1, 0, 2, 104, 30, },
-+      { 2, 1, 0, 2, 104, 32, },
-+      { 1, 1, 0, 2, 104, 32, },
-+      { 0, 1, 0, 2, 108, 32, },
-+      { 2, 1, 0, 2, 108, 32, },
-+      { 1, 1, 0, 2, 108, 32, },
-+      { 0, 1, 0, 2, 112, 34, },
-+      { 2, 1, 0, 2, 112, 32, },
-+      { 1, 1, 0, 2, 112, 32, },
-+      { 0, 1, 0, 2, 116, 34, },
-+      { 2, 1, 0, 2, 116, 32, },
-+      { 1, 1, 0, 2, 116, 32, },
-+      { 0, 1, 0, 2, 120, 36, },
-+      { 2, 1, 0, 2, 120, 32, },
-+      { 1, 1, 0, 2, 120, 32, },
-+      { 0, 1, 0, 2, 124, 34, },
-+      { 2, 1, 0, 2, 124, 32, },
-+      { 1, 1, 0, 2, 124, 32, },
-+      { 0, 1, 0, 2, 128, 32, },
-+      { 2, 1, 0, 2, 128, 32, },
-+      { 1, 1, 0, 2, 128, 32, },
-+      { 0, 1, 0, 2, 132, 30, },
-+      { 2, 1, 0, 2, 132, 32, },
-+      { 1, 1, 0, 2, 132, 32, },
-+      { 0, 1, 0, 2, 136, 30, },
-+      { 2, 1, 0, 2, 136, 32, },
-+      { 1, 1, 0, 2, 136, 32, },
-+      { 0, 1, 0, 2, 140, 28, },
-+      { 2, 1, 0, 2, 140, 32, },
-+      { 1, 1, 0, 2, 140, 32, },
-+      { 0, 1, 0, 2, 149, 36, },
-+      { 2, 1, 0, 2, 149, 32, },
-+      { 1, 1, 0, 2, 149, 63, },
-+      { 0, 1, 0, 2, 153, 36, },
-+      { 2, 1, 0, 2, 153, 32, },
-+      { 1, 1, 0, 2, 153, 63, },
-+      { 0, 1, 0, 2, 157, 36, },
-+      { 2, 1, 0, 2, 157, 32, },
-+      { 1, 1, 0, 2, 157, 63, },
-+      { 0, 1, 0, 2, 161, 36, },
-+      { 2, 1, 0, 2, 161, 32, },
-+      { 1, 1, 0, 2, 161, 63, },
-+      { 0, 1, 0, 2, 165, 36, },
-+      { 2, 1, 0, 2, 165, 32, },
-+      { 1, 1, 0, 2, 165, 63, },
-+      { 0, 1, 0, 3, 36, 28, },
-+      { 2, 1, 0, 3, 36, 30, },
-+      { 1, 1, 0, 3, 36, 30, },
-+      { 0, 1, 0, 3, 40, 28, },
-+      { 2, 1, 0, 3, 40, 30, },
-+      { 1, 1, 0, 3, 40, 30, },
-+      { 0, 1, 0, 3, 44, 28, },
-+      { 2, 1, 0, 3, 44, 30, },
-+      { 1, 1, 0, 3, 44, 30, },
-+      { 0, 1, 0, 3, 48, 28, },
-+      { 2, 1, 0, 3, 48, 30, },
-+      { 1, 1, 0, 3, 48, 30, },
-+      { 0, 1, 0, 3, 52, 34, },
-+      { 2, 1, 0, 3, 52, 30, },
-+      { 1, 1, 0, 3, 52, 30, },
-+      { 0, 1, 0, 3, 56, 32, },
-+      { 2, 1, 0, 3, 56, 30, },
-+      { 1, 1, 0, 3, 56, 30, },
-+      { 0, 1, 0, 3, 60, 30, },
-+      { 2, 1, 0, 3, 60, 30, },
-+      { 1, 1, 0, 3, 60, 30, },
-+      { 0, 1, 0, 3, 64, 26, },
-+      { 2, 1, 0, 3, 64, 30, },
-+      { 1, 1, 0, 3, 64, 30, },
-+      { 0, 1, 0, 3, 100, 28, },
-+      { 2, 1, 0, 3, 100, 30, },
-+      { 1, 1, 0, 3, 100, 30, },
-+      { 0, 1, 0, 3, 104, 28, },
-+      { 2, 1, 0, 3, 104, 30, },
-+      { 1, 1, 0, 3, 104, 30, },
-+      { 0, 1, 0, 3, 108, 30, },
-+      { 2, 1, 0, 3, 108, 30, },
-+      { 1, 1, 0, 3, 108, 30, },
-+      { 0, 1, 0, 3, 112, 32, },
-+      { 2, 1, 0, 3, 112, 30, },
-+      { 1, 1, 0, 3, 112, 30, },
-+      { 0, 1, 0, 3, 116, 32, },
-+      { 2, 1, 0, 3, 116, 30, },
-+      { 1, 1, 0, 3, 116, 30, },
-+      { 0, 1, 0, 3, 120, 34, },
-+      { 2, 1, 0, 3, 120, 30, },
-+      { 1, 1, 0, 3, 120, 30, },
-+      { 0, 1, 0, 3, 124, 32, },
-+      { 2, 1, 0, 3, 124, 30, },
-+      { 1, 1, 0, 3, 124, 30, },
-+      { 0, 1, 0, 3, 128, 30, },
-+      { 2, 1, 0, 3, 128, 30, },
-+      { 1, 1, 0, 3, 128, 30, },
-+      { 0, 1, 0, 3, 132, 28, },
-+      { 2, 1, 0, 3, 132, 30, },
-+      { 1, 1, 0, 3, 132, 30, },
-+      { 0, 1, 0, 3, 136, 28, },
-+      { 2, 1, 0, 3, 136, 30, },
-+      { 1, 1, 0, 3, 136, 30, },
-+      { 0, 1, 0, 3, 140, 26, },
-+      { 2, 1, 0, 3, 140, 30, },
-+      { 1, 1, 0, 3, 140, 30, },
-+      { 0, 1, 0, 3, 149, 34, },
-+      { 2, 1, 0, 3, 149, 30, },
-+      { 1, 1, 0, 3, 149, 63, },
-+      { 0, 1, 0, 3, 153, 34, },
-+      { 2, 1, 0, 3, 153, 30, },
-+      { 1, 1, 0, 3, 153, 63, },
-+      { 0, 1, 0, 3, 157, 34, },
-+      { 2, 1, 0, 3, 157, 30, },
-+      { 1, 1, 0, 3, 157, 63, },
-+      { 0, 1, 0, 3, 161, 34, },
-+      { 2, 1, 0, 3, 161, 30, },
-+      { 1, 1, 0, 3, 161, 63, },
-+      { 0, 1, 0, 3, 165, 34, },
-+      { 2, 1, 0, 3, 165, 30, },
-+      { 1, 1, 0, 3, 165, 63, },
-+      { 0, 1, 0, 6, 36, 26, },
-+      { 2, 1, 0, 6, 36, 28, },
-+      { 1, 1, 0, 6, 36, 28, },
-+      { 0, 1, 0, 6, 40, 26, },
-+      { 2, 1, 0, 6, 40, 28, },
-+      { 1, 1, 0, 6, 40, 28, },
-+      { 0, 1, 0, 6, 44, 26, },
-+      { 2, 1, 0, 6, 44, 28, },
-+      { 1, 1, 0, 6, 44, 28, },
-+      { 0, 1, 0, 6, 48, 26, },
-+      { 2, 1, 0, 6, 48, 28, },
-+      { 1, 1, 0, 6, 48, 28, },
-+      { 0, 1, 0, 6, 52, 32, },
-+      { 2, 1, 0, 6, 52, 28, },
-+      { 1, 1, 0, 6, 52, 28, },
-+      { 0, 1, 0, 6, 56, 30, },
-+      { 2, 1, 0, 6, 56, 28, },
-+      { 1, 1, 0, 6, 56, 28, },
-+      { 0, 1, 0, 6, 60, 28, },
-+      { 2, 1, 0, 6, 60, 28, },
-+      { 1, 1, 0, 6, 60, 28, },
-+      { 0, 1, 0, 6, 64, 24, },
-+      { 2, 1, 0, 6, 64, 28, },
-+      { 1, 1, 0, 6, 64, 28, },
-+      { 0, 1, 0, 6, 100, 26, },
-+      { 2, 1, 0, 6, 100, 28, },
-+      { 1, 1, 0, 6, 100, 28, },
-+      { 0, 1, 0, 6, 104, 26, },
-+      { 2, 1, 0, 6, 104, 28, },
-+      { 1, 1, 0, 6, 104, 28, },
-+      { 0, 1, 0, 6, 108, 28, },
-+      { 2, 1, 0, 6, 108, 28, },
-+      { 1, 1, 0, 6, 108, 28, },
-+      { 0, 1, 0, 6, 112, 30, },
-+      { 2, 1, 0, 6, 112, 28, },
-+      { 1, 1, 0, 6, 112, 28, },
-+      { 0, 1, 0, 6, 116, 30, },
-+      { 2, 1, 0, 6, 116, 28, },
-+      { 1, 1, 0, 6, 116, 28, },
-+      { 0, 1, 0, 6, 120, 32, },
-+      { 2, 1, 0, 6, 120, 28, },
-+      { 1, 1, 0, 6, 120, 28, },
-+      { 0, 1, 0, 6, 124, 30, },
-+      { 2, 1, 0, 6, 124, 28, },
-+      { 1, 1, 0, 6, 124, 28, },
-+      { 0, 1, 0, 6, 128, 28, },
-+      { 2, 1, 0, 6, 128, 28, },
-+      { 1, 1, 0, 6, 128, 28, },
-+      { 0, 1, 0, 6, 132, 26, },
-+      { 2, 1, 0, 6, 132, 28, },
-+      { 1, 1, 0, 6, 132, 28, },
-+      { 0, 1, 0, 6, 136, 26, },
-+      { 2, 1, 0, 6, 136, 28, },
-+      { 1, 1, 0, 6, 136, 28, },
-+      { 0, 1, 0, 6, 140, 24, },
-+      { 2, 1, 0, 6, 140, 28, },
-+      { 1, 1, 0, 6, 140, 28, },
-+      { 0, 1, 0, 6, 149, 32, },
-+      { 2, 1, 0, 6, 149, 28, },
-+      { 1, 1, 0, 6, 149, 63, },
-+      { 0, 1, 0, 6, 153, 32, },
-+      { 2, 1, 0, 6, 153, 28, },
-+      { 1, 1, 0, 6, 153, 63, },
-+      { 0, 1, 0, 6, 157, 32, },
-+      { 2, 1, 0, 6, 157, 28, },
-+      { 1, 1, 0, 6, 157, 63, },
-+      { 0, 1, 0, 6, 161, 32, },
-+      { 2, 1, 0, 6, 161, 28, },
-+      { 1, 1, 0, 6, 161, 63, },
-+      { 0, 1, 0, 6, 165, 32, },
-+      { 2, 1, 0, 6, 165, 28, },
-+      { 1, 1, 0, 6, 165, 63, },
-+      { 0, 1, 0, 7, 36, 24, },
-+      { 2, 1, 0, 7, 36, 26, },
-+      { 1, 1, 0, 7, 36, 26, },
-+      { 0, 1, 0, 7, 40, 24, },
-+      { 2, 1, 0, 7, 40, 26, },
-+      { 1, 1, 0, 7, 40, 26, },
-+      { 0, 1, 0, 7, 44, 24, },
-+      { 2, 1, 0, 7, 44, 26, },
-+      { 1, 1, 0, 7, 44, 26, },
-+      { 0, 1, 0, 7, 48, 24, },
-+      { 2, 1, 0, 7, 48, 26, },
-+      { 1, 1, 0, 7, 48, 26, },
-+      { 0, 1, 0, 7, 52, 30, },
-+      { 2, 1, 0, 7, 52, 26, },
-+      { 1, 1, 0, 7, 52, 26, },
-+      { 0, 1, 0, 7, 56, 28, },
-+      { 2, 1, 0, 7, 56, 26, },
-+      { 1, 1, 0, 7, 56, 26, },
-+      { 0, 1, 0, 7, 60, 26, },
-+      { 2, 1, 0, 7, 60, 26, },
-+      { 1, 1, 0, 7, 60, 26, },
-+      { 0, 1, 0, 7, 64, 22, },
-+      { 2, 1, 0, 7, 64, 26, },
-+      { 1, 1, 0, 7, 64, 26, },
-+      { 0, 1, 0, 7, 100, 24, },
-+      { 2, 1, 0, 7, 100, 26, },
-+      { 1, 1, 0, 7, 100, 26, },
-+      { 0, 1, 0, 7, 104, 24, },
-+      { 2, 1, 0, 7, 104, 26, },
-+      { 1, 1, 0, 7, 104, 26, },
-+      { 0, 1, 0, 7, 108, 26, },
-+      { 2, 1, 0, 7, 108, 26, },
-+      { 1, 1, 0, 7, 108, 26, },
-+      { 0, 1, 0, 7, 112, 28, },
-+      { 2, 1, 0, 7, 112, 26, },
-+      { 1, 1, 0, 7, 112, 26, },
-+      { 0, 1, 0, 7, 116, 28, },
-+      { 2, 1, 0, 7, 116, 26, },
-+      { 1, 1, 0, 7, 116, 26, },
-+      { 0, 1, 0, 7, 120, 30, },
-+      { 2, 1, 0, 7, 120, 26, },
-+      { 1, 1, 0, 7, 120, 26, },
-+      { 0, 1, 0, 7, 124, 28, },
-+      { 2, 1, 0, 7, 124, 26, },
-+      { 1, 1, 0, 7, 124, 26, },
-+      { 0, 1, 0, 7, 128, 26, },
-+      { 2, 1, 0, 7, 128, 26, },
-+      { 1, 1, 0, 7, 128, 26, },
-+      { 0, 1, 0, 7, 132, 24, },
-+      { 2, 1, 0, 7, 132, 26, },
-+      { 1, 1, 0, 7, 132, 26, },
-+      { 0, 1, 0, 7, 136, 24, },
-+      { 2, 1, 0, 7, 136, 26, },
-+      { 1, 1, 0, 7, 136, 26, },
-+      { 0, 1, 0, 7, 140, 22, },
-+      { 2, 1, 0, 7, 140, 26, },
-+      { 1, 1, 0, 7, 140, 26, },
-+      { 0, 1, 0, 7, 149, 30, },
-+      { 2, 1, 0, 7, 149, 26, },
-+      { 1, 1, 0, 7, 149, 63, },
-+      { 0, 1, 0, 7, 153, 30, },
-+      { 2, 1, 0, 7, 153, 26, },
-+      { 1, 1, 0, 7, 153, 63, },
-+      { 0, 1, 0, 7, 157, 30, },
-+      { 2, 1, 0, 7, 157, 26, },
-+      { 1, 1, 0, 7, 157, 63, },
-+      { 0, 1, 0, 7, 161, 30, },
-+      { 2, 1, 0, 7, 161, 26, },
-+      { 1, 1, 0, 7, 161, 63, },
-+      { 0, 1, 0, 7, 165, 30, },
-+      { 2, 1, 0, 7, 165, 26, },
-+      { 1, 1, 0, 7, 165, 63, },
-+      { 0, 1, 1, 2, 38, 30, },
-+      { 2, 1, 1, 2, 38, 32, },
-+      { 1, 1, 1, 2, 38, 32, },
-+      { 0, 1, 1, 2, 46, 30, },
-+      { 2, 1, 1, 2, 46, 32, },
-+      { 1, 1, 1, 2, 46, 32, },
-+      { 0, 1, 1, 2, 54, 32, },
-+      { 2, 1, 1, 2, 54, 32, },
-+      { 1, 1, 1, 2, 54, 32, },
-+      { 0, 1, 1, 2, 62, 32, },
-+      { 2, 1, 1, 2, 62, 32, },
-+      { 1, 1, 1, 2, 62, 32, },
-+      { 0, 1, 1, 2, 102, 28, },
-+      { 2, 1, 1, 2, 102, 32, },
-+      { 1, 1, 1, 2, 102, 32, },
-+      { 0, 1, 1, 2, 110, 32, },
-+      { 2, 1, 1, 2, 110, 32, },
-+      { 1, 1, 1, 2, 110, 32, },
-+      { 0, 1, 1, 2, 118, 36, },
-+      { 2, 1, 1, 2, 118, 32, },
-+      { 1, 1, 1, 2, 118, 32, },
-+      { 0, 1, 1, 2, 126, 34, },
-+      { 2, 1, 1, 2, 126, 32, },
-+      { 1, 1, 1, 2, 126, 32, },
-+      { 0, 1, 1, 2, 134, 32, },
-+      { 2, 1, 1, 2, 134, 32, },
-+      { 1, 1, 1, 2, 134, 32, },
-+      { 0, 1, 1, 2, 151, 36, },
-+      { 2, 1, 1, 2, 151, 32, },
-+      { 1, 1, 1, 2, 151, 63, },
-+      { 0, 1, 1, 2, 159, 36, },
-+      { 2, 1, 1, 2, 159, 32, },
-+      { 1, 1, 1, 2, 159, 63, },
-+      { 0, 1, 1, 3, 38, 28, },
-+      { 2, 1, 1, 3, 38, 30, },
-+      { 1, 1, 1, 3, 38, 30, },
-+      { 0, 1, 1, 3, 46, 28, },
-+      { 2, 1, 1, 3, 46, 30, },
-+      { 1, 1, 1, 3, 46, 30, },
-+      { 0, 1, 1, 3, 54, 30, },
-+      { 2, 1, 1, 3, 54, 30, },
-+      { 1, 1, 1, 3, 54, 30, },
-+      { 0, 1, 1, 3, 62, 30, },
-+      { 2, 1, 1, 3, 62, 30, },
-+      { 1, 1, 1, 3, 62, 30, },
-+      { 0, 1, 1, 3, 102, 26, },
-+      { 2, 1, 1, 3, 102, 30, },
-+      { 1, 1, 1, 3, 102, 30, },
-+      { 0, 1, 1, 3, 110, 30, },
-+      { 2, 1, 1, 3, 110, 30, },
-+      { 1, 1, 1, 3, 110, 30, },
-+      { 0, 1, 1, 3, 118, 34, },
-+      { 2, 1, 1, 3, 118, 30, },
-+      { 1, 1, 1, 3, 118, 30, },
-+      { 0, 1, 1, 3, 126, 32, },
-+      { 2, 1, 1, 3, 126, 30, },
-+      { 1, 1, 1, 3, 126, 30, },
-+      { 0, 1, 1, 3, 134, 30, },
-+      { 2, 1, 1, 3, 134, 30, },
-+      { 1, 1, 1, 3, 134, 30, },
-+      { 0, 1, 1, 3, 151, 34, },
-+      { 2, 1, 1, 3, 151, 30, },
-+      { 1, 1, 1, 3, 151, 63, },
-+      { 0, 1, 1, 3, 159, 34, },
-+      { 2, 1, 1, 3, 159, 30, },
-+      { 1, 1, 1, 3, 159, 63, },
-+      { 0, 1, 1, 6, 38, 26, },
-+      { 2, 1, 1, 6, 38, 28, },
-+      { 1, 1, 1, 6, 38, 28, },
-+      { 0, 1, 1, 6, 46, 26, },
-+      { 2, 1, 1, 6, 46, 28, },
-+      { 1, 1, 1, 6, 46, 28, },
-+      { 0, 1, 1, 6, 54, 28, },
-+      { 2, 1, 1, 6, 54, 28, },
-+      { 1, 1, 1, 6, 54, 28, },
-+      { 0, 1, 1, 6, 62, 28, },
-+      { 2, 1, 1, 6, 62, 28, },
-+      { 1, 1, 1, 6, 62, 28, },
-+      { 0, 1, 1, 6, 102, 24, },
-+      { 2, 1, 1, 6, 102, 28, },
-+      { 1, 1, 1, 6, 102, 28, },
-+      { 0, 1, 1, 6, 110, 28, },
-+      { 2, 1, 1, 6, 110, 28, },
-+      { 1, 1, 1, 6, 110, 28, },
-+      { 0, 1, 1, 6, 118, 32, },
-+      { 2, 1, 1, 6, 118, 28, },
-+      { 1, 1, 1, 6, 118, 28, },
-+      { 0, 1, 1, 6, 126, 30, },
-+      { 2, 1, 1, 6, 126, 28, },
-+      { 1, 1, 1, 6, 126, 28, },
-+      { 0, 1, 1, 6, 134, 28, },
-+      { 2, 1, 1, 6, 134, 28, },
-+      { 1, 1, 1, 6, 134, 28, },
-+      { 0, 1, 1, 6, 151, 32, },
-+      { 2, 1, 1, 6, 151, 28, },
-+      { 1, 1, 1, 6, 151, 63, },
-+      { 0, 1, 1, 6, 159, 32, },
-+      { 2, 1, 1, 6, 159, 28, },
-+      { 1, 1, 1, 6, 159, 63, },
-+      { 0, 1, 1, 7, 38, 24, },
-+      { 2, 1, 1, 7, 38, 26, },
-+      { 1, 1, 1, 7, 38, 26, },
-+      { 0, 1, 1, 7, 46, 24, },
-+      { 2, 1, 1, 7, 46, 26, },
-+      { 1, 1, 1, 7, 46, 26, },
-+      { 0, 1, 1, 7, 54, 26, },
-+      { 2, 1, 1, 7, 54, 26, },
-+      { 1, 1, 1, 7, 54, 26, },
-+      { 0, 1, 1, 7, 62, 26, },
-+      { 2, 1, 1, 7, 62, 26, },
-+      { 1, 1, 1, 7, 62, 26, },
-+      { 0, 1, 1, 7, 102, 22, },
-+      { 2, 1, 1, 7, 102, 26, },
-+      { 1, 1, 1, 7, 102, 26, },
-+      { 0, 1, 1, 7, 110, 26, },
-+      { 2, 1, 1, 7, 110, 26, },
-+      { 1, 1, 1, 7, 110, 26, },
-+      { 0, 1, 1, 7, 118, 30, },
-+      { 2, 1, 1, 7, 118, 26, },
-+      { 1, 1, 1, 7, 118, 26, },
-+      { 0, 1, 1, 7, 126, 28, },
-+      { 2, 1, 1, 7, 126, 26, },
-+      { 1, 1, 1, 7, 126, 26, },
-+      { 0, 1, 1, 7, 134, 26, },
-+      { 2, 1, 1, 7, 134, 26, },
-+      { 1, 1, 1, 7, 134, 26, },
-+      { 0, 1, 1, 7, 151, 30, },
-+      { 2, 1, 1, 7, 151, 26, },
-+      { 1, 1, 1, 7, 151, 63, },
-+      { 0, 1, 1, 7, 159, 30, },
-+      { 2, 1, 1, 7, 159, 26, },
-+      { 1, 1, 1, 7, 159, 63, },
-+      { 0, 1, 2, 4, 42, 30, },
-+      { 2, 1, 2, 4, 42, 32, },
-+      { 1, 1, 2, 4, 42, 32, },
-+      { 0, 1, 2, 4, 58, 28, },
-+      { 2, 1, 2, 4, 58, 32, },
-+      { 1, 1, 2, 4, 58, 32, },
-+      { 0, 1, 2, 4, 106, 30, },
-+      { 2, 1, 2, 4, 106, 32, },
-+      { 1, 1, 2, 4, 106, 32, },
-+      { 0, 1, 2, 4, 122, 34, },
-+      { 2, 1, 2, 4, 122, 32, },
-+      { 1, 1, 2, 4, 122, 32, },
-+      { 0, 1, 2, 4, 155, 36, },
-+      { 2, 1, 2, 4, 155, 32, },
-+      { 1, 1, 2, 4, 155, 63, },
-+      { 0, 1, 2, 5, 42, 28, },
-+      { 2, 1, 2, 5, 42, 30, },
-+      { 1, 1, 2, 5, 42, 30, },
-+      { 0, 1, 2, 5, 58, 26, },
-+      { 2, 1, 2, 5, 58, 30, },
-+      { 1, 1, 2, 5, 58, 30, },
-+      { 0, 1, 2, 5, 106, 28, },
-+      { 2, 1, 2, 5, 106, 30, },
-+      { 1, 1, 2, 5, 106, 30, },
-+      { 0, 1, 2, 5, 122, 32, },
-+      { 2, 1, 2, 5, 122, 30, },
-+      { 1, 1, 2, 5, 122, 30, },
-+      { 0, 1, 2, 5, 155, 34, },
-+      { 2, 1, 2, 5, 155, 30, },
-+      { 1, 1, 2, 5, 155, 63, },
-+      { 0, 1, 2, 8, 42, 26, },
-+      { 2, 1, 2, 8, 42, 28, },
-+      { 1, 1, 2, 8, 42, 28, },
-+      { 0, 1, 2, 8, 58, 24, },
-+      { 2, 1, 2, 8, 58, 28, },
-+      { 1, 1, 2, 8, 58, 28, },
-+      { 0, 1, 2, 8, 106, 26, },
-+      { 2, 1, 2, 8, 106, 28, },
-+      { 1, 1, 2, 8, 106, 28, },
-+      { 0, 1, 2, 8, 122, 30, },
-+      { 2, 1, 2, 8, 122, 28, },
-+      { 1, 1, 2, 8, 122, 28, },
-+      { 0, 1, 2, 8, 155, 32, },
-+      { 2, 1, 2, 8, 155, 28, },
-+      { 1, 1, 2, 8, 155, 63, },
-+      { 0, 1, 2, 9, 42, 24, },
-+      { 2, 1, 2, 9, 42, 26, },
-+      { 1, 1, 2, 9, 42, 26, },
-+      { 0, 1, 2, 9, 58, 22, },
-+      { 2, 1, 2, 9, 58, 26, },
-+      { 1, 1, 2, 9, 58, 26, },
-+      { 0, 1, 2, 9, 106, 24, },
-+      { 2, 1, 2, 9, 106, 26, },
-+      { 1, 1, 2, 9, 106, 26, },
-+      { 0, 1, 2, 9, 122, 28, },
-+      { 2, 1, 2, 9, 122, 26, },
-+      { 1, 1, 2, 9, 122, 26, },
-+      { 0, 1, 2, 9, 155, 30, },
-+      { 2, 1, 2, 9, 155, 26, },
-+      { 1, 1, 2, 9, 155, 63, },
-+};
-+
-+RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt);
-+
-+static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type0[] = {
-+      { 0, 0, 0, 0, 1, 32, },
-+      { 2, 0, 0, 0, 1, 32, },
-+      { 1, 0, 0, 0, 1, 32, },
-+      { 0, 0, 0, 0, 2, 32, },
-+      { 2, 0, 0, 0, 2, 32, },
-+      { 1, 0, 0, 0, 2, 32, },
-+      { 0, 0, 0, 0, 3, 32, },
-+      { 2, 0, 0, 0, 3, 32, },
-+      { 1, 0, 0, 0, 3, 32, },
-+      { 0, 0, 0, 0, 4, 32, },
-+      { 2, 0, 0, 0, 4, 32, },
-+      { 1, 0, 0, 0, 4, 32, },
-+      { 0, 0, 0, 0, 5, 32, },
-+      { 2, 0, 0, 0, 5, 32, },
-+      { 1, 0, 0, 0, 5, 32, },
-+      { 0, 0, 0, 0, 6, 32, },
-+      { 2, 0, 0, 0, 6, 32, },
-+      { 1, 0, 0, 0, 6, 32, },
-+      { 0, 0, 0, 0, 7, 32, },
-+      { 2, 0, 0, 0, 7, 32, },
-+      { 1, 0, 0, 0, 7, 32, },
-+      { 0, 0, 0, 0, 8, 32, },
-+      { 2, 0, 0, 0, 8, 32, },
-+      { 1, 0, 0, 0, 8, 32, },
-+      { 0, 0, 0, 0, 9, 32, },
-+      { 2, 0, 0, 0, 9, 32, },
-+      { 1, 0, 0, 0, 9, 32, },
-+      { 0, 0, 0, 0, 10, 32, },
-+      { 2, 0, 0, 0, 10, 32, },
-+      { 1, 0, 0, 0, 10, 32, },
-+      { 0, 0, 0, 0, 11, 32, },
-+      { 2, 0, 0, 0, 11, 32, },
-+      { 1, 0, 0, 0, 11, 32, },
-+      { 0, 0, 0, 0, 12, 24, },
-+      { 2, 0, 0, 0, 12, 32, },
-+      { 1, 0, 0, 0, 12, 32, },
-+      { 0, 0, 0, 0, 13, 16, },
-+      { 2, 0, 0, 0, 13, 32, },
-+      { 1, 0, 0, 0, 13, 32, },
-+      { 0, 0, 0, 0, 14, 63, },
-+      { 2, 0, 0, 0, 14, 63, },
-+      { 1, 0, 0, 0, 14, 32, },
-+      { 0, 0, 0, 1, 1, 28, },
-+      { 2, 0, 0, 1, 1, 32, },
-+      { 1, 0, 0, 1, 1, 32, },
-+      { 0, 0, 0, 1, 2, 32, },
-+      { 2, 0, 0, 1, 2, 32, },
-+      { 1, 0, 0, 1, 2, 32, },
-+      { 0, 0, 0, 1, 3, 32, },
-+      { 2, 0, 0, 1, 3, 32, },
-+      { 1, 0, 0, 1, 3, 32, },
-+      { 0, 0, 0, 1, 4, 32, },
-+      { 2, 0, 0, 1, 4, 32, },
-+      { 1, 0, 0, 1, 4, 32, },
-+      { 0, 0, 0, 1, 5, 32, },
-+      { 2, 0, 0, 1, 5, 32, },
-+      { 1, 0, 0, 1, 5, 32, },
-+      { 0, 0, 0, 1, 6, 32, },
-+      { 2, 0, 0, 1, 6, 32, },
-+      { 1, 0, 0, 1, 6, 32, },
-+      { 0, 0, 0, 1, 7, 32, },
-+      { 2, 0, 0, 1, 7, 32, },
-+      { 1, 0, 0, 1, 7, 32, },
-+      { 0, 0, 0, 1, 8, 32, },
-+      { 2, 0, 0, 1, 8, 32, },
-+      { 1, 0, 0, 1, 8, 32, },
-+      { 0, 0, 0, 1, 9, 32, },
-+      { 2, 0, 0, 1, 9, 32, },
-+      { 1, 0, 0, 1, 9, 32, },
-+      { 0, 0, 0, 1, 10, 32, },
-+      { 2, 0, 0, 1, 10, 32, },
-+      { 1, 0, 0, 1, 10, 32, },
-+      { 0, 0, 0, 1, 11, 28, },
-+      { 2, 0, 0, 1, 11, 32, },
-+      { 1, 0, 0, 1, 11, 32, },
-+      { 0, 0, 0, 1, 12, 18, },
-+      { 2, 0, 0, 1, 12, 32, },
-+      { 1, 0, 0, 1, 12, 32, },
-+      { 0, 0, 0, 1, 13, 8, },
-+      { 2, 0, 0, 1, 13, 32, },
-+      { 1, 0, 0, 1, 13, 32, },
-+      { 0, 0, 0, 1, 14, 63, },
-+      { 2, 0, 0, 1, 14, 63, },
-+      { 1, 0, 0, 1, 14, 63, },
-+      { 0, 0, 0, 2, 1, 26, },
-+      { 2, 0, 0, 2, 1, 32, },
-+      { 1, 0, 0, 2, 1, 32, },
-+      { 0, 0, 0, 2, 2, 32, },
-+      { 2, 0, 0, 2, 2, 32, },
-+      { 1, 0, 0, 2, 2, 32, },
-+      { 0, 0, 0, 2, 3, 32, },
-+      { 2, 0, 0, 2, 3, 32, },
-+      { 1, 0, 0, 2, 3, 32, },
-+      { 0, 0, 0, 2, 4, 32, },
-+      { 2, 0, 0, 2, 4, 32, },
-+      { 1, 0, 0, 2, 4, 32, },
-+      { 0, 0, 0, 2, 5, 32, },
-+      { 2, 0, 0, 2, 5, 32, },
-+      { 1, 0, 0, 2, 5, 32, },
-+      { 0, 0, 0, 2, 6, 32, },
-+      { 2, 0, 0, 2, 6, 32, },
-+      { 1, 0, 0, 2, 6, 32, },
-+      { 0, 0, 0, 2, 7, 32, },
-+      { 2, 0, 0, 2, 7, 32, },
-+      { 1, 0, 0, 2, 7, 32, },
-+      { 0, 0, 0, 2, 8, 32, },
-+      { 2, 0, 0, 2, 8, 32, },
-+      { 1, 0, 0, 2, 8, 32, },
-+      { 0, 0, 0, 2, 9, 32, },
-+      { 2, 0, 0, 2, 9, 32, },
-+      { 1, 0, 0, 2, 9, 32, },
-+      { 0, 0, 0, 2, 10, 32, },
-+      { 2, 0, 0, 2, 10, 32, },
-+      { 1, 0, 0, 2, 10, 32, },
-+      { 0, 0, 0, 2, 11, 26, },
-+      { 2, 0, 0, 2, 11, 32, },
-+      { 1, 0, 0, 2, 11, 32, },
-+      { 0, 0, 0, 2, 12, 16, },
-+      { 2, 0, 0, 2, 12, 32, },
-+      { 1, 0, 0, 2, 12, 32, },
-+      { 0, 0, 0, 2, 13, 6, },
-+      { 2, 0, 0, 2, 13, 32, },
-+      { 1, 0, 0, 2, 13, 32, },
-+      { 0, 0, 0, 2, 14, 63, },
-+      { 2, 0, 0, 2, 14, 63, },
-+      { 1, 0, 0, 2, 14, 63, },
-+      { 0, 0, 0, 3, 1, 24, },
-+      { 2, 0, 0, 3, 1, 30, },
-+      { 1, 0, 0, 3, 1, 30, },
-+      { 0, 0, 0, 3, 2, 30, },
-+      { 2, 0, 0, 3, 2, 30, },
-+      { 1, 0, 0, 3, 2, 30, },
-+      { 0, 0, 0, 3, 3, 30, },
-+      { 2, 0, 0, 3, 3, 30, },
-+      { 1, 0, 0, 3, 3, 30, },
-+      { 0, 0, 0, 3, 4, 30, },
-+      { 2, 0, 0, 3, 4, 30, },
-+      { 1, 0, 0, 3, 4, 30, },
-+      { 0, 0, 0, 3, 5, 30, },
-+      { 2, 0, 0, 3, 5, 30, },
-+      { 1, 0, 0, 3, 5, 30, },
-+      { 0, 0, 0, 3, 6, 30, },
-+      { 2, 0, 0, 3, 6, 30, },
-+      { 1, 0, 0, 3, 6, 30, },
-+      { 0, 0, 0, 3, 7, 30, },
-+      { 2, 0, 0, 3, 7, 30, },
-+      { 1, 0, 0, 3, 7, 30, },
-+      { 0, 0, 0, 3, 8, 30, },
-+      { 2, 0, 0, 3, 8, 30, },
-+      { 1, 0, 0, 3, 8, 30, },
-+      { 0, 0, 0, 3, 9, 30, },
-+      { 2, 0, 0, 3, 9, 30, },
-+      { 1, 0, 0, 3, 9, 30, },
-+      { 0, 0, 0, 3, 10, 30, },
-+      { 2, 0, 0, 3, 10, 30, },
-+      { 1, 0, 0, 3, 10, 30, },
-+      { 0, 0, 0, 3, 11, 24, },
-+      { 2, 0, 0, 3, 11, 30, },
-+      { 1, 0, 0, 3, 11, 30, },
-+      { 0, 0, 0, 3, 12, 14, },
-+      { 2, 0, 0, 3, 12, 30, },
-+      { 1, 0, 0, 3, 12, 30, },
-+      { 0, 0, 0, 3, 13, 4, },
-+      { 2, 0, 0, 3, 13, 30, },
-+      { 1, 0, 0, 3, 13, 30, },
-+      { 0, 0, 0, 3, 14, 63, },
-+      { 2, 0, 0, 3, 14, 63, },
-+      { 1, 0, 0, 3, 14, 63, },
-+      { 0, 0, 0, 6, 1, 22, },
-+      { 2, 0, 0, 6, 1, 28, },
-+      { 1, 0, 0, 6, 1, 28, },
-+      { 0, 0, 0, 6, 2, 28, },
-+      { 2, 0, 0, 6, 2, 28, },
-+      { 1, 0, 0, 6, 2, 28, },
-+      { 0, 0, 0, 6, 3, 28, },
-+      { 2, 0, 0, 6, 3, 28, },
-+      { 1, 0, 0, 6, 3, 28, },
-+      { 0, 0, 0, 6, 4, 28, },
-+      { 2, 0, 0, 6, 4, 28, },
-+      { 1, 0, 0, 6, 4, 28, },
-+      { 0, 0, 0, 6, 5, 28, },
-+      { 2, 0, 0, 6, 5, 28, },
-+      { 1, 0, 0, 6, 5, 28, },
-+      { 0, 0, 0, 6, 6, 28, },
-+      { 2, 0, 0, 6, 6, 28, },
-+      { 1, 0, 0, 6, 6, 28, },
-+      { 0, 0, 0, 6, 7, 28, },
-+      { 2, 0, 0, 6, 7, 28, },
-+      { 1, 0, 0, 6, 7, 28, },
-+      { 0, 0, 0, 6, 8, 28, },
-+      { 2, 0, 0, 6, 8, 28, },
-+      { 1, 0, 0, 6, 8, 28, },
-+      { 0, 0, 0, 6, 9, 28, },
-+      { 2, 0, 0, 6, 9, 28, },
-+      { 1, 0, 0, 6, 9, 28, },
-+      { 0, 0, 0, 6, 10, 28, },
-+      { 2, 0, 0, 6, 10, 28, },
-+      { 1, 0, 0, 6, 10, 28, },
-+      { 0, 0, 0, 6, 11, 22, },
-+      { 2, 0, 0, 6, 11, 28, },
-+      { 1, 0, 0, 6, 11, 28, },
-+      { 0, 0, 0, 6, 12, 14, },
-+      { 2, 0, 0, 6, 12, 28, },
-+      { 1, 0, 0, 6, 12, 28, },
-+      { 0, 0, 0, 6, 13, 4, },
-+      { 2, 0, 0, 6, 13, 28, },
-+      { 1, 0, 0, 6, 13, 28, },
-+      { 0, 0, 0, 6, 14, 63, },
-+      { 2, 0, 0, 6, 14, 63, },
-+      { 1, 0, 0, 6, 14, 63, },
-+      { 0, 0, 0, 7, 1, 20, },
-+      { 2, 0, 0, 7, 1, 26, },
-+      { 1, 0, 0, 7, 1, 26, },
-+      { 0, 0, 0, 7, 2, 26, },
-+      { 2, 0, 0, 7, 2, 26, },
-+      { 1, 0, 0, 7, 2, 26, },
-+      { 0, 0, 0, 7, 3, 26, },
-+      { 2, 0, 0, 7, 3, 26, },
-+      { 1, 0, 0, 7, 3, 26, },
-+      { 0, 0, 0, 7, 4, 26, },
-+      { 2, 0, 0, 7, 4, 26, },
-+      { 1, 0, 0, 7, 4, 26, },
-+      { 0, 0, 0, 7, 5, 26, },
-+      { 2, 0, 0, 7, 5, 26, },
-+      { 1, 0, 0, 7, 5, 26, },
-+      { 0, 0, 0, 7, 6, 26, },
-+      { 2, 0, 0, 7, 6, 26, },
-+      { 1, 0, 0, 7, 6, 26, },
-+      { 0, 0, 0, 7, 7, 26, },
-+      { 2, 0, 0, 7, 7, 26, },
-+      { 1, 0, 0, 7, 7, 26, },
-+      { 0, 0, 0, 7, 8, 26, },
-+      { 2, 0, 0, 7, 8, 26, },
-+      { 1, 0, 0, 7, 8, 26, },
-+      { 0, 0, 0, 7, 9, 26, },
-+      { 2, 0, 0, 7, 9, 26, },
-+      { 1, 0, 0, 7, 9, 26, },
-+      { 0, 0, 0, 7, 10, 26, },
-+      { 2, 0, 0, 7, 10, 26, },
-+      { 1, 0, 0, 7, 10, 26, },
-+      { 0, 0, 0, 7, 11, 20, },
-+      { 2, 0, 0, 7, 11, 26, },
-+      { 1, 0, 0, 7, 11, 26, },
-+      { 0, 0, 0, 7, 12, 14, },
-+      { 2, 0, 0, 7, 12, 26, },
-+      { 1, 0, 0, 7, 12, 26, },
-+      { 0, 0, 0, 7, 13, 4, },
-+      { 2, 0, 0, 7, 13, 26, },
-+      { 1, 0, 0, 7, 13, 26, },
-+      { 0, 0, 0, 7, 14, 63, },
-+      { 2, 0, 0, 7, 14, 63, },
-+      { 1, 0, 0, 7, 14, 63, },
-+      { 0, 0, 1, 2, 1, 63, },
-+      { 2, 0, 1, 2, 1, 63, },
-+      { 1, 0, 1, 2, 1, 63, },
-+      { 0, 0, 1, 2, 2, 63, },
-+      { 2, 0, 1, 2, 2, 63, },
-+      { 1, 0, 1, 2, 2, 63, },
-+      { 0, 0, 1, 2, 3, 26, },
-+      { 2, 0, 1, 2, 3, 32, },
-+      { 1, 0, 1, 2, 3, 32, },
-+      { 0, 0, 1, 2, 4, 32, },
-+      { 2, 0, 1, 2, 4, 32, },
-+      { 1, 0, 1, 2, 4, 32, },
-+      { 0, 0, 1, 2, 5, 32, },
-+      { 2, 0, 1, 2, 5, 32, },
-+      { 1, 0, 1, 2, 5, 32, },
-+      { 0, 0, 1, 2, 6, 32, },
-+      { 2, 0, 1, 2, 6, 32, },
-+      { 1, 0, 1, 2, 6, 32, },
-+      { 0, 0, 1, 2, 7, 32, },
-+      { 2, 0, 1, 2, 7, 32, },
-+      { 1, 0, 1, 2, 7, 32, },
-+      { 0, 0, 1, 2, 8, 32, },
-+      { 2, 0, 1, 2, 8, 32, },
-+      { 1, 0, 1, 2, 8, 32, },
-+      { 0, 0, 1, 2, 9, 32, },
-+      { 2, 0, 1, 2, 9, 32, },
-+      { 1, 0, 1, 2, 9, 32, },
-+      { 0, 0, 1, 2, 10, 32, },
-+      { 2, 0, 1, 2, 10, 32, },
-+      { 1, 0, 1, 2, 10, 32, },
-+      { 0, 0, 1, 2, 11, 26, },
-+      { 2, 0, 1, 2, 11, 32, },
-+      { 1, 0, 1, 2, 11, 32, },
-+      { 0, 0, 1, 2, 12, 16, },
-+      { 2, 0, 1, 2, 12, 32, },
-+      { 1, 0, 1, 2, 12, 32, },
-+      { 0, 0, 1, 2, 13, 10, },
-+      { 2, 0, 1, 2, 13, 32, },
-+      { 1, 0, 1, 2, 13, 32, },
-+      { 0, 0, 1, 2, 14, 63, },
-+      { 2, 0, 1, 2, 14, 63, },
-+      { 1, 0, 1, 2, 14, 63, },
-+      { 0, 0, 1, 3, 1, 63, },
-+      { 2, 0, 1, 3, 1, 63, },
-+      { 1, 0, 1, 3, 1, 63, },
-+      { 0, 0, 1, 3, 2, 63, },
-+      { 2, 0, 1, 3, 2, 63, },
-+      { 1, 0, 1, 3, 2, 63, },
-+      { 0, 0, 1, 3, 3, 24, },
-+      { 2, 0, 1, 3, 3, 30, },
-+      { 1, 0, 1, 3, 3, 30, },
-+      { 0, 0, 1, 3, 4, 30, },
-+      { 2, 0, 1, 3, 4, 30, },
-+      { 1, 0, 1, 3, 4, 30, },
-+      { 0, 0, 1, 3, 5, 30, },
-+      { 2, 0, 1, 3, 5, 30, },
-+      { 1, 0, 1, 3, 5, 30, },
-+      { 0, 0, 1, 3, 6, 30, },
-+      { 2, 0, 1, 3, 6, 30, },
-+      { 1, 0, 1, 3, 6, 30, },
-+      { 0, 0, 1, 3, 7, 30, },
-+      { 2, 0, 1, 3, 7, 30, },
-+      { 1, 0, 1, 3, 7, 30, },
-+      { 0, 0, 1, 3, 8, 30, },
-+      { 2, 0, 1, 3, 8, 30, },
-+      { 1, 0, 1, 3, 8, 30, },
-+      { 0, 0, 1, 3, 9, 30, },
-+      { 2, 0, 1, 3, 9, 30, },
-+      { 1, 0, 1, 3, 9, 30, },
-+      { 0, 0, 1, 3, 10, 30, },
-+      { 2, 0, 1, 3, 10, 30, },
-+      { 1, 0, 1, 3, 10, 30, },
-+      { 0, 0, 1, 3, 11, 24, },
-+      { 2, 0, 1, 3, 11, 30, },
-+      { 1, 0, 1, 3, 11, 30, },
-+      { 0, 0, 1, 3, 12, 14, },
-+      { 2, 0, 1, 3, 12, 30, },
-+      { 1, 0, 1, 3, 12, 30, },
-+      { 0, 0, 1, 3, 13, 8, },
-+      { 2, 0, 1, 3, 13, 30, },
-+      { 1, 0, 1, 3, 13, 30, },
-+      { 0, 0, 1, 3, 14, 63, },
-+      { 2, 0, 1, 3, 14, 63, },
-+      { 1, 0, 1, 3, 14, 63, },
-+      { 0, 0, 1, 6, 1, 63, },
-+      { 2, 0, 1, 6, 1, 63, },
-+      { 1, 0, 1, 6, 1, 63, },
-+      { 0, 0, 1, 6, 2, 63, },
-+      { 2, 0, 1, 6, 2, 63, },
-+      { 1, 0, 1, 6, 2, 63, },
-+      { 0, 0, 1, 6, 3, 22, },
-+      { 2, 0, 1, 6, 3, 28, },
-+      { 1, 0, 1, 6, 3, 28, },
-+      { 0, 0, 1, 6, 4, 28, },
-+      { 2, 0, 1, 6, 4, 28, },
-+      { 1, 0, 1, 6, 4, 28, },
-+      { 0, 0, 1, 6, 5, 28, },
-+      { 2, 0, 1, 6, 5, 28, },
-+      { 1, 0, 1, 6, 5, 28, },
-+      { 0, 0, 1, 6, 6, 28, },
-+      { 2, 0, 1, 6, 6, 28, },
-+      { 1, 0, 1, 6, 6, 28, },
-+      { 0, 0, 1, 6, 7, 28, },
-+      { 2, 0, 1, 6, 7, 28, },
-+      { 1, 0, 1, 6, 7, 28, },
-+      { 0, 0, 1, 6, 8, 28, },
-+      { 2, 0, 1, 6, 8, 28, },
-+      { 1, 0, 1, 6, 8, 28, },
-+      { 0, 0, 1, 6, 9, 28, },
-+      { 2, 0, 1, 6, 9, 28, },
-+      { 1, 0, 1, 6, 9, 28, },
-+      { 0, 0, 1, 6, 10, 28, },
-+      { 2, 0, 1, 6, 10, 28, },
-+      { 1, 0, 1, 6, 10, 28, },
-+      { 0, 0, 1, 6, 11, 22, },
-+      { 2, 0, 1, 6, 11, 28, },
-+      { 1, 0, 1, 6, 11, 28, },
-+      { 0, 0, 1, 6, 12, 14, },
-+      { 2, 0, 1, 6, 12, 28, },
-+      { 1, 0, 1, 6, 12, 28, },
-+      { 0, 0, 1, 6, 13, 8, },
-+      { 2, 0, 1, 6, 13, 28, },
-+      { 1, 0, 1, 6, 13, 28, },
-+      { 0, 0, 1, 6, 14, 63, },
-+      { 2, 0, 1, 6, 14, 63, },
-+      { 1, 0, 1, 6, 14, 63, },
-+      { 0, 0, 1, 7, 1, 63, },
-+      { 2, 0, 1, 7, 1, 63, },
-+      { 1, 0, 1, 7, 1, 63, },
-+      { 0, 0, 1, 7, 2, 63, },
-+      { 2, 0, 1, 7, 2, 63, },
-+      { 1, 0, 1, 7, 2, 63, },
-+      { 0, 0, 1, 7, 3, 20, },
-+      { 2, 0, 1, 7, 3, 26, },
-+      { 1, 0, 1, 7, 3, 26, },
-+      { 0, 0, 1, 7, 4, 26, },
-+      { 2, 0, 1, 7, 4, 26, },
-+      { 1, 0, 1, 7, 4, 26, },
-+      { 0, 0, 1, 7, 5, 26, },
-+      { 2, 0, 1, 7, 5, 26, },
-+      { 1, 0, 1, 7, 5, 26, },
-+      { 0, 0, 1, 7, 6, 26, },
-+      { 2, 0, 1, 7, 6, 26, },
-+      { 1, 0, 1, 7, 6, 26, },
-+      { 0, 0, 1, 7, 7, 26, },
-+      { 2, 0, 1, 7, 7, 26, },
-+      { 1, 0, 1, 7, 7, 26, },
-+      { 0, 0, 1, 7, 8, 26, },
-+      { 2, 0, 1, 7, 8, 26, },
-+      { 1, 0, 1, 7, 8, 26, },
-+      { 0, 0, 1, 7, 9, 26, },
-+      { 2, 0, 1, 7, 9, 26, },
-+      { 1, 0, 1, 7, 9, 26, },
-+      { 0, 0, 1, 7, 10, 26, },
-+      { 2, 0, 1, 7, 10, 26, },
-+      { 1, 0, 1, 7, 10, 26, },
-+      { 0, 0, 1, 7, 11, 20, },
-+      { 2, 0, 1, 7, 11, 26, },
-+      { 1, 0, 1, 7, 11, 26, },
-+      { 0, 0, 1, 7, 12, 14, },
-+      { 2, 0, 1, 7, 12, 26, },
-+      { 1, 0, 1, 7, 12, 26, },
-+      { 0, 0, 1, 7, 13, 8, },
-+      { 2, 0, 1, 7, 13, 26, },
-+      { 1, 0, 1, 7, 13, 26, },
-+      { 0, 0, 1, 7, 14, 63, },
-+      { 2, 0, 1, 7, 14, 63, },
-+      { 1, 0, 1, 7, 14, 63, },
-+      { 0, 1, 0, 1, 36, 28, },
-+      { 2, 1, 0, 1, 36, 32, },
-+      { 1, 1, 0, 1, 36, 32, },
-+      { 0, 1, 0, 1, 40, 32, },
-+      { 2, 1, 0, 1, 40, 32, },
-+      { 1, 1, 0, 1, 40, 32, },
-+      { 0, 1, 0, 1, 44, 32, },
-+      { 2, 1, 0, 1, 44, 32, },
-+      { 1, 1, 0, 1, 44, 32, },
-+      { 0, 1, 0, 1, 48, 32, },
-+      { 2, 1, 0, 1, 48, 32, },
-+      { 1, 1, 0, 1, 48, 32, },
-+      { 0, 1, 0, 1, 52, 32, },
-+      { 2, 1, 0, 1, 52, 32, },
-+      { 1, 1, 0, 1, 52, 32, },
-+      { 0, 1, 0, 1, 56, 32, },
-+      { 2, 1, 0, 1, 56, 32, },
-+      { 1, 1, 0, 1, 56, 32, },
-+      { 0, 1, 0, 1, 60, 32, },
-+      { 2, 1, 0, 1, 60, 32, },
-+      { 1, 1, 0, 1, 60, 32, },
-+      { 0, 1, 0, 1, 64, 28, },
-+      { 2, 1, 0, 1, 64, 32, },
-+      { 1, 1, 0, 1, 64, 32, },
-+      { 0, 1, 0, 1, 100, 28, },
-+      { 2, 1, 0, 1, 100, 32, },
-+      { 1, 1, 0, 1, 100, 32, },
-+      { 0, 1, 0, 1, 104, 32, },
-+      { 2, 1, 0, 1, 104, 32, },
-+      { 1, 1, 0, 1, 104, 32, },
-+      { 0, 1, 0, 1, 108, 32, },
-+      { 2, 1, 0, 1, 108, 32, },
-+      { 1, 1, 0, 1, 108, 32, },
-+      { 0, 1, 0, 1, 112, 32, },
-+      { 2, 1, 0, 1, 112, 32, },
-+      { 1, 1, 0, 1, 112, 32, },
-+      { 0, 1, 0, 1, 116, 32, },
-+      { 2, 1, 0, 1, 116, 32, },
-+      { 1, 1, 0, 1, 116, 32, },
-+      { 0, 1, 0, 1, 120, 32, },
-+      { 2, 1, 0, 1, 120, 32, },
-+      { 1, 1, 0, 1, 120, 32, },
-+      { 0, 1, 0, 1, 124, 32, },
-+      { 2, 1, 0, 1, 124, 32, },
-+      { 1, 1, 0, 1, 124, 32, },
-+      { 0, 1, 0, 1, 128, 32, },
-+      { 2, 1, 0, 1, 128, 32, },
-+      { 1, 1, 0, 1, 128, 32, },
-+      { 0, 1, 0, 1, 132, 32, },
-+      { 2, 1, 0, 1, 132, 32, },
-+      { 1, 1, 0, 1, 132, 32, },
-+      { 0, 1, 0, 1, 136, 32, },
-+      { 2, 1, 0, 1, 136, 32, },
-+      { 1, 1, 0, 1, 136, 32, },
-+      { 0, 1, 0, 1, 140, 28, },
-+      { 2, 1, 0, 1, 140, 32, },
-+      { 1, 1, 0, 1, 140, 32, },
-+      { 0, 1, 0, 1, 149, 28, },
-+      { 2, 1, 0, 1, 149, 32, },
-+      { 1, 1, 0, 1, 149, 63, },
-+      { 0, 1, 0, 1, 153, 32, },
-+      { 2, 1, 0, 1, 153, 32, },
-+      { 1, 1, 0, 1, 153, 63, },
-+      { 0, 1, 0, 1, 157, 32, },
-+      { 2, 1, 0, 1, 157, 32, },
-+      { 1, 1, 0, 1, 157, 63, },
-+      { 0, 1, 0, 1, 161, 32, },
-+      { 2, 1, 0, 1, 161, 32, },
-+      { 1, 1, 0, 1, 161, 63, },
-+      { 0, 1, 0, 1, 165, 32, },
-+      { 2, 1, 0, 1, 165, 32, },
-+      { 1, 1, 0, 1, 165, 63, },
-+      { 0, 1, 0, 2, 36, 26, },
-+      { 2, 1, 0, 2, 36, 32, },
-+      { 1, 1, 0, 2, 36, 32, },
-+      { 0, 1, 0, 2, 40, 32, },
-+      { 2, 1, 0, 2, 40, 32, },
-+      { 1, 1, 0, 2, 40, 32, },
-+      { 0, 1, 0, 2, 44, 32, },
-+      { 2, 1, 0, 2, 44, 32, },
-+      { 1, 1, 0, 2, 44, 32, },
-+      { 0, 1, 0, 2, 48, 32, },
-+      { 2, 1, 0, 2, 48, 32, },
-+      { 1, 1, 0, 2, 48, 32, },
-+      { 0, 1, 0, 2, 52, 32, },
-+      { 2, 1, 0, 2, 52, 32, },
-+      { 1, 1, 0, 2, 52, 32, },
-+      { 0, 1, 0, 2, 56, 32, },
-+      { 2, 1, 0, 2, 56, 32, },
-+      { 1, 1, 0, 2, 56, 32, },
-+      { 0, 1, 0, 2, 60, 32, },
-+      { 2, 1, 0, 2, 60, 32, },
-+      { 1, 1, 0, 2, 60, 32, },
-+      { 0, 1, 0, 2, 64, 26, },
-+      { 2, 1, 0, 2, 64, 32, },
-+      { 1, 1, 0, 2, 64, 32, },
-+      { 0, 1, 0, 2, 100, 26, },
-+      { 2, 1, 0, 2, 100, 32, },
-+      { 1, 1, 0, 2, 100, 32, },
-+      { 0, 1, 0, 2, 104, 32, },
-+      { 2, 1, 0, 2, 104, 32, },
-+      { 1, 1, 0, 2, 104, 32, },
-+      { 0, 1, 0, 2, 108, 32, },
-+      { 2, 1, 0, 2, 108, 32, },
-+      { 1, 1, 0, 2, 108, 32, },
-+      { 0, 1, 0, 2, 112, 32, },
-+      { 2, 1, 0, 2, 112, 32, },
-+      { 1, 1, 0, 2, 112, 32, },
-+      { 0, 1, 0, 2, 116, 32, },
-+      { 2, 1, 0, 2, 116, 32, },
-+      { 1, 1, 0, 2, 116, 32, },
-+      { 0, 1, 0, 2, 120, 32, },
-+      { 2, 1, 0, 2, 120, 32, },
-+      { 1, 1, 0, 2, 120, 32, },
-+      { 0, 1, 0, 2, 124, 32, },
-+      { 2, 1, 0, 2, 124, 32, },
-+      { 1, 1, 0, 2, 124, 32, },
-+      { 0, 1, 0, 2, 128, 32, },
-+      { 2, 1, 0, 2, 128, 32, },
-+      { 1, 1, 0, 2, 128, 32, },
-+      { 0, 1, 0, 2, 132, 32, },
-+      { 2, 1, 0, 2, 132, 32, },
-+      { 1, 1, 0, 2, 132, 32, },
-+      { 0, 1, 0, 2, 136, 32, },
-+      { 2, 1, 0, 2, 136, 32, },
-+      { 1, 1, 0, 2, 136, 32, },
-+      { 0, 1, 0, 2, 140, 26, },
-+      { 2, 1, 0, 2, 140, 32, },
-+      { 1, 1, 0, 2, 140, 32, },
-+      { 0, 1, 0, 2, 149, 26, },
-+      { 2, 1, 0, 2, 149, 32, },
-+      { 1, 1, 0, 2, 149, 63, },
-+      { 0, 1, 0, 2, 153, 32, },
-+      { 2, 1, 0, 2, 153, 32, },
-+      { 1, 1, 0, 2, 153, 63, },
-+      { 0, 1, 0, 2, 157, 32, },
-+      { 2, 1, 0, 2, 157, 32, },
-+      { 1, 1, 0, 2, 157, 63, },
-+      { 0, 1, 0, 2, 161, 32, },
-+      { 2, 1, 0, 2, 161, 32, },
-+      { 1, 1, 0, 2, 161, 63, },
-+      { 0, 1, 0, 2, 165, 32, },
-+      { 2, 1, 0, 2, 165, 32, },
-+      { 1, 1, 0, 2, 165, 63, },
-+      { 0, 1, 0, 3, 36, 24, },
-+      { 2, 1, 0, 3, 36, 28, },
-+      { 1, 1, 0, 3, 36, 28, },
-+      { 0, 1, 0, 3, 40, 28, },
-+      { 2, 1, 0, 3, 40, 28, },
-+      { 1, 1, 0, 3, 40, 28, },
-+      { 0, 1, 0, 3, 44, 28, },
-+      { 2, 1, 0, 3, 44, 28, },
-+      { 1, 1, 0, 3, 44, 28, },
-+      { 0, 1, 0, 3, 48, 28, },
-+      { 2, 1, 0, 3, 48, 28, },
-+      { 1, 1, 0, 3, 48, 28, },
-+      { 0, 1, 0, 3, 52, 28, },
-+      { 2, 1, 0, 3, 52, 28, },
-+      { 1, 1, 0, 3, 52, 28, },
-+      { 0, 1, 0, 3, 56, 28, },
-+      { 2, 1, 0, 3, 56, 28, },
-+      { 1, 1, 0, 3, 56, 28, },
-+      { 0, 1, 0, 3, 60, 28, },
-+      { 2, 1, 0, 3, 60, 28, },
-+      { 1, 1, 0, 3, 60, 28, },
-+      { 0, 1, 0, 3, 64, 24, },
-+      { 2, 1, 0, 3, 64, 28, },
-+      { 1, 1, 0, 3, 64, 28, },
-+      { 0, 1, 0, 3, 100, 24, },
-+      { 2, 1, 0, 3, 100, 28, },
-+      { 1, 1, 0, 3, 100, 28, },
-+      { 0, 1, 0, 3, 104, 28, },
-+      { 2, 1, 0, 3, 104, 28, },
-+      { 1, 1, 0, 3, 104, 28, },
-+      { 0, 1, 0, 3, 108, 28, },
-+      { 2, 1, 0, 3, 108, 28, },
-+      { 1, 1, 0, 3, 108, 28, },
-+      { 0, 1, 0, 3, 112, 28, },
-+      { 2, 1, 0, 3, 112, 28, },
-+      { 1, 1, 0, 3, 112, 28, },
-+      { 0, 1, 0, 3, 116, 28, },
-+      { 2, 1, 0, 3, 116, 28, },
-+      { 1, 1, 0, 3, 116, 28, },
-+      { 0, 1, 0, 3, 120, 28, },
-+      { 2, 1, 0, 3, 120, 28, },
-+      { 1, 1, 0, 3, 120, 28, },
-+      { 0, 1, 0, 3, 124, 28, },
-+      { 2, 1, 0, 3, 124, 28, },
-+      { 1, 1, 0, 3, 124, 28, },
-+      { 0, 1, 0, 3, 128, 28, },
-+      { 2, 1, 0, 3, 128, 28, },
-+      { 1, 1, 0, 3, 128, 28, },
-+      { 0, 1, 0, 3, 132, 28, },
-+      { 2, 1, 0, 3, 132, 28, },
-+      { 1, 1, 0, 3, 132, 28, },
-+      { 0, 1, 0, 3, 136, 28, },
-+      { 2, 1, 0, 3, 136, 28, },
-+      { 1, 1, 0, 3, 136, 28, },
-+      { 0, 1, 0, 3, 140, 24, },
-+      { 2, 1, 0, 3, 140, 28, },
-+      { 1, 1, 0, 3, 140, 28, },
-+      { 0, 1, 0, 3, 149, 24, },
-+      { 2, 1, 0, 3, 149, 28, },
-+      { 1, 1, 0, 3, 149, 63, },
-+      { 0, 1, 0, 3, 153, 28, },
-+      { 2, 1, 0, 3, 153, 28, },
-+      { 1, 1, 0, 3, 153, 63, },
-+      { 0, 1, 0, 3, 157, 28, },
-+      { 2, 1, 0, 3, 157, 28, },
-+      { 1, 1, 0, 3, 157, 63, },
-+      { 0, 1, 0, 3, 161, 28, },
-+      { 2, 1, 0, 3, 161, 28, },
-+      { 1, 1, 0, 3, 161, 63, },
-+      { 0, 1, 0, 3, 165, 28, },
-+      { 2, 1, 0, 3, 165, 28, },
-+      { 1, 1, 0, 3, 165, 63, },
-+      { 0, 1, 0, 6, 36, 22, },
-+      { 2, 1, 0, 6, 36, 26, },
-+      { 1, 1, 0, 6, 36, 26, },
-+      { 0, 1, 0, 6, 40, 26, },
-+      { 2, 1, 0, 6, 40, 26, },
-+      { 1, 1, 0, 6, 40, 26, },
-+      { 0, 1, 0, 6, 44, 26, },
-+      { 2, 1, 0, 6, 44, 26, },
-+      { 1, 1, 0, 6, 44, 26, },
-+      { 0, 1, 0, 6, 48, 26, },
-+      { 2, 1, 0, 6, 48, 26, },
-+      { 1, 1, 0, 6, 48, 26, },
-+      { 0, 1, 0, 6, 52, 26, },
-+      { 2, 1, 0, 6, 52, 26, },
-+      { 1, 1, 0, 6, 52, 26, },
-+      { 0, 1, 0, 6, 56, 26, },
-+      { 2, 1, 0, 6, 56, 26, },
-+      { 1, 1, 0, 6, 56, 26, },
-+      { 0, 1, 0, 6, 60, 26, },
-+      { 2, 1, 0, 6, 60, 26, },
-+      { 1, 1, 0, 6, 60, 26, },
-+      { 0, 1, 0, 6, 64, 22, },
-+      { 2, 1, 0, 6, 64, 26, },
-+      { 1, 1, 0, 6, 64, 26, },
-+      { 0, 1, 0, 6, 100, 22, },
-+      { 2, 1, 0, 6, 100, 26, },
-+      { 1, 1, 0, 6, 100, 26, },
-+      { 0, 1, 0, 6, 104, 26, },
-+      { 2, 1, 0, 6, 104, 26, },
-+      { 1, 1, 0, 6, 104, 26, },
-+      { 0, 1, 0, 6, 108, 26, },
-+      { 2, 1, 0, 6, 108, 26, },
-+      { 1, 1, 0, 6, 108, 26, },
-+      { 0, 1, 0, 6, 112, 26, },
-+      { 2, 1, 0, 6, 112, 26, },
-+      { 1, 1, 0, 6, 112, 26, },
-+      { 0, 1, 0, 6, 116, 26, },
-+      { 2, 1, 0, 6, 116, 26, },
-+      { 1, 1, 0, 6, 116, 26, },
-+      { 0, 1, 0, 6, 120, 26, },
-+      { 2, 1, 0, 6, 120, 26, },
-+      { 1, 1, 0, 6, 120, 26, },
-+      { 0, 1, 0, 6, 124, 26, },
-+      { 2, 1, 0, 6, 124, 26, },
-+      { 1, 1, 0, 6, 124, 26, },
-+      { 0, 1, 0, 6, 128, 26, },
-+      { 2, 1, 0, 6, 128, 26, },
-+      { 1, 1, 0, 6, 128, 26, },
-+      { 0, 1, 0, 6, 132, 26, },
-+      { 2, 1, 0, 6, 132, 26, },
-+      { 1, 1, 0, 6, 132, 26, },
-+      { 0, 1, 0, 6, 136, 26, },
-+      { 2, 1, 0, 6, 136, 26, },
-+      { 1, 1, 0, 6, 136, 26, },
-+      { 0, 1, 0, 6, 140, 22, },
-+      { 2, 1, 0, 6, 140, 26, },
-+      { 1, 1, 0, 6, 140, 26, },
-+      { 0, 1, 0, 6, 149, 22, },
-+      { 2, 1, 0, 6, 149, 26, },
-+      { 1, 1, 0, 6, 149, 63, },
-+      { 0, 1, 0, 6, 153, 26, },
-+      { 2, 1, 0, 6, 153, 26, },
-+      { 1, 1, 0, 6, 153, 63, },
-+      { 0, 1, 0, 6, 157, 26, },
-+      { 2, 1, 0, 6, 157, 26, },
-+      { 1, 1, 0, 6, 157, 63, },
-+      { 0, 1, 0, 6, 161, 26, },
-+      { 2, 1, 0, 6, 161, 26, },
-+      { 1, 1, 0, 6, 161, 63, },
-+      { 0, 1, 0, 6, 165, 26, },
-+      { 2, 1, 0, 6, 165, 26, },
-+      { 1, 1, 0, 6, 165, 63, },
-+      { 0, 1, 0, 7, 36, 20, },
-+      { 2, 1, 0, 7, 36, 24, },
-+      { 1, 1, 0, 7, 36, 24, },
-+      { 0, 1, 0, 7, 40, 24, },
-+      { 2, 1, 0, 7, 40, 24, },
-+      { 1, 1, 0, 7, 40, 24, },
-+      { 0, 1, 0, 7, 44, 24, },
-+      { 2, 1, 0, 7, 44, 24, },
-+      { 1, 1, 0, 7, 44, 24, },
-+      { 0, 1, 0, 7, 48, 24, },
-+      { 2, 1, 0, 7, 48, 24, },
-+      { 1, 1, 0, 7, 48, 24, },
-+      { 0, 1, 0, 7, 52, 24, },
-+      { 2, 1, 0, 7, 52, 24, },
-+      { 1, 1, 0, 7, 52, 24, },
-+      { 0, 1, 0, 7, 56, 24, },
-+      { 2, 1, 0, 7, 56, 24, },
-+      { 1, 1, 0, 7, 56, 24, },
-+      { 0, 1, 0, 7, 60, 24, },
-+      { 2, 1, 0, 7, 60, 24, },
-+      { 1, 1, 0, 7, 60, 24, },
-+      { 0, 1, 0, 7, 64, 20, },
-+      { 2, 1, 0, 7, 64, 24, },
-+      { 1, 1, 0, 7, 64, 24, },
-+      { 0, 1, 0, 7, 100, 20, },
-+      { 2, 1, 0, 7, 100, 24, },
-+      { 1, 1, 0, 7, 100, 24, },
-+      { 0, 1, 0, 7, 104, 24, },
-+      { 2, 1, 0, 7, 104, 24, },
-+      { 1, 1, 0, 7, 104, 24, },
-+      { 0, 1, 0, 7, 108, 24, },
-+      { 2, 1, 0, 7, 108, 24, },
-+      { 1, 1, 0, 7, 108, 24, },
-+      { 0, 1, 0, 7, 112, 24, },
-+      { 2, 1, 0, 7, 112, 24, },
-+      { 1, 1, 0, 7, 112, 24, },
-+      { 0, 1, 0, 7, 116, 24, },
-+      { 2, 1, 0, 7, 116, 24, },
-+      { 1, 1, 0, 7, 116, 24, },
-+      { 0, 1, 0, 7, 120, 24, },
-+      { 2, 1, 0, 7, 120, 24, },
-+      { 1, 1, 0, 7, 120, 24, },
-+      { 0, 1, 0, 7, 124, 24, },
-+      { 2, 1, 0, 7, 124, 24, },
-+      { 1, 1, 0, 7, 124, 24, },
-+      { 0, 1, 0, 7, 128, 24, },
-+      { 2, 1, 0, 7, 128, 24, },
-+      { 1, 1, 0, 7, 128, 24, },
-+      { 0, 1, 0, 7, 132, 24, },
-+      { 2, 1, 0, 7, 132, 24, },
-+      { 1, 1, 0, 7, 132, 24, },
-+      { 0, 1, 0, 7, 136, 24, },
-+      { 2, 1, 0, 7, 136, 24, },
-+      { 1, 1, 0, 7, 136, 24, },
-+      { 0, 1, 0, 7, 140, 20, },
-+      { 2, 1, 0, 7, 140, 24, },
-+      { 1, 1, 0, 7, 140, 24, },
-+      { 0, 1, 0, 7, 149, 20, },
-+      { 2, 1, 0, 7, 149, 24, },
-+      { 1, 1, 0, 7, 149, 63, },
-+      { 0, 1, 0, 7, 153, 24, },
-+      { 2, 1, 0, 7, 153, 24, },
-+      { 1, 1, 0, 7, 153, 63, },
-+      { 0, 1, 0, 7, 157, 24, },
-+      { 2, 1, 0, 7, 157, 24, },
-+      { 1, 1, 0, 7, 157, 63, },
-+      { 0, 1, 0, 7, 161, 24, },
-+      { 2, 1, 0, 7, 161, 24, },
-+      { 1, 1, 0, 7, 161, 63, },
-+      { 0, 1, 0, 7, 165, 24, },
-+      { 2, 1, 0, 7, 165, 24, },
-+      { 1, 1, 0, 7, 165, 63, },
-+      { 0, 1, 1, 2, 38, 26, },
-+      { 2, 1, 1, 2, 38, 32, },
-+      { 1, 1, 1, 2, 38, 32, },
-+      { 0, 1, 1, 2, 46, 32, },
-+      { 2, 1, 1, 2, 46, 32, },
-+      { 1, 1, 1, 2, 46, 32, },
-+      { 0, 1, 1, 2, 54, 32, },
-+      { 2, 1, 1, 2, 54, 32, },
-+      { 1, 1, 1, 2, 54, 32, },
-+      { 0, 1, 1, 2, 62, 26, },
-+      { 2, 1, 1, 2, 62, 32, },
-+      { 1, 1, 1, 2, 62, 32, },
-+      { 0, 1, 1, 2, 102, 26, },
-+      { 2, 1, 1, 2, 102, 32, },
-+      { 1, 1, 1, 2, 102, 32, },
-+      { 0, 1, 1, 2, 110, 32, },
-+      { 2, 1, 1, 2, 110, 32, },
-+      { 1, 1, 1, 2, 110, 32, },
-+      { 0, 1, 1, 2, 118, 32, },
-+      { 2, 1, 1, 2, 118, 32, },
-+      { 1, 1, 1, 2, 118, 32, },
-+      { 0, 1, 1, 2, 126, 32, },
-+      { 2, 1, 1, 2, 126, 32, },
-+      { 1, 1, 1, 2, 126, 32, },
-+      { 0, 1, 1, 2, 134, 32, },
-+      { 2, 1, 1, 2, 134, 32, },
-+      { 1, 1, 1, 2, 134, 32, },
-+      { 0, 1, 1, 2, 151, 26, },
-+      { 2, 1, 1, 2, 151, 32, },
-+      { 1, 1, 1, 2, 151, 63, },
-+      { 0, 1, 1, 2, 159, 32, },
-+      { 2, 1, 1, 2, 159, 32, },
-+      { 1, 1, 1, 2, 159, 63, },
-+      { 0, 1, 1, 3, 38, 24, },
-+      { 2, 1, 1, 3, 38, 28, },
-+      { 1, 1, 1, 3, 38, 28, },
-+      { 0, 1, 1, 3, 46, 28, },
-+      { 2, 1, 1, 3, 46, 28, },
-+      { 1, 1, 1, 3, 46, 28, },
-+      { 0, 1, 1, 3, 54, 28, },
-+      { 2, 1, 1, 3, 54, 28, },
-+      { 1, 1, 1, 3, 54, 28, },
-+      { 0, 1, 1, 3, 62, 24, },
-+      { 2, 1, 1, 3, 62, 28, },
-+      { 1, 1, 1, 3, 62, 28, },
-+      { 0, 1, 1, 3, 102, 24, },
-+      { 2, 1, 1, 3, 102, 28, },
-+      { 1, 1, 1, 3, 102, 28, },
-+      { 0, 1, 1, 3, 110, 28, },
-+      { 2, 1, 1, 3, 110, 28, },
-+      { 1, 1, 1, 3, 110, 28, },
-+      { 0, 1, 1, 3, 118, 28, },
-+      { 2, 1, 1, 3, 118, 28, },
-+      { 1, 1, 1, 3, 118, 28, },
-+      { 0, 1, 1, 3, 126, 28, },
-+      { 2, 1, 1, 3, 126, 28, },
-+      { 1, 1, 1, 3, 126, 28, },
-+      { 0, 1, 1, 3, 134, 28, },
-+      { 2, 1, 1, 3, 134, 28, },
-+      { 1, 1, 1, 3, 134, 28, },
-+      { 0, 1, 1, 3, 151, 24, },
-+      { 2, 1, 1, 3, 151, 28, },
-+      { 1, 1, 1, 3, 151, 63, },
-+      { 0, 1, 1, 3, 159, 28, },
-+      { 2, 1, 1, 3, 159, 28, },
-+      { 1, 1, 1, 3, 159, 63, },
-+      { 0, 1, 1, 6, 38, 20, },
-+      { 2, 1, 1, 6, 38, 26, },
-+      { 1, 1, 1, 6, 38, 26, },
-+      { 0, 1, 1, 6, 46, 26, },
-+      { 2, 1, 1, 6, 46, 26, },
-+      { 1, 1, 1, 6, 46, 26, },
-+      { 0, 1, 1, 6, 54, 26, },
-+      { 2, 1, 1, 6, 54, 26, },
-+      { 1, 1, 1, 6, 54, 26, },
-+      { 0, 1, 1, 6, 62, 20, },
-+      { 2, 1, 1, 6, 62, 26, },
-+      { 1, 1, 1, 6, 62, 26, },
-+      { 0, 1, 1, 6, 102, 20, },
-+      { 2, 1, 1, 6, 102, 26, },
-+      { 1, 1, 1, 6, 102, 26, },
-+      { 0, 1, 1, 6, 110, 26, },
-+      { 2, 1, 1, 6, 110, 26, },
-+      { 1, 1, 1, 6, 110, 26, },
-+      { 0, 1, 1, 6, 118, 26, },
-+      { 2, 1, 1, 6, 118, 26, },
-+      { 1, 1, 1, 6, 118, 26, },
-+      { 0, 1, 1, 6, 126, 26, },
-+      { 2, 1, 1, 6, 126, 26, },
-+      { 1, 1, 1, 6, 126, 26, },
-+      { 0, 1, 1, 6, 134, 26, },
-+      { 2, 1, 1, 6, 134, 26, },
-+      { 1, 1, 1, 6, 134, 26, },
-+      { 0, 1, 1, 6, 151, 20, },
-+      { 2, 1, 1, 6, 151, 26, },
-+      { 1, 1, 1, 6, 151, 63, },
-+      { 0, 1, 1, 6, 159, 26, },
-+      { 2, 1, 1, 6, 159, 26, },
-+      { 1, 1, 1, 6, 159, 63, },
-+      { 0, 1, 1, 7, 38, 18, },
-+      { 2, 1, 1, 7, 38, 24, },
-+      { 1, 1, 1, 7, 38, 24, },
-+      { 0, 1, 1, 7, 46, 24, },
-+      { 2, 1, 1, 7, 46, 24, },
-+      { 1, 1, 1, 7, 46, 24, },
-+      { 0, 1, 1, 7, 54, 24, },
-+      { 2, 1, 1, 7, 54, 24, },
-+      { 1, 1, 1, 7, 54, 24, },
-+      { 0, 1, 1, 7, 62, 18, },
-+      { 2, 1, 1, 7, 62, 24, },
-+      { 1, 1, 1, 7, 62, 24, },
-+      { 0, 1, 1, 7, 102, 18, },
-+      { 2, 1, 1, 7, 102, 24, },
-+      { 1, 1, 1, 7, 102, 24, },
-+      { 0, 1, 1, 7, 110, 24, },
-+      { 2, 1, 1, 7, 110, 24, },
-+      { 1, 1, 1, 7, 110, 24, },
-+      { 0, 1, 1, 7, 118, 24, },
-+      { 2, 1, 1, 7, 118, 24, },
-+      { 1, 1, 1, 7, 118, 24, },
-+      { 0, 1, 1, 7, 126, 24, },
-+      { 2, 1, 1, 7, 126, 24, },
-+      { 1, 1, 1, 7, 126, 24, },
-+      { 0, 1, 1, 7, 134, 24, },
-+      { 2, 1, 1, 7, 134, 24, },
-+      { 1, 1, 1, 7, 134, 24, },
-+      { 0, 1, 1, 7, 151, 18, },
-+      { 2, 1, 1, 7, 151, 24, },
-+      { 1, 1, 1, 7, 151, 63, },
-+      { 0, 1, 1, 7, 159, 24, },
-+      { 2, 1, 1, 7, 159, 24, },
-+      { 1, 1, 1, 7, 159, 63, },
-+      { 0, 1, 2, 4, 42, 22, },
-+      { 2, 1, 2, 4, 42, 30, },
-+      { 1, 1, 2, 4, 42, 30, },
-+      { 0, 1, 2, 4, 58, 22, },
-+      { 2, 1, 2, 4, 58, 30, },
-+      { 1, 1, 2, 4, 58, 30, },
-+      { 0, 1, 2, 4, 106, 22, },
-+      { 2, 1, 2, 4, 106, 30, },
-+      { 1, 1, 2, 4, 106, 30, },
-+      { 0, 1, 2, 4, 122, 30, },
-+      { 2, 1, 2, 4, 122, 30, },
-+      { 1, 1, 2, 4, 122, 30, },
-+      { 0, 1, 2, 4, 155, 22, },
-+      { 2, 1, 2, 4, 155, 30, },
-+      { 1, 1, 2, 4, 155, 63, },
-+      { 0, 1, 2, 5, 42, 20, },
-+      { 2, 1, 2, 5, 42, 28, },
-+      { 1, 1, 2, 5, 42, 28, },
-+      { 0, 1, 2, 5, 58, 20, },
-+      { 2, 1, 2, 5, 58, 28, },
-+      { 1, 1, 2, 5, 58, 28, },
-+      { 0, 1, 2, 5, 106, 20, },
-+      { 2, 1, 2, 5, 106, 28, },
-+      { 1, 1, 2, 5, 106, 28, },
-+      { 0, 1, 2, 5, 122, 28, },
-+      { 2, 1, 2, 5, 122, 28, },
-+      { 1, 1, 2, 5, 122, 28, },
-+      { 0, 1, 2, 5, 155, 20, },
-+      { 2, 1, 2, 5, 155, 28, },
-+      { 1, 1, 2, 5, 155, 63, },
-+      { 0, 1, 2, 8, 42, 18, },
-+      { 2, 1, 2, 8, 42, 26, },
-+      { 1, 1, 2, 8, 42, 26, },
-+      { 0, 1, 2, 8, 58, 18, },
-+      { 2, 1, 2, 8, 58, 26, },
-+      { 1, 1, 2, 8, 58, 26, },
-+      { 0, 1, 2, 8, 106, 18, },
-+      { 2, 1, 2, 8, 106, 26, },
-+      { 1, 1, 2, 8, 106, 26, },
-+      { 0, 1, 2, 8, 122, 26, },
-+      { 2, 1, 2, 8, 122, 26, },
-+      { 1, 1, 2, 8, 122, 26, },
-+      { 0, 1, 2, 8, 155, 18, },
-+      { 2, 1, 2, 8, 155, 26, },
-+      { 1, 1, 2, 8, 155, 63, },
-+      { 0, 1, 2, 9, 42, 16, },
-+      { 2, 1, 2, 9, 42, 24, },
-+      { 1, 1, 2, 9, 42, 24, },
-+      { 0, 1, 2, 9, 58, 16, },
-+      { 2, 1, 2, 9, 58, 24, },
-+      { 1, 1, 2, 9, 58, 24, },
-+      { 0, 1, 2, 9, 106, 16, },
-+      { 2, 1, 2, 9, 106, 24, },
-+      { 1, 1, 2, 9, 106, 24, },
-+      { 0, 1, 2, 9, 122, 24, },
-+      { 2, 1, 2, 9, 122, 24, },
-+      { 1, 1, 2, 9, 122, 24, },
-+      { 0, 1, 2, 9, 155, 16, },
-+      { 2, 1, 2, 9, 155, 24, },
-+      { 1, 1, 2, 9, 155, 63, },
-+};
-+
-+RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type0);
-+
-+static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type1[] = {
-+              { 0, 0, 0, 0, 1, 34, },
-+      { 2, 0, 0, 0, 1, 32, },
-+      { 1, 0, 0, 0, 1, 32, },
-+      { 0, 0, 0, 0, 2, 34, },
-+      { 2, 0, 0, 0, 2, 32, },
-+      { 1, 0, 0, 0, 2, 32, },
-+      { 0, 0, 0, 0, 3, 34, },
-+      { 2, 0, 0, 0, 3, 32, },
-+      { 1, 0, 0, 0, 3, 32, },
-+      { 0, 0, 0, 0, 4, 34, },
-+      { 2, 0, 0, 0, 4, 32, },
-+      { 1, 0, 0, 0, 4, 32, },
-+      { 0, 0, 0, 0, 5, 34, },
-+      { 2, 0, 0, 0, 5, 32, },
-+      { 1, 0, 0, 0, 5, 32, },
-+      { 0, 0, 0, 0, 6, 34, },
-+      { 2, 0, 0, 0, 6, 32, },
-+      { 1, 0, 0, 0, 6, 32, },
-+      { 0, 0, 0, 0, 7, 34, },
-+      { 2, 0, 0, 0, 7, 32, },
-+      { 1, 0, 0, 0, 7, 32, },
-+      { 0, 0, 0, 0, 8, 34, },
-+      { 2, 0, 0, 0, 8, 32, },
-+      { 1, 0, 0, 0, 8, 32, },
-+      { 0, 0, 0, 0, 9, 34, },
-+      { 2, 0, 0, 0, 9, 32, },
-+      { 1, 0, 0, 0, 9, 32, },
-+      { 0, 0, 0, 0, 10, 34, },
-+      { 2, 0, 0, 0, 10, 32, },
-+      { 1, 0, 0, 0, 10, 32, },
-+      { 0, 0, 0, 0, 11, 34, },
-+      { 2, 0, 0, 0, 11, 32, },
-+      { 1, 0, 0, 0, 11, 32, },
-+      { 0, 0, 0, 0, 12, 24, },
-+      { 2, 0, 0, 0, 12, 32, },
-+      { 1, 0, 0, 0, 12, 32, },
-+      { 0, 0, 0, 0, 13, 16, },
-+      { 2, 0, 0, 0, 13, 32, },
-+      { 1, 0, 0, 0, 13, 32, },
-+      { 0, 0, 0, 0, 14, 63, },
-+      { 2, 0, 0, 0, 14, 63, },
-+      { 1, 0, 0, 0, 14, 32, },
-+      { 0, 0, 0, 1, 1, 30, },
-+      { 2, 0, 0, 1, 1, 32, },
-+      { 1, 0, 0, 1, 1, 32, },
-+      { 0, 0, 0, 1, 2, 32, },
-+      { 2, 0, 0, 1, 2, 32, },
-+      { 1, 0, 0, 1, 2, 32, },
-+      { 0, 0, 0, 1, 3, 32, },
-+      { 2, 0, 0, 1, 3, 32, },
-+      { 1, 0, 0, 1, 3, 32, },
-+      { 0, 0, 0, 1, 4, 32, },
-+      { 2, 0, 0, 1, 4, 32, },
-+      { 1, 0, 0, 1, 4, 32, },
-+      { 0, 0, 0, 1, 5, 32, },
-+      { 2, 0, 0, 1, 5, 32, },
-+      { 1, 0, 0, 1, 5, 32, },
-+      { 0, 0, 0, 1, 6, 32, },
-+      { 2, 0, 0, 1, 6, 32, },
-+      { 1, 0, 0, 1, 6, 32, },
-+      { 0, 0, 0, 1, 7, 32, },
-+      { 2, 0, 0, 1, 7, 32, },
-+      { 1, 0, 0, 1, 7, 32, },
-+      { 0, 0, 0, 1, 8, 32, },
-+      { 2, 0, 0, 1, 8, 32, },
-+      { 1, 0, 0, 1, 8, 32, },
-+      { 0, 0, 0, 1, 9, 32, },
-+      { 2, 0, 0, 1, 9, 32, },
-+      { 1, 0, 0, 1, 9, 32, },
-+      { 0, 0, 0, 1, 10, 32, },
-+      { 2, 0, 0, 1, 10, 32, },
-+      { 1, 0, 0, 1, 10, 32, },
-+      { 0, 0, 0, 1, 11, 30, },
-+      { 2, 0, 0, 1, 11, 32, },
-+      { 1, 0, 0, 1, 11, 32, },
-+      { 0, 0, 0, 1, 12, 18, },
-+      { 2, 0, 0, 1, 12, 32, },
-+      { 1, 0, 0, 1, 12, 32, },
-+      { 0, 0, 0, 1, 13, 8, },
-+      { 2, 0, 0, 1, 13, 32, },
-+      { 1, 0, 0, 1, 13, 32, },
-+      { 0, 0, 0, 1, 14, 63, },
-+      { 2, 0, 0, 1, 14, 63, },
-+      { 1, 0, 0, 1, 14, 63, },
-+      { 0, 0, 0, 2, 1, 28, },
-+      { 2, 0, 0, 2, 1, 32, },
-+      { 1, 0, 0, 2, 1, 32, },
-+      { 0, 0, 0, 2, 2, 32, },
-+      { 2, 0, 0, 2, 2, 32, },
-+      { 1, 0, 0, 2, 2, 32, },
-+      { 0, 0, 0, 2, 3, 32, },
-+      { 2, 0, 0, 2, 3, 32, },
-+      { 1, 0, 0, 2, 3, 32, },
-+      { 0, 0, 0, 2, 4, 32, },
-+      { 2, 0, 0, 2, 4, 32, },
-+      { 1, 0, 0, 2, 4, 32, },
-+      { 0, 0, 0, 2, 5, 32, },
-+      { 2, 0, 0, 2, 5, 32, },
-+      { 1, 0, 0, 2, 5, 32, },
-+      { 0, 0, 0, 2, 6, 32, },
-+      { 2, 0, 0, 2, 6, 32, },
-+      { 1, 0, 0, 2, 6, 32, },
-+      { 0, 0, 0, 2, 7, 32, },
-+      { 2, 0, 0, 2, 7, 32, },
-+      { 1, 0, 0, 2, 7, 32, },
-+      { 0, 0, 0, 2, 8, 32, },
-+      { 2, 0, 0, 2, 8, 32, },
-+      { 1, 0, 0, 2, 8, 32, },
-+      { 0, 0, 0, 2, 9, 32, },
-+      { 2, 0, 0, 2, 9, 32, },
-+      { 1, 0, 0, 2, 9, 32, },
-+      { 0, 0, 0, 2, 10, 32, },
-+      { 2, 0, 0, 2, 10, 32, },
-+      { 1, 0, 0, 2, 10, 32, },
-+      { 0, 0, 0, 2, 11, 28, },
-+      { 2, 0, 0, 2, 11, 32, },
-+      { 1, 0, 0, 2, 11, 32, },
-+      { 0, 0, 0, 2, 12, 16, },
-+      { 2, 0, 0, 2, 12, 32, },
-+      { 1, 0, 0, 2, 12, 32, },
-+      { 0, 0, 0, 2, 13, 6, },
-+      { 2, 0, 0, 2, 13, 32, },
-+      { 1, 0, 0, 2, 13, 32, },
-+      { 0, 0, 0, 2, 14, 63, },
-+      { 2, 0, 0, 2, 14, 63, },
-+      { 1, 0, 0, 2, 14, 63, },
-+      { 0, 0, 0, 3, 1, 26, },
-+      { 2, 0, 0, 3, 1, 30, },
-+      { 1, 0, 0, 3, 1, 30, },
-+      { 0, 0, 0, 3, 2, 30, },
-+      { 2, 0, 0, 3, 2, 30, },
-+      { 1, 0, 0, 3, 2, 30, },
-+      { 0, 0, 0, 3, 3, 30, },
-+      { 2, 0, 0, 3, 3, 30, },
-+      { 1, 0, 0, 3, 3, 30, },
-+      { 0, 0, 0, 3, 4, 30, },
-+      { 2, 0, 0, 3, 4, 30, },
-+      { 1, 0, 0, 3, 4, 30, },
-+      { 0, 0, 0, 3, 5, 30, },
-+      { 2, 0, 0, 3, 5, 30, },
-+      { 1, 0, 0, 3, 5, 30, },
-+      { 0, 0, 0, 3, 6, 30, },
-+      { 2, 0, 0, 3, 6, 30, },
-+      { 1, 0, 0, 3, 6, 30, },
-+      { 0, 0, 0, 3, 7, 30, },
-+      { 2, 0, 0, 3, 7, 30, },
-+      { 1, 0, 0, 3, 7, 30, },
-+      { 0, 0, 0, 3, 8, 30, },
-+      { 2, 0, 0, 3, 8, 30, },
-+      { 1, 0, 0, 3, 8, 30, },
-+      { 0, 0, 0, 3, 9, 30, },
-+      { 2, 0, 0, 3, 9, 30, },
-+      { 1, 0, 0, 3, 9, 30, },
-+      { 0, 0, 0, 3, 10, 30, },
-+      { 2, 0, 0, 3, 10, 30, },
-+      { 1, 0, 0, 3, 10, 30, },
-+      { 0, 0, 0, 3, 11, 26, },
-+      { 2, 0, 0, 3, 11, 30, },
-+      { 1, 0, 0, 3, 11, 30, },
-+      { 0, 0, 0, 3, 12, 14, },
-+      { 2, 0, 0, 3, 12, 30, },
-+      { 1, 0, 0, 3, 12, 30, },
-+      { 0, 0, 0, 3, 13, 4, },
-+      { 2, 0, 0, 3, 13, 30, },
-+      { 1, 0, 0, 3, 13, 30, },
-+      { 0, 0, 0, 3, 14, 63, },
-+      { 2, 0, 0, 3, 14, 63, },
-+      { 1, 0, 0, 3, 14, 63, },
-+      { 0, 0, 0, 6, 1, 24, },
-+      { 2, 0, 0, 6, 1, 28, },
-+      { 1, 0, 0, 6, 1, 28, },
-+      { 0, 0, 0, 6, 2, 28, },
-+      { 2, 0, 0, 6, 2, 28, },
-+      { 1, 0, 0, 6, 2, 28, },
-+      { 0, 0, 0, 6, 3, 28, },
-+      { 2, 0, 0, 6, 3, 28, },
-+      { 1, 0, 0, 6, 3, 28, },
-+      { 0, 0, 0, 6, 4, 28, },
-+      { 2, 0, 0, 6, 4, 28, },
-+      { 1, 0, 0, 6, 4, 28, },
-+      { 0, 0, 0, 6, 5, 28, },
-+      { 2, 0, 0, 6, 5, 28, },
-+      { 1, 0, 0, 6, 5, 28, },
-+      { 0, 0, 0, 6, 6, 28, },
-+      { 2, 0, 0, 6, 6, 28, },
-+      { 1, 0, 0, 6, 6, 28, },
-+      { 0, 0, 0, 6, 7, 28, },
-+      { 2, 0, 0, 6, 7, 28, },
-+      { 1, 0, 0, 6, 7, 28, },
-+      { 0, 0, 0, 6, 8, 28, },
-+      { 2, 0, 0, 6, 8, 28, },
-+      { 1, 0, 0, 6, 8, 28, },
-+      { 0, 0, 0, 6, 9, 28, },
-+      { 2, 0, 0, 6, 9, 28, },
-+      { 1, 0, 0, 6, 9, 28, },
-+      { 0, 0, 0, 6, 10, 28, },
-+      { 2, 0, 0, 6, 10, 28, },
-+      { 1, 0, 0, 6, 10, 28, },
-+      { 0, 0, 0, 6, 11, 24, },
-+      { 2, 0, 0, 6, 11, 28, },
-+      { 1, 0, 0, 6, 11, 28, },
-+      { 0, 0, 0, 6, 12, 14, },
-+      { 2, 0, 0, 6, 12, 28, },
-+      { 1, 0, 0, 6, 12, 28, },
-+      { 0, 0, 0, 6, 13, 4, },
-+      { 2, 0, 0, 6, 13, 28, },
-+      { 1, 0, 0, 6, 13, 28, },
-+      { 0, 0, 0, 6, 14, 63, },
-+      { 2, 0, 0, 6, 14, 63, },
-+      { 1, 0, 0, 6, 14, 63, },
-+      { 0, 0, 0, 7, 1, 22, },
-+      { 2, 0, 0, 7, 1, 26, },
-+      { 1, 0, 0, 7, 1, 26, },
-+      { 0, 0, 0, 7, 2, 26, },
-+      { 2, 0, 0, 7, 2, 26, },
-+      { 1, 0, 0, 7, 2, 26, },
-+      { 0, 0, 0, 7, 3, 26, },
-+      { 2, 0, 0, 7, 3, 26, },
-+      { 1, 0, 0, 7, 3, 26, },
-+      { 0, 0, 0, 7, 4, 26, },
-+      { 2, 0, 0, 7, 4, 26, },
-+      { 1, 0, 0, 7, 4, 26, },
-+      { 0, 0, 0, 7, 5, 26, },
-+      { 2, 0, 0, 7, 5, 26, },
-+      { 1, 0, 0, 7, 5, 26, },
-+      { 0, 0, 0, 7, 6, 26, },
-+      { 2, 0, 0, 7, 6, 26, },
-+      { 1, 0, 0, 7, 6, 26, },
-+      { 0, 0, 0, 7, 7, 26, },
-+      { 2, 0, 0, 7, 7, 26, },
-+      { 1, 0, 0, 7, 7, 26, },
-+      { 0, 0, 0, 7, 8, 26, },
-+      { 2, 0, 0, 7, 8, 26, },
-+      { 1, 0, 0, 7, 8, 26, },
-+      { 0, 0, 0, 7, 9, 26, },
-+      { 2, 0, 0, 7, 9, 26, },
-+      { 1, 0, 0, 7, 9, 26, },
-+      { 0, 0, 0, 7, 10, 26, },
-+      { 2, 0, 0, 7, 10, 26, },
-+      { 1, 0, 0, 7, 10, 26, },
-+      { 0, 0, 0, 7, 11, 22, },
-+      { 2, 0, 0, 7, 11, 26, },
-+      { 1, 0, 0, 7, 11, 26, },
-+      { 0, 0, 0, 7, 12, 14, },
-+      { 2, 0, 0, 7, 12, 26, },
-+      { 1, 0, 0, 7, 12, 26, },
-+      { 0, 0, 0, 7, 13, 4, },
-+      { 2, 0, 0, 7, 13, 26, },
-+      { 1, 0, 0, 7, 13, 26, },
-+      { 0, 0, 0, 7, 14, 63, },
-+      { 2, 0, 0, 7, 14, 63, },
-+      { 1, 0, 0, 7, 14, 63, },
-+      { 0, 0, 1, 2, 1, 63, },
-+      { 2, 0, 1, 2, 1, 63, },
-+      { 1, 0, 1, 2, 1, 63, },
-+      { 0, 0, 1, 2, 2, 63, },
-+      { 2, 0, 1, 2, 2, 63, },
-+      { 1, 0, 1, 2, 2, 63, },
-+      { 0, 0, 1, 2, 3, 28, },
-+      { 2, 0, 1, 2, 3, 32, },
-+      { 1, 0, 1, 2, 3, 32, },
-+      { 0, 0, 1, 2, 4, 32, },
-+      { 2, 0, 1, 2, 4, 32, },
-+      { 1, 0, 1, 2, 4, 32, },
-+      { 0, 0, 1, 2, 5, 32, },
-+      { 2, 0, 1, 2, 5, 32, },
-+      { 1, 0, 1, 2, 5, 32, },
-+      { 0, 0, 1, 2, 6, 32, },
-+      { 2, 0, 1, 2, 6, 32, },
-+      { 1, 0, 1, 2, 6, 32, },
-+      { 0, 0, 1, 2, 7, 32, },
-+      { 2, 0, 1, 2, 7, 32, },
-+      { 1, 0, 1, 2, 7, 32, },
-+      { 0, 0, 1, 2, 8, 32, },
-+      { 2, 0, 1, 2, 8, 32, },
-+      { 1, 0, 1, 2, 8, 32, },
-+      { 0, 0, 1, 2, 9, 32, },
-+      { 2, 0, 1, 2, 9, 32, },
-+      { 1, 0, 1, 2, 9, 32, },
-+      { 0, 0, 1, 2, 10, 32, },
-+      { 2, 0, 1, 2, 10, 32, },
-+      { 1, 0, 1, 2, 10, 32, },
-+      { 0, 0, 1, 2, 11, 28, },
-+      { 2, 0, 1, 2, 11, 32, },
-+      { 1, 0, 1, 2, 11, 32, },
-+      { 0, 0, 1, 2, 12, 16, },
-+      { 2, 0, 1, 2, 12, 32, },
-+      { 1, 0, 1, 2, 12, 32, },
-+      { 0, 0, 1, 2, 13, 10, },
-+      { 2, 0, 1, 2, 13, 32, },
-+      { 1, 0, 1, 2, 13, 32, },
-+      { 0, 0, 1, 2, 14, 63, },
-+      { 2, 0, 1, 2, 14, 63, },
-+      { 1, 0, 1, 2, 14, 63, },
-+      { 0, 0, 1, 3, 1, 63, },
-+      { 2, 0, 1, 3, 1, 63, },
-+      { 1, 0, 1, 3, 1, 63, },
-+      { 0, 0, 1, 3, 2, 63, },
-+      { 2, 0, 1, 3, 2, 63, },
-+      { 1, 0, 1, 3, 2, 63, },
-+      { 0, 0, 1, 3, 3, 26, },
-+      { 2, 0, 1, 3, 3, 30, },
-+      { 1, 0, 1, 3, 3, 30, },
-+      { 0, 0, 1, 3, 4, 30, },
-+      { 2, 0, 1, 3, 4, 30, },
-+      { 1, 0, 1, 3, 4, 30, },
-+      { 0, 0, 1, 3, 5, 30, },
-+      { 2, 0, 1, 3, 5, 30, },
-+      { 1, 0, 1, 3, 5, 30, },
-+      { 0, 0, 1, 3, 6, 30, },
-+      { 2, 0, 1, 3, 6, 30, },
-+      { 1, 0, 1, 3, 6, 30, },
-+      { 0, 0, 1, 3, 7, 30, },
-+      { 2, 0, 1, 3, 7, 30, },
-+      { 1, 0, 1, 3, 7, 30, },
-+      { 0, 0, 1, 3, 8, 30, },
-+      { 2, 0, 1, 3, 8, 30, },
-+      { 1, 0, 1, 3, 8, 30, },
-+      { 0, 0, 1, 3, 9, 30, },
-+      { 2, 0, 1, 3, 9, 30, },
-+      { 1, 0, 1, 3, 9, 30, },
-+      { 0, 0, 1, 3, 10, 30, },
-+      { 2, 0, 1, 3, 10, 30, },
-+      { 1, 0, 1, 3, 10, 30, },
-+      { 0, 0, 1, 3, 11, 26, },
-+      { 2, 0, 1, 3, 11, 30, },
-+      { 1, 0, 1, 3, 11, 30, },
-+      { 0, 0, 1, 3, 12, 14, },
-+      { 2, 0, 1, 3, 12, 30, },
-+      { 1, 0, 1, 3, 12, 30, },
-+      { 0, 0, 1, 3, 13, 8, },
-+      { 2, 0, 1, 3, 13, 30, },
-+      { 1, 0, 1, 3, 13, 30, },
-+      { 0, 0, 1, 3, 14, 63, },
-+      { 2, 0, 1, 3, 14, 63, },
-+      { 1, 0, 1, 3, 14, 63, },
-+      { 0, 0, 1, 6, 1, 63, },
-+      { 2, 0, 1, 6, 1, 63, },
-+      { 1, 0, 1, 6, 1, 63, },
-+      { 0, 0, 1, 6, 2, 63, },
-+      { 2, 0, 1, 6, 2, 63, },
-+      { 1, 0, 1, 6, 2, 63, },
-+      { 0, 0, 1, 6, 3, 24, },
-+      { 2, 0, 1, 6, 3, 28, },
-+      { 1, 0, 1, 6, 3, 28, },
-+      { 0, 0, 1, 6, 4, 28, },
-+      { 2, 0, 1, 6, 4, 28, },
-+      { 1, 0, 1, 6, 4, 28, },
-+      { 0, 0, 1, 6, 5, 28, },
-+      { 2, 0, 1, 6, 5, 28, },
-+      { 1, 0, 1, 6, 5, 28, },
-+      { 0, 0, 1, 6, 6, 28, },
-+      { 2, 0, 1, 6, 6, 28, },
-+      { 1, 0, 1, 6, 6, 28, },
-+      { 0, 0, 1, 6, 7, 28, },
-+      { 2, 0, 1, 6, 7, 28, },
-+      { 1, 0, 1, 6, 7, 28, },
-+      { 0, 0, 1, 6, 8, 28, },
-+      { 2, 0, 1, 6, 8, 28, },
-+      { 1, 0, 1, 6, 8, 28, },
-+      { 0, 0, 1, 6, 9, 28, },
-+      { 2, 0, 1, 6, 9, 28, },
-+      { 1, 0, 1, 6, 9, 28, },
-+      { 0, 0, 1, 6, 10, 28, },
-+      { 2, 0, 1, 6, 10, 28, },
-+      { 1, 0, 1, 6, 10, 28, },
-+      { 0, 0, 1, 6, 11, 24, },
-+      { 2, 0, 1, 6, 11, 28, },
-+      { 1, 0, 1, 6, 11, 28, },
-+      { 0, 0, 1, 6, 12, 14, },
-+      { 2, 0, 1, 6, 12, 28, },
-+      { 1, 0, 1, 6, 12, 28, },
-+      { 0, 0, 1, 6, 13, 8, },
-+      { 2, 0, 1, 6, 13, 28, },
-+      { 1, 0, 1, 6, 13, 28, },
-+      { 0, 0, 1, 6, 14, 63, },
-+      { 2, 0, 1, 6, 14, 63, },
-+      { 1, 0, 1, 6, 14, 63, },
-+      { 0, 0, 1, 7, 1, 63, },
-+      { 2, 0, 1, 7, 1, 63, },
-+      { 1, 0, 1, 7, 1, 63, },
-+      { 0, 0, 1, 7, 2, 63, },
-+      { 2, 0, 1, 7, 2, 63, },
-+      { 1, 0, 1, 7, 2, 63, },
-+      { 0, 0, 1, 7, 3, 22, },
-+      { 2, 0, 1, 7, 3, 26, },
-+      { 1, 0, 1, 7, 3, 26, },
-+      { 0, 0, 1, 7, 4, 26, },
-+      { 2, 0, 1, 7, 4, 26, },
-+      { 1, 0, 1, 7, 4, 26, },
-+      { 0, 0, 1, 7, 5, 26, },
-+      { 2, 0, 1, 7, 5, 26, },
-+      { 1, 0, 1, 7, 5, 26, },
-+      { 0, 0, 1, 7, 6, 26, },
-+      { 2, 0, 1, 7, 6, 26, },
-+      { 1, 0, 1, 7, 6, 26, },
-+      { 0, 0, 1, 7, 7, 26, },
-+      { 2, 0, 1, 7, 7, 26, },
-+      { 1, 0, 1, 7, 7, 26, },
-+      { 0, 0, 1, 7, 8, 26, },
-+      { 2, 0, 1, 7, 8, 26, },
-+      { 1, 0, 1, 7, 8, 26, },
-+      { 0, 0, 1, 7, 9, 26, },
-+      { 2, 0, 1, 7, 9, 26, },
-+      { 1, 0, 1, 7, 9, 26, },
-+      { 0, 0, 1, 7, 10, 26, },
-+      { 2, 0, 1, 7, 10, 26, },
-+      { 1, 0, 1, 7, 10, 26, },
-+      { 0, 0, 1, 7, 11, 22, },
-+      { 2, 0, 1, 7, 11, 26, },
-+      { 1, 0, 1, 7, 11, 26, },
-+      { 0, 0, 1, 7, 12, 14, },
-+      { 2, 0, 1, 7, 12, 26, },
-+      { 1, 0, 1, 7, 12, 26, },
-+      { 0, 0, 1, 7, 13, 8, },
-+      { 2, 0, 1, 7, 13, 26, },
-+      { 1, 0, 1, 7, 13, 26, },
-+      { 0, 0, 1, 7, 14, 63, },
-+      { 2, 0, 1, 7, 14, 63, },
-+      { 1, 0, 1, 7, 14, 63, },
-+      { 0, 1, 0, 1, 36, 28, },
-+      { 2, 1, 0, 1, 36, 32, },
-+      { 1, 1, 0, 1, 36, 32, },
-+      { 0, 1, 0, 1, 40, 32, },
-+      { 2, 1, 0, 1, 40, 32, },
-+      { 1, 1, 0, 1, 40, 32, },
-+      { 0, 1, 0, 1, 44, 32, },
-+      { 2, 1, 0, 1, 44, 32, },
-+      { 1, 1, 0, 1, 44, 32, },
-+      { 0, 1, 0, 1, 48, 32, },
-+      { 2, 1, 0, 1, 48, 32, },
-+      { 1, 1, 0, 1, 48, 32, },
-+      { 0, 1, 0, 1, 52, 32, },
-+      { 2, 1, 0, 1, 52, 32, },
-+      { 1, 1, 0, 1, 52, 32, },
-+      { 0, 1, 0, 1, 56, 32, },
-+      { 2, 1, 0, 1, 56, 32, },
-+      { 1, 1, 0, 1, 56, 32, },
-+      { 0, 1, 0, 1, 60, 32, },
-+      { 2, 1, 0, 1, 60, 32, },
-+      { 1, 1, 0, 1, 60, 32, },
-+      { 0, 1, 0, 1, 64, 30, },
-+      { 2, 1, 0, 1, 64, 32, },
-+      { 1, 1, 0, 1, 64, 32, },
-+      { 0, 1, 0, 1, 100, 28, },
-+      { 2, 1, 0, 1, 100, 32, },
-+      { 1, 1, 0, 1, 100, 32, },
-+      { 0, 1, 0, 1, 104, 32, },
-+      { 2, 1, 0, 1, 104, 32, },
-+      { 1, 1, 0, 1, 104, 32, },
-+      { 0, 1, 0, 1, 108, 32, },
-+      { 2, 1, 0, 1, 108, 32, },
-+      { 1, 1, 0, 1, 108, 32, },
-+      { 0, 1, 0, 1, 112, 32, },
-+      { 2, 1, 0, 1, 112, 32, },
-+      { 1, 1, 0, 1, 112, 32, },
-+      { 0, 1, 0, 1, 116, 32, },
-+      { 2, 1, 0, 1, 116, 32, },
-+      { 1, 1, 0, 1, 116, 32, },
-+      { 0, 1, 0, 1, 120, 32, },
-+      { 2, 1, 0, 1, 120, 32, },
-+      { 1, 1, 0, 1, 120, 32, },
-+      { 0, 1, 0, 1, 124, 32, },
-+      { 2, 1, 0, 1, 124, 32, },
-+      { 1, 1, 0, 1, 124, 32, },
-+      { 0, 1, 0, 1, 128, 32, },
-+      { 2, 1, 0, 1, 128, 32, },
-+      { 1, 1, 0, 1, 128, 32, },
-+      { 0, 1, 0, 1, 132, 32, },
-+      { 2, 1, 0, 1, 132, 32, },
-+      { 1, 1, 0, 1, 132, 32, },
-+      { 0, 1, 0, 1, 136, 32, },
-+      { 2, 1, 0, 1, 136, 32, },
-+      { 1, 1, 0, 1, 136, 32, },
-+      { 0, 1, 0, 1, 140, 28, },
-+      { 2, 1, 0, 1, 140, 32, },
-+      { 1, 1, 0, 1, 140, 32, },
-+      { 0, 1, 0, 1, 149, 28, },
-+      { 2, 1, 0, 1, 149, 32, },
-+      { 1, 1, 0, 1, 149, 63, },
-+      { 0, 1, 0, 1, 153, 32, },
-+      { 2, 1, 0, 1, 153, 32, },
-+      { 1, 1, 0, 1, 153, 63, },
-+      { 0, 1, 0, 1, 157, 32, },
-+      { 2, 1, 0, 1, 157, 32, },
-+      { 1, 1, 0, 1, 157, 63, },
-+      { 0, 1, 0, 1, 161, 32, },
-+      { 2, 1, 0, 1, 161, 32, },
-+      { 1, 1, 0, 1, 161, 63, },
-+      { 0, 1, 0, 1, 165, 32, },
-+      { 2, 1, 0, 1, 165, 32, },
-+      { 1, 1, 0, 1, 165, 63, },
-+      { 0, 1, 0, 2, 36, 28, },
-+      { 2, 1, 0, 2, 36, 32, },
-+      { 1, 1, 0, 2, 36, 32, },
-+      { 0, 1, 0, 2, 40, 32, },
-+      { 2, 1, 0, 2, 40, 32, },
-+      { 1, 1, 0, 2, 40, 32, },
-+      { 0, 1, 0, 2, 44, 32, },
-+      { 2, 1, 0, 2, 44, 32, },
-+      { 1, 1, 0, 2, 44, 32, },
-+      { 0, 1, 0, 2, 48, 32, },
-+      { 2, 1, 0, 2, 48, 32, },
-+      { 1, 1, 0, 2, 48, 32, },
-+      { 0, 1, 0, 2, 52, 32, },
-+      { 2, 1, 0, 2, 52, 32, },
-+      { 1, 1, 0, 2, 52, 32, },
-+      { 0, 1, 0, 2, 56, 32, },
-+      { 2, 1, 0, 2, 56, 32, },
-+      { 1, 1, 0, 2, 56, 32, },
-+      { 0, 1, 0, 2, 60, 32, },
-+      { 2, 1, 0, 2, 60, 32, },
-+      { 1, 1, 0, 2, 60, 32, },
-+      { 0, 1, 0, 2, 64, 30, },
-+      { 2, 1, 0, 2, 64, 32, },
-+      { 1, 1, 0, 2, 64, 32, },
-+      { 0, 1, 0, 2, 100, 28, },
-+      { 2, 1, 0, 2, 100, 32, },
-+      { 1, 1, 0, 2, 100, 32, },
-+      { 0, 1, 0, 2, 104, 32, },
-+      { 2, 1, 0, 2, 104, 32, },
-+      { 1, 1, 0, 2, 104, 32, },
-+      { 0, 1, 0, 2, 108, 32, },
-+      { 2, 1, 0, 2, 108, 32, },
-+      { 1, 1, 0, 2, 108, 32, },
-+      { 0, 1, 0, 2, 112, 32, },
-+      { 2, 1, 0, 2, 112, 32, },
-+      { 1, 1, 0, 2, 112, 32, },
-+      { 0, 1, 0, 2, 116, 32, },
-+      { 2, 1, 0, 2, 116, 32, },
-+      { 1, 1, 0, 2, 116, 32, },
-+      { 0, 1, 0, 2, 120, 32, },
-+      { 2, 1, 0, 2, 120, 32, },
-+      { 1, 1, 0, 2, 120, 32, },
-+      { 0, 1, 0, 2, 124, 32, },
-+      { 2, 1, 0, 2, 124, 32, },
-+      { 1, 1, 0, 2, 124, 32, },
-+      { 0, 1, 0, 2, 128, 32, },
-+      { 2, 1, 0, 2, 128, 32, },
-+      { 1, 1, 0, 2, 128, 32, },
-+      { 0, 1, 0, 2, 132, 32, },
-+      { 2, 1, 0, 2, 132, 32, },
-+      { 1, 1, 0, 2, 132, 32, },
-+      { 0, 1, 0, 2, 136, 32, },
-+      { 2, 1, 0, 2, 136, 32, },
-+      { 1, 1, 0, 2, 136, 32, },
-+      { 0, 1, 0, 2, 140, 28, },
-+      { 2, 1, 0, 2, 140, 32, },
-+      { 1, 1, 0, 2, 140, 32, },
-+      { 0, 1, 0, 2, 149, 28, },
-+      { 2, 1, 0, 2, 149, 32, },
-+      { 1, 1, 0, 2, 149, 63, },
-+      { 0, 1, 0, 2, 153, 32, },
-+      { 2, 1, 0, 2, 153, 32, },
-+      { 1, 1, 0, 2, 153, 63, },
-+      { 0, 1, 0, 2, 157, 32, },
-+      { 2, 1, 0, 2, 157, 32, },
-+      { 1, 1, 0, 2, 157, 63, },
-+      { 0, 1, 0, 2, 161, 32, },
-+      { 2, 1, 0, 2, 161, 32, },
-+      { 1, 1, 0, 2, 161, 63, },
-+      { 0, 1, 0, 2, 165, 32, },
-+      { 2, 1, 0, 2, 165, 32, },
-+      { 1, 1, 0, 2, 165, 63, },
-+      { 0, 1, 0, 3, 36, 26, },
-+      { 2, 1, 0, 3, 36, 30, },
-+      { 1, 1, 0, 3, 36, 30, },
-+      { 0, 1, 0, 3, 40, 30, },
-+      { 2, 1, 0, 3, 40, 30, },
-+      { 1, 1, 0, 3, 40, 30, },
-+      { 0, 1, 0, 3, 44, 30, },
-+      { 2, 1, 0, 3, 44, 30, },
-+      { 1, 1, 0, 3, 44, 30, },
-+      { 0, 1, 0, 3, 48, 30, },
-+      { 2, 1, 0, 3, 48, 30, },
-+      { 1, 1, 0, 3, 48, 30, },
-+      { 0, 1, 0, 3, 52, 30, },
-+      { 2, 1, 0, 3, 52, 30, },
-+      { 1, 1, 0, 3, 52, 30, },
-+      { 0, 1, 0, 3, 56, 30, },
-+      { 2, 1, 0, 3, 56, 30, },
-+      { 1, 1, 0, 3, 56, 30, },
-+      { 0, 1, 0, 3, 60, 30, },
-+      { 2, 1, 0, 3, 60, 30, },
-+      { 1, 1, 0, 3, 60, 30, },
-+      { 0, 1, 0, 3, 64, 28, },
-+      { 2, 1, 0, 3, 64, 30, },
-+      { 1, 1, 0, 3, 64, 30, },
-+      { 0, 1, 0, 3, 100, 28, },
-+      { 2, 1, 0, 3, 100, 30, },
-+      { 1, 1, 0, 3, 100, 30, },
-+      { 0, 1, 0, 3, 104, 30, },
-+      { 2, 1, 0, 3, 104, 30, },
-+      { 1, 1, 0, 3, 104, 30, },
-+      { 0, 1, 0, 3, 108, 30, },
-+      { 2, 1, 0, 3, 108, 30, },
-+      { 1, 1, 0, 3, 108, 30, },
-+      { 0, 1, 0, 3, 112, 30, },
-+      { 2, 1, 0, 3, 112, 30, },
-+      { 1, 1, 0, 3, 112, 30, },
-+      { 0, 1, 0, 3, 116, 30, },
-+      { 2, 1, 0, 3, 116, 30, },
-+      { 1, 1, 0, 3, 116, 30, },
-+      { 0, 1, 0, 3, 120, 30, },
-+      { 2, 1, 0, 3, 120, 30, },
-+      { 1, 1, 0, 3, 120, 30, },
-+      { 0, 1, 0, 3, 124, 30, },
-+      { 2, 1, 0, 3, 124, 30, },
-+      { 1, 1, 0, 3, 124, 30, },
-+      { 0, 1, 0, 3, 128, 30, },
-+      { 2, 1, 0, 3, 128, 30, },
-+      { 1, 1, 0, 3, 128, 30, },
-+      { 0, 1, 0, 3, 132, 30, },
-+      { 2, 1, 0, 3, 132, 30, },
-+      { 1, 1, 0, 3, 132, 30, },
-+      { 0, 1, 0, 3, 136, 30, },
-+      { 2, 1, 0, 3, 136, 30, },
-+      { 1, 1, 0, 3, 136, 30, },
-+      { 0, 1, 0, 3, 140, 26, },
-+      { 2, 1, 0, 3, 140, 30, },
-+      { 1, 1, 0, 3, 140, 30, },
-+      { 0, 1, 0, 3, 149, 26, },
-+      { 2, 1, 0, 3, 149, 30, },
-+      { 1, 1, 0, 3, 149, 63, },
-+      { 0, 1, 0, 3, 153, 30, },
-+      { 2, 1, 0, 3, 153, 30, },
-+      { 1, 1, 0, 3, 153, 63, },
-+      { 0, 1, 0, 3, 157, 30, },
-+      { 2, 1, 0, 3, 157, 30, },
-+      { 1, 1, 0, 3, 157, 63, },
-+      { 0, 1, 0, 3, 161, 30, },
-+      { 2, 1, 0, 3, 161, 30, },
-+      { 1, 1, 0, 3, 161, 63, },
-+      { 0, 1, 0, 3, 165, 30, },
-+      { 2, 1, 0, 3, 165, 30, },
-+      { 1, 1, 0, 3, 165, 63, },
-+      { 0, 1, 0, 6, 36, 24, },
-+      { 2, 1, 0, 6, 36, 28, },
-+      { 1, 1, 0, 6, 36, 28, },
-+      { 0, 1, 0, 6, 40, 28, },
-+      { 2, 1, 0, 6, 40, 28, },
-+      { 1, 1, 0, 6, 40, 28, },
-+      { 0, 1, 0, 6, 44, 28, },
-+      { 2, 1, 0, 6, 44, 28, },
-+      { 1, 1, 0, 6, 44, 28, },
-+      { 0, 1, 0, 6, 48, 28, },
-+      { 2, 1, 0, 6, 48, 28, },
-+      { 1, 1, 0, 6, 48, 28, },
-+      { 0, 1, 0, 6, 52, 28, },
-+      { 2, 1, 0, 6, 52, 28, },
-+      { 1, 1, 0, 6, 52, 28, },
-+      { 0, 1, 0, 6, 56, 28, },
-+      { 2, 1, 0, 6, 56, 28, },
-+      { 1, 1, 0, 6, 56, 28, },
-+      { 0, 1, 0, 6, 60, 28, },
-+      { 2, 1, 0, 6, 60, 28, },
-+      { 1, 1, 0, 6, 60, 28, },
-+      { 0, 1, 0, 6, 64, 26, },
-+      { 2, 1, 0, 6, 64, 28, },
-+      { 1, 1, 0, 6, 64, 28, },
-+      { 0, 1, 0, 6, 100, 24, },
-+      { 2, 1, 0, 6, 100, 28, },
-+      { 1, 1, 0, 6, 100, 28, },
-+      { 0, 1, 0, 6, 104, 28, },
-+      { 2, 1, 0, 6, 104, 28, },
-+      { 1, 1, 0, 6, 104, 28, },
-+      { 0, 1, 0, 6, 108, 28, },
-+      { 2, 1, 0, 6, 108, 28, },
-+      { 1, 1, 0, 6, 108, 28, },
-+      { 0, 1, 0, 6, 112, 28, },
-+      { 2, 1, 0, 6, 112, 28, },
-+      { 1, 1, 0, 6, 112, 28, },
-+      { 0, 1, 0, 6, 116, 28, },
-+      { 2, 1, 0, 6, 116, 28, },
-+      { 1, 1, 0, 6, 116, 28, },
-+      { 0, 1, 0, 6, 120, 28, },
-+      { 2, 1, 0, 6, 120, 28, },
-+      { 1, 1, 0, 6, 120, 28, },
-+      { 0, 1, 0, 6, 124, 28, },
-+      { 2, 1, 0, 6, 124, 28, },
-+      { 1, 1, 0, 6, 124, 28, },
-+      { 0, 1, 0, 6, 128, 28, },
-+      { 2, 1, 0, 6, 128, 28, },
-+      { 1, 1, 0, 6, 128, 28, },
-+      { 0, 1, 0, 6, 132, 28, },
-+      { 2, 1, 0, 6, 132, 28, },
-+      { 1, 1, 0, 6, 132, 28, },
-+      { 0, 1, 0, 6, 136, 28, },
-+      { 2, 1, 0, 6, 136, 28, },
-+      { 1, 1, 0, 6, 136, 28, },
-+      { 0, 1, 0, 6, 140, 24, },
-+      { 2, 1, 0, 6, 140, 28, },
-+      { 1, 1, 0, 6, 140, 28, },
-+      { 0, 1, 0, 6, 149, 24, },
-+      { 2, 1, 0, 6, 149, 28, },
-+      { 1, 1, 0, 6, 149, 63, },
-+      { 0, 1, 0, 6, 153, 28, },
-+      { 2, 1, 0, 6, 153, 28, },
-+      { 1, 1, 0, 6, 153, 63, },
-+      { 0, 1, 0, 6, 157, 28, },
-+      { 2, 1, 0, 6, 157, 28, },
-+      { 1, 1, 0, 6, 157, 63, },
-+      { 0, 1, 0, 6, 161, 28, },
-+      { 2, 1, 0, 6, 161, 28, },
-+      { 1, 1, 0, 6, 161, 63, },
-+      { 0, 1, 0, 6, 165, 28, },
-+      { 2, 1, 0, 6, 165, 28, },
-+      { 1, 1, 0, 6, 165, 63, },
-+      { 0, 1, 0, 7, 36, 22, },
-+      { 2, 1, 0, 7, 36, 26, },
-+      { 1, 1, 0, 7, 36, 26, },
-+      { 0, 1, 0, 7, 40, 26, },
-+      { 2, 1, 0, 7, 40, 26, },
-+      { 1, 1, 0, 7, 40, 26, },
-+      { 0, 1, 0, 7, 44, 26, },
-+      { 2, 1, 0, 7, 44, 26, },
-+      { 1, 1, 0, 7, 44, 26, },
-+      { 0, 1, 0, 7, 48, 26, },
-+      { 2, 1, 0, 7, 48, 26, },
-+      { 1, 1, 0, 7, 48, 26, },
-+      { 0, 1, 0, 7, 52, 26, },
-+      { 2, 1, 0, 7, 52, 26, },
-+      { 1, 1, 0, 7, 52, 26, },
-+      { 0, 1, 0, 7, 56, 26, },
-+      { 2, 1, 0, 7, 56, 26, },
-+      { 1, 1, 0, 7, 56, 26, },
-+      { 0, 1, 0, 7, 60, 26, },
-+      { 2, 1, 0, 7, 60, 26, },
-+      { 1, 1, 0, 7, 60, 26, },
-+      { 0, 1, 0, 7, 64, 24, },
-+      { 2, 1, 0, 7, 64, 26, },
-+      { 1, 1, 0, 7, 64, 26, },
-+      { 0, 1, 0, 7, 100, 22, },
-+      { 2, 1, 0, 7, 100, 26, },
-+      { 1, 1, 0, 7, 100, 26, },
-+      { 0, 1, 0, 7, 104, 26, },
-+      { 2, 1, 0, 7, 104, 26, },
-+      { 1, 1, 0, 7, 104, 26, },
-+      { 0, 1, 0, 7, 108, 26, },
-+      { 2, 1, 0, 7, 108, 26, },
-+      { 1, 1, 0, 7, 108, 26, },
-+      { 0, 1, 0, 7, 112, 26, },
-+      { 2, 1, 0, 7, 112, 26, },
-+      { 1, 1, 0, 7, 112, 26, },
-+      { 0, 1, 0, 7, 116, 26, },
-+      { 2, 1, 0, 7, 116, 26, },
-+      { 1, 1, 0, 7, 116, 26, },
-+      { 0, 1, 0, 7, 120, 26, },
-+      { 2, 1, 0, 7, 120, 26, },
-+      { 1, 1, 0, 7, 120, 26, },
-+      { 0, 1, 0, 7, 124, 26, },
-+      { 2, 1, 0, 7, 124, 26, },
-+      { 1, 1, 0, 7, 124, 26, },
-+      { 0, 1, 0, 7, 128, 26, },
-+      { 2, 1, 0, 7, 128, 26, },
-+      { 1, 1, 0, 7, 128, 26, },
-+      { 0, 1, 0, 7, 132, 26, },
-+      { 2, 1, 0, 7, 132, 26, },
-+      { 1, 1, 0, 7, 132, 26, },
-+      { 0, 1, 0, 7, 136, 26, },
-+      { 2, 1, 0, 7, 136, 26, },
-+      { 1, 1, 0, 7, 136, 26, },
-+      { 0, 1, 0, 7, 140, 22, },
-+      { 2, 1, 0, 7, 140, 26, },
-+      { 1, 1, 0, 7, 140, 26, },
-+      { 0, 1, 0, 7, 149, 22, },
-+      { 2, 1, 0, 7, 149, 26, },
-+      { 1, 1, 0, 7, 149, 63, },
-+      { 0, 1, 0, 7, 153, 26, },
-+      { 2, 1, 0, 7, 153, 26, },
-+      { 1, 1, 0, 7, 153, 63, },
-+      { 0, 1, 0, 7, 157, 26, },
-+      { 2, 1, 0, 7, 157, 26, },
-+      { 1, 1, 0, 7, 157, 63, },
-+      { 0, 1, 0, 7, 161, 26, },
-+      { 2, 1, 0, 7, 161, 26, },
-+      { 1, 1, 0, 7, 161, 63, },
-+      { 0, 1, 0, 7, 165, 26, },
-+      { 2, 1, 0, 7, 165, 26, },
-+      { 1, 1, 0, 7, 165, 63, },
-+      { 0, 1, 1, 2, 38, 28, },
-+      { 2, 1, 1, 2, 38, 32, },
-+      { 1, 1, 1, 2, 38, 32, },
-+      { 0, 1, 1, 2, 46, 32, },
-+      { 2, 1, 1, 2, 46, 32, },
-+      { 1, 1, 1, 2, 46, 32, },
-+      { 0, 1, 1, 2, 54, 32, },
-+      { 2, 1, 1, 2, 54, 32, },
-+      { 1, 1, 1, 2, 54, 32, },
-+      { 0, 1, 1, 2, 62, 28, },
-+      { 2, 1, 1, 2, 62, 32, },
-+      { 1, 1, 1, 2, 62, 32, },
-+      { 0, 1, 1, 2, 102, 28, },
-+      { 2, 1, 1, 2, 102, 32, },
-+      { 1, 1, 1, 2, 102, 32, },
-+      { 0, 1, 1, 2, 110, 32, },
-+      { 2, 1, 1, 2, 110, 32, },
-+      { 1, 1, 1, 2, 110, 32, },
-+      { 0, 1, 1, 2, 118, 32, },
-+      { 2, 1, 1, 2, 118, 32, },
-+      { 1, 1, 1, 2, 118, 32, },
-+      { 0, 1, 1, 2, 126, 32, },
-+      { 2, 1, 1, 2, 126, 32, },
-+      { 1, 1, 1, 2, 126, 32, },
-+      { 0, 1, 1, 2, 134, 30, },
-+      { 2, 1, 1, 2, 134, 32, },
-+      { 1, 1, 1, 2, 134, 32, },
-+      { 0, 1, 1, 2, 151, 28, },
-+      { 2, 1, 1, 2, 151, 32, },
-+      { 1, 1, 1, 2, 151, 63, },
-+      { 0, 1, 1, 2, 159, 32, },
-+      { 2, 1, 1, 2, 159, 32, },
-+      { 1, 1, 1, 2, 159, 63, },
-+      { 0, 1, 1, 3, 38, 26, },
-+      { 2, 1, 1, 3, 38, 30, },
-+      { 1, 1, 1, 3, 38, 30, },
-+      { 0, 1, 1, 3, 46, 30, },
-+      { 2, 1, 1, 3, 46, 30, },
-+      { 1, 1, 1, 3, 46, 30, },
-+      { 0, 1, 1, 3, 54, 30, },
-+      { 2, 1, 1, 3, 54, 30, },
-+      { 1, 1, 1, 3, 54, 30, },
-+      { 0, 1, 1, 3, 62, 26, },
-+      { 2, 1, 1, 3, 62, 30, },
-+      { 1, 1, 1, 3, 62, 30, },
-+      { 0, 1, 1, 3, 102, 26, },
-+      { 2, 1, 1, 3, 102, 30, },
-+      { 1, 1, 1, 3, 102, 30, },
-+      { 0, 1, 1, 3, 110, 30, },
-+      { 2, 1, 1, 3, 110, 30, },
-+      { 1, 1, 1, 3, 110, 30, },
-+      { 0, 1, 1, 3, 118, 30, },
-+      { 2, 1, 1, 3, 118, 30, },
-+      { 1, 1, 1, 3, 118, 30, },
-+      { 0, 1, 1, 3, 126, 30, },
-+      { 2, 1, 1, 3, 126, 30, },
-+      { 1, 1, 1, 3, 126, 30, },
-+      { 0, 1, 1, 3, 134, 28, },
-+      { 2, 1, 1, 3, 134, 30, },
-+      { 1, 1, 1, 3, 134, 30, },
-+      { 0, 1, 1, 3, 151, 26, },
-+      { 2, 1, 1, 3, 151, 30, },
-+      { 1, 1, 1, 3, 151, 63, },
-+      { 0, 1, 1, 3, 159, 30, },
-+      { 2, 1, 1, 3, 159, 30, },
-+      { 1, 1, 1, 3, 159, 63, },
-+      { 0, 1, 1, 6, 38, 20, },
-+      { 2, 1, 1, 6, 38, 28, },
-+      { 1, 1, 1, 6, 38, 28, },
-+      { 0, 1, 1, 6, 46, 28, },
-+      { 2, 1, 1, 6, 46, 28, },
-+      { 1, 1, 1, 6, 46, 28, },
-+      { 0, 1, 1, 6, 54, 28, },
-+      { 2, 1, 1, 6, 54, 28, },
-+      { 1, 1, 1, 6, 54, 28, },
-+      { 0, 1, 1, 6, 62, 20, },
-+      { 2, 1, 1, 6, 62, 28, },
-+      { 1, 1, 1, 6, 62, 28, },
-+      { 0, 1, 1, 6, 102, 22, },
-+      { 2, 1, 1, 6, 102, 28, },
-+      { 1, 1, 1, 6, 102, 28, },
-+      { 0, 1, 1, 6, 110, 28, },
-+      { 2, 1, 1, 6, 110, 28, },
-+      { 1, 1, 1, 6, 110, 28, },
-+      { 0, 1, 1, 6, 118, 28, },
-+      { 2, 1, 1, 6, 118, 28, },
-+      { 1, 1, 1, 6, 118, 28, },
-+      { 0, 1, 1, 6, 126, 28, },
-+      { 2, 1, 1, 6, 126, 28, },
-+      { 1, 1, 1, 6, 126, 28, },
-+      { 0, 1, 1, 6, 134, 26, },
-+      { 2, 1, 1, 6, 134, 28, },
-+      { 1, 1, 1, 6, 134, 28, },
-+      { 0, 1, 1, 6, 151, 22, },
-+      { 2, 1, 1, 6, 151, 28, },
-+      { 1, 1, 1, 6, 151, 63, },
-+      { 0, 1, 1, 6, 159, 28, },
-+      { 2, 1, 1, 6, 159, 28, },
-+      { 1, 1, 1, 6, 159, 63, },
-+      { 0, 1, 1, 7, 38, 18, },
-+      { 2, 1, 1, 7, 38, 26, },
-+      { 1, 1, 1, 7, 38, 26, },
-+      { 0, 1, 1, 7, 46, 26, },
-+      { 2, 1, 1, 7, 46, 26, },
-+      { 1, 1, 1, 7, 46, 26, },
-+      { 0, 1, 1, 7, 54, 26, },
-+      { 2, 1, 1, 7, 54, 26, },
-+      { 1, 1, 1, 7, 54, 26, },
-+      { 0, 1, 1, 7, 62, 18, },
-+      { 2, 1, 1, 7, 62, 26, },
-+      { 1, 1, 1, 7, 62, 26, },
-+      { 0, 1, 1, 7, 102, 20, },
-+      { 2, 1, 1, 7, 102, 26, },
-+      { 1, 1, 1, 7, 102, 26, },
-+      { 0, 1, 1, 7, 110, 26, },
-+      { 2, 1, 1, 7, 110, 26, },
-+      { 1, 1, 1, 7, 110, 26, },
-+      { 0, 1, 1, 7, 118, 26, },
-+      { 2, 1, 1, 7, 118, 26, },
-+      { 1, 1, 1, 7, 118, 26, },
-+      { 0, 1, 1, 7, 126, 26, },
-+      { 2, 1, 1, 7, 126, 26, },
-+      { 1, 1, 1, 7, 126, 26, },
-+      { 0, 1, 1, 7, 134, 24, },
-+      { 2, 1, 1, 7, 134, 26, },
-+      { 1, 1, 1, 7, 134, 26, },
-+      { 0, 1, 1, 7, 151, 20, },
-+      { 2, 1, 1, 7, 151, 26, },
-+      { 1, 1, 1, 7, 151, 63, },
-+      { 0, 1, 1, 7, 159, 26, },
-+      { 2, 1, 1, 7, 159, 26, },
-+      { 1, 1, 1, 7, 159, 63, },
-+      { 0, 1, 2, 4, 42, 24, },
-+      { 2, 1, 2, 4, 42, 32, },
-+      { 1, 1, 2, 4, 42, 32, },
-+      { 0, 1, 2, 4, 58, 24, },
-+      { 2, 1, 2, 4, 58, 32, },
-+      { 1, 1, 2, 4, 58, 32, },
-+      { 0, 1, 2, 4, 106, 24, },
-+      { 2, 1, 2, 4, 106, 32, },
-+      { 1, 1, 2, 4, 106, 32, },
-+      { 0, 1, 2, 4, 122, 32, },
-+      { 2, 1, 2, 4, 122, 32, },
-+      { 1, 1, 2, 4, 122, 32, },
-+      { 0, 1, 2, 4, 155, 26, },
-+      { 2, 1, 2, 4, 155, 32, },
-+      { 1, 1, 2, 4, 155, 63, },
-+      { 0, 1, 2, 5, 42, 22, },
-+      { 2, 1, 2, 5, 42, 30, },
-+      { 1, 1, 2, 5, 42, 30, },
-+      { 0, 1, 2, 5, 58, 22, },
-+      { 2, 1, 2, 5, 58, 30, },
-+      { 1, 1, 2, 5, 58, 30, },
-+      { 0, 1, 2, 5, 106, 22, },
-+      { 2, 1, 2, 5, 106, 30, },
-+      { 1, 1, 2, 5, 106, 30, },
-+      { 0, 1, 2, 5, 122, 30, },
-+      { 2, 1, 2, 5, 122, 30, },
-+      { 1, 1, 2, 5, 122, 30, },
-+      { 0, 1, 2, 5, 155, 24, },
-+      { 2, 1, 2, 5, 155, 30, },
-+      { 1, 1, 2, 5, 155, 63, },
-+      { 0, 1, 2, 8, 42, 20, },
-+      { 2, 1, 2, 8, 42, 28, },
-+      { 1, 1, 2, 8, 42, 28, },
-+      { 0, 1, 2, 8, 58, 20, },
-+      { 2, 1, 2, 8, 58, 28, },
-+      { 1, 1, 2, 8, 58, 28, },
-+      { 0, 1, 2, 8, 106, 20, },
-+      { 2, 1, 2, 8, 106, 28, },
-+      { 1, 1, 2, 8, 106, 28, },
-+      { 0, 1, 2, 8, 122, 28, },
-+      { 2, 1, 2, 8, 122, 28, },
-+      { 1, 1, 2, 8, 122, 28, },
-+      { 0, 1, 2, 8, 155, 20, },
-+      { 2, 1, 2, 8, 155, 28, },
-+      { 1, 1, 2, 8, 155, 63, },
-+      { 0, 1, 2, 9, 42, 18, },
-+      { 2, 1, 2, 9, 42, 26, },
-+      { 1, 1, 2, 9, 42, 26, },
-+      { 0, 1, 2, 9, 58, 18, },
-+      { 2, 1, 2, 9, 58, 26, },
-+      { 1, 1, 2, 9, 58, 26, },
-+      { 0, 1, 2, 9, 106, 18, },
-+      { 2, 1, 2, 9, 106, 26, },
-+      { 1, 1, 2, 9, 106, 26, },
-+      { 0, 1, 2, 9, 122, 26, },
-+      { 2, 1, 2, 9, 122, 26, },
-+      { 1, 1, 2, 9, 122, 26, },
-+      { 0, 1, 2, 9, 155, 18, },
-+      { 2, 1, 2, 9, 155, 26, },
-+      { 1, 1, 2, 9, 155, 63, },
-+};
-+
-+RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type1);
-+
-+static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type2[] = {
-+      { 0, 0, 0, 0, 1, 42, },
-+      { 2, 0, 0, 0, 1, 42, },
-+      { 1, 0, 0, 0, 1, 42, },
-+      { 0, 0, 0, 0, 2, 50, },
-+      { 2, 0, 0, 0, 2, 42, },
-+      { 1, 0, 0, 0, 2, 42, },
-+      { 0, 0, 0, 0, 3, 50, },
-+      { 2, 0, 0, 0, 3, 42, },
-+      { 1, 0, 0, 0, 3, 42, },
-+      { 0, 0, 0, 0, 4, 50, },
-+      { 2, 0, 0, 0, 4, 42, },
-+      { 1, 0, 0, 0, 4, 42, },
-+      { 0, 0, 0, 0, 5, 50, },
-+      { 2, 0, 0, 0, 5, 42, },
-+      { 1, 0, 0, 0, 5, 42, },
-+      { 0, 0, 0, 0, 6, 50, },
-+      { 2, 0, 0, 0, 6, 42, },
-+      { 1, 0, 0, 0, 6, 42, },
-+      { 0, 0, 0, 0, 7, 50, },
-+      { 2, 0, 0, 0, 7, 42, },
-+      { 1, 0, 0, 0, 7, 42, },
-+      { 0, 0, 0, 0, 8, 50, },
-+      { 2, 0, 0, 0, 8, 42, },
-+      { 1, 0, 0, 0, 8, 42, },
-+      { 0, 0, 0, 0, 9, 50, },
-+      { 2, 0, 0, 0, 9, 42, },
-+      { 1, 0, 0, 0, 9, 42, },
-+      { 0, 0, 0, 0, 10, 50, },
-+      { 2, 0, 0, 0, 10, 42, },
-+      { 1, 0, 0, 0, 10, 42, },
-+      { 0, 0, 0, 0, 11, 44, },
-+      { 2, 0, 0, 0, 11, 42, },
-+      { 1, 0, 0, 0, 11, 42, },
-+      { 0, 0, 0, 0, 12, 63, },
-+      { 2, 0, 0, 0, 12, 42, },
-+      { 1, 0, 0, 0, 12, 42, },
-+      { 0, 0, 0, 0, 13, 63, },
-+      { 2, 0, 0, 0, 13, 42, },
-+      { 1, 0, 0, 0, 13, 42, },
-+      { 0, 0, 0, 0, 14, 63, },
-+      { 2, 0, 0, 0, 14, 63, },
-+      { 1, 0, 0, 0, 14, 42, },
-+      { 0, 0, 0, 1, 1, 32, },
-+      { 2, 0, 0, 1, 1, 42, },
-+      { 1, 0, 0, 1, 1, 42, },
-+      { 0, 0, 0, 1, 2, 42, },
-+      { 2, 0, 0, 1, 2, 42, },
-+      { 1, 0, 0, 1, 2, 42, },
-+      { 0, 0, 0, 1, 3, 42, },
-+      { 2, 0, 0, 1, 3, 42, },
-+      { 1, 0, 0, 1, 3, 42, },
-+      { 0, 0, 0, 1, 4, 42, },
-+      { 2, 0, 0, 1, 4, 42, },
-+      { 1, 0, 0, 1, 4, 42, },
-+      { 0, 0, 0, 1, 5, 42, },
-+      { 2, 0, 0, 1, 5, 42, },
-+      { 1, 0, 0, 1, 5, 42, },
-+      { 0, 0, 0, 1, 6, 42, },
-+      { 2, 0, 0, 1, 6, 42, },
-+      { 1, 0, 0, 1, 6, 42, },
-+      { 0, 0, 0, 1, 7, 42, },
-+      { 2, 0, 0, 1, 7, 42, },
-+      { 1, 0, 0, 1, 7, 42, },
-+      { 0, 0, 0, 1, 8, 42, },
-+      { 2, 0, 0, 1, 8, 42, },
-+      { 1, 0, 0, 1, 8, 42, },
-+      { 0, 0, 0, 1, 9, 42, },
-+      { 2, 0, 0, 1, 9, 42, },
-+      { 1, 0, 0, 1, 9, 42, },
-+      { 0, 0, 0, 1, 10, 42, },
-+      { 2, 0, 0, 1, 10, 42, },
-+      { 1, 0, 0, 1, 10, 42, },
-+      { 0, 0, 0, 1, 11, 32, },
-+      { 2, 0, 0, 1, 11, 42, },
-+      { 1, 0, 0, 1, 11, 42, },
-+      { 0, 0, 0, 1, 12, 63, },
-+      { 2, 0, 0, 1, 12, 42, },
-+      { 1, 0, 0, 1, 12, 42, },
-+      { 0, 0, 0, 1, 13, 63, },
-+      { 2, 0, 0, 1, 13, 42, },
-+      { 1, 0, 0, 1, 13, 42, },
-+      { 0, 0, 0, 1, 14, 63, },
-+      { 2, 0, 0, 1, 14, 63, },
-+      { 1, 0, 0, 1, 14, 63, },
-+      { 0, 0, 0, 2, 1, 32, },
-+      { 2, 0, 0, 2, 1, 42, },
-+      { 1, 0, 0, 2, 1, 42, },
-+      { 0, 0, 0, 2, 2, 40, },
-+      { 2, 0, 0, 2, 2, 42, },
-+      { 1, 0, 0, 2, 2, 42, },
-+      { 0, 0, 0, 2, 3, 40, },
-+      { 2, 0, 0, 2, 3, 42, },
-+      { 1, 0, 0, 2, 3, 42, },
-+      { 0, 0, 0, 2, 4, 40, },
-+      { 2, 0, 0, 2, 4, 42, },
-+      { 1, 0, 0, 2, 4, 42, },
-+      { 0, 0, 0, 2, 5, 40, },
-+      { 2, 0, 0, 2, 5, 42, },
-+      { 1, 0, 0, 2, 5, 42, },
-+      { 0, 0, 0, 2, 6, 40, },
-+      { 2, 0, 0, 2, 6, 42, },
-+      { 1, 0, 0, 2, 6, 42, },
-+      { 0, 0, 0, 2, 7, 40, },
-+      { 2, 0, 0, 2, 7, 42, },
-+      { 1, 0, 0, 2, 7, 42, },
-+      { 0, 0, 0, 2, 8, 40, },
-+      { 2, 0, 0, 2, 8, 42, },
-+      { 1, 0, 0, 2, 8, 42, },
-+      { 0, 0, 0, 2, 9, 40, },
-+      { 2, 0, 0, 2, 9, 42, },
-+      { 1, 0, 0, 2, 9, 42, },
-+      { 0, 0, 0, 2, 10, 40, },
-+      { 2, 0, 0, 2, 10, 42, },
-+      { 1, 0, 0, 2, 10, 42, },
-+      { 0, 0, 0, 2, 11, 28, },
-+      { 2, 0, 0, 2, 11, 42, },
-+      { 1, 0, 0, 2, 11, 42, },
-+      { 0, 0, 0, 2, 12, 63, },
-+      { 2, 0, 0, 2, 12, 42, },
-+      { 1, 0, 0, 2, 12, 42, },
-+      { 0, 0, 0, 2, 13, 63, },
-+      { 2, 0, 0, 2, 13, 42, },
-+      { 1, 0, 0, 2, 13, 42, },
-+      { 0, 0, 0, 2, 14, 63, },
-+      { 2, 0, 0, 2, 14, 63, },
-+      { 1, 0, 0, 2, 14, 63, },
-+      { 0, 0, 0, 3, 1, 32, },
-+      { 2, 0, 0, 3, 1, 40, },
-+      { 1, 0, 0, 3, 1, 40, },
-+      { 0, 0, 0, 3, 2, 40, },
-+      { 2, 0, 0, 3, 2, 40, },
-+      { 1, 0, 0, 3, 2, 40, },
-+      { 0, 0, 0, 3, 3, 40, },
-+      { 2, 0, 0, 3, 3, 40, },
-+      { 1, 0, 0, 3, 3, 40, },
-+      { 0, 0, 0, 3, 4, 40, },
-+      { 2, 0, 0, 3, 4, 40, },
-+      { 1, 0, 0, 3, 4, 40, },
-+      { 0, 0, 0, 3, 5, 40, },
-+      { 2, 0, 0, 3, 5, 40, },
-+      { 1, 0, 0, 3, 5, 40, },
-+      { 0, 0, 0, 3, 6, 40, },
-+      { 2, 0, 0, 3, 6, 40, },
-+      { 1, 0, 0, 3, 6, 40, },
-+      { 0, 0, 0, 3, 7, 40, },
-+      { 2, 0, 0, 3, 7, 40, },
-+      { 1, 0, 0, 3, 7, 40, },
-+      { 0, 0, 0, 3, 8, 40, },
-+      { 2, 0, 0, 3, 8, 40, },
-+      { 1, 0, 0, 3, 8, 40, },
-+      { 0, 0, 0, 3, 9, 40, },
-+      { 2, 0, 0, 3, 9, 40, },
-+      { 1, 0, 0, 3, 9, 40, },
-+      { 0, 0, 0, 3, 10, 40, },
-+      { 2, 0, 0, 3, 10, 40, },
-+      { 1, 0, 0, 3, 10, 40, },
-+      { 0, 0, 0, 3, 11, 28, },
-+      { 2, 0, 0, 3, 11, 40, },
-+      { 1, 0, 0, 3, 11, 40, },
-+      { 0, 0, 0, 3, 12, 63, },
-+      { 2, 0, 0, 3, 12, 40, },
-+      { 1, 0, 0, 3, 12, 40, },
-+      { 0, 0, 0, 3, 13, 63, },
-+      { 2, 0, 0, 3, 13, 40, },
-+      { 1, 0, 0, 3, 13, 40, },
-+      { 0, 0, 0, 3, 14, 63, },
-+      { 2, 0, 0, 3, 14, 63, },
-+      { 1, 0, 0, 3, 14, 63, },
-+      { 0, 0, 0, 6, 1, 32, },
-+      { 2, 0, 0, 6, 1, 40, },
-+      { 1, 0, 0, 6, 1, 40, },
-+      { 0, 0, 0, 6, 2, 40, },
-+      { 2, 0, 0, 6, 2, 40, },
-+      { 1, 0, 0, 6, 2, 40, },
-+      { 0, 0, 0, 6, 3, 40, },
-+      { 2, 0, 0, 6, 3, 40, },
-+      { 1, 0, 0, 6, 3, 40, },
-+      { 0, 0, 0, 6, 4, 40, },
-+      { 2, 0, 0, 6, 4, 40, },
-+      { 1, 0, 0, 6, 4, 40, },
-+      { 0, 0, 0, 6, 5, 40, },
-+      { 2, 0, 0, 6, 5, 40, },
-+      { 1, 0, 0, 6, 5, 40, },
-+      { 0, 0, 0, 6, 6, 40, },
-+      { 2, 0, 0, 6, 6, 40, },
-+      { 1, 0, 0, 6, 6, 40, },
-+      { 0, 0, 0, 6, 7, 40, },
-+      { 2, 0, 0, 6, 7, 40, },
-+      { 1, 0, 0, 6, 7, 40, },
-+      { 0, 0, 0, 6, 8, 40, },
-+      { 2, 0, 0, 6, 8, 40, },
-+      { 1, 0, 0, 6, 8, 40, },
-+      { 0, 0, 0, 6, 9, 40, },
-+      { 2, 0, 0, 6, 9, 40, },
-+      { 1, 0, 0, 6, 9, 40, },
-+      { 0, 0, 0, 6, 10, 40, },
-+      { 2, 0, 0, 6, 10, 40, },
-+      { 1, 0, 0, 6, 10, 40, },
-+      { 0, 0, 0, 6, 11, 28, },
-+      { 2, 0, 0, 6, 11, 40, },
-+      { 1, 0, 0, 6, 11, 40, },
-+      { 0, 0, 0, 6, 12, 63, },
-+      { 2, 0, 0, 6, 12, 40, },
-+      { 1, 0, 0, 6, 12, 40, },
-+      { 0, 0, 0, 6, 13, 63, },
-+      { 2, 0, 0, 6, 13, 40, },
-+      { 1, 0, 0, 6, 13, 40, },
-+      { 0, 0, 0, 6, 14, 63, },
-+      { 2, 0, 0, 6, 14, 63, },
-+      { 1, 0, 0, 6, 14, 63, },
-+      { 0, 0, 0, 7, 1, 32, },
-+      { 2, 0, 0, 7, 1, 40, },
-+      { 1, 0, 0, 7, 1, 40, },
-+      { 0, 0, 0, 7, 2, 40, },
-+      { 2, 0, 0, 7, 2, 40, },
-+      { 1, 0, 0, 7, 2, 40, },
-+      { 0, 0, 0, 7, 3, 40, },
-+      { 2, 0, 0, 7, 3, 40, },
-+      { 1, 0, 0, 7, 3, 40, },
-+      { 0, 0, 0, 7, 4, 40, },
-+      { 2, 0, 0, 7, 4, 40, },
-+      { 1, 0, 0, 7, 4, 40, },
-+      { 0, 0, 0, 7, 5, 40, },
-+      { 2, 0, 0, 7, 5, 40, },
-+      { 1, 0, 0, 7, 5, 40, },
-+      { 0, 0, 0, 7, 6, 40, },
-+      { 2, 0, 0, 7, 6, 40, },
-+      { 1, 0, 0, 7, 6, 40, },
-+      { 0, 0, 0, 7, 7, 40, },
-+      { 2, 0, 0, 7, 7, 40, },
-+      { 1, 0, 0, 7, 7, 40, },
-+      { 0, 0, 0, 7, 8, 40, },
-+      { 2, 0, 0, 7, 8, 40, },
-+      { 1, 0, 0, 7, 8, 40, },
-+      { 0, 0, 0, 7, 9, 40, },
-+      { 2, 0, 0, 7, 9, 40, },
-+      { 1, 0, 0, 7, 9, 40, },
-+      { 0, 0, 0, 7, 10, 40, },
-+      { 2, 0, 0, 7, 10, 40, },
-+      { 1, 0, 0, 7, 10, 40, },
-+      { 0, 0, 0, 7, 11, 28, },
-+      { 2, 0, 0, 7, 11, 40, },
-+      { 1, 0, 0, 7, 11, 40, },
-+      { 0, 0, 0, 7, 12, 63, },
-+      { 2, 0, 0, 7, 12, 40, },
-+      { 1, 0, 0, 7, 12, 40, },
-+      { 0, 0, 0, 7, 13, 63, },
-+      { 2, 0, 0, 7, 13, 40, },
-+      { 1, 0, 0, 7, 13, 40, },
-+      { 0, 0, 0, 7, 14, 63, },
-+      { 2, 0, 0, 7, 14, 63, },
-+      { 1, 0, 0, 7, 14, 63, },
-+      { 0, 0, 1, 2, 1, 63, },
-+      { 2, 0, 1, 2, 1, 63, },
-+      { 1, 0, 1, 2, 1, 63, },
-+      { 0, 0, 1, 2, 2, 63, },
-+      { 2, 0, 1, 2, 2, 63, },
-+      { 1, 0, 1, 2, 2, 63, },
-+      { 0, 0, 1, 2, 3, 30, },
-+      { 2, 0, 1, 2, 3, 34, },
-+      { 1, 0, 1, 2, 3, 34, },
-+      { 0, 0, 1, 2, 4, 34, },
-+      { 2, 0, 1, 2, 4, 34, },
-+      { 1, 0, 1, 2, 4, 34, },
-+      { 0, 0, 1, 2, 5, 34, },
-+      { 2, 0, 1, 2, 5, 34, },
-+      { 1, 0, 1, 2, 5, 34, },
-+      { 0, 0, 1, 2, 6, 34, },
-+      { 2, 0, 1, 2, 6, 34, },
-+      { 1, 0, 1, 2, 6, 34, },
-+      { 0, 0, 1, 2, 7, 34, },
-+      { 2, 0, 1, 2, 7, 34, },
-+      { 1, 0, 1, 2, 7, 34, },
-+      { 0, 0, 1, 2, 8, 34, },
-+      { 2, 0, 1, 2, 8, 34, },
-+      { 1, 0, 1, 2, 8, 34, },
-+      { 0, 0, 1, 2, 9, 34, },
-+      { 2, 0, 1, 2, 9, 34, },
-+      { 1, 0, 1, 2, 9, 34, },
-+      { 0, 0, 1, 2, 10, 34, },
-+      { 2, 0, 1, 2, 10, 34, },
-+      { 1, 0, 1, 2, 10, 34, },
-+      { 0, 0, 1, 2, 11, 28, },
-+      { 2, 0, 1, 2, 11, 34, },
-+      { 1, 0, 1, 2, 11, 34, },
-+      { 0, 0, 1, 2, 12, 63, },
-+      { 2, 0, 1, 2, 12, 34, },
-+      { 1, 0, 1, 2, 12, 34, },
-+      { 0, 0, 1, 2, 13, 63, },
-+      { 2, 0, 1, 2, 13, 34, },
-+      { 1, 0, 1, 2, 13, 34, },
-+      { 0, 0, 1, 2, 14, 63, },
-+      { 2, 0, 1, 2, 14, 63, },
-+      { 1, 0, 1, 2, 14, 63, },
-+      { 0, 0, 1, 3, 1, 63, },
-+      { 2, 0, 1, 3, 1, 63, },
-+      { 1, 0, 1, 3, 1, 63, },
-+      { 0, 0, 1, 3, 2, 63, },
-+      { 2, 0, 1, 3, 2, 63, },
-+      { 1, 0, 1, 3, 2, 63, },
-+      { 0, 0, 1, 3, 3, 30, },
-+      { 2, 0, 1, 3, 3, 34, },
-+      { 1, 0, 1, 3, 3, 34, },
-+      { 0, 0, 1, 3, 4, 34, },
-+      { 2, 0, 1, 3, 4, 34, },
-+      { 1, 0, 1, 3, 4, 34, },
-+      { 0, 0, 1, 3, 5, 34, },
-+      { 2, 0, 1, 3, 5, 34, },
-+      { 1, 0, 1, 3, 5, 34, },
-+      { 0, 0, 1, 3, 6, 34, },
-+      { 2, 0, 1, 3, 6, 34, },
-+      { 1, 0, 1, 3, 6, 34, },
-+      { 0, 0, 1, 3, 7, 34, },
-+      { 2, 0, 1, 3, 7, 34, },
-+      { 1, 0, 1, 3, 7, 34, },
-+      { 0, 0, 1, 3, 8, 34, },
-+      { 2, 0, 1, 3, 8, 34, },
-+      { 1, 0, 1, 3, 8, 34, },
-+      { 0, 0, 1, 3, 9, 34, },
-+      { 2, 0, 1, 3, 9, 34, },
-+      { 1, 0, 1, 3, 9, 34, },
-+      { 0, 0, 1, 3, 10, 34, },
-+      { 2, 0, 1, 3, 10, 34, },
-+      { 1, 0, 1, 3, 10, 34, },
-+      { 0, 0, 1, 3, 11, 28, },
-+      { 2, 0, 1, 3, 11, 34, },
-+      { 1, 0, 1, 3, 11, 34, },
-+      { 0, 0, 1, 3, 12, 63, },
-+      { 2, 0, 1, 3, 12, 34, },
-+      { 1, 0, 1, 3, 12, 34, },
-+      { 0, 0, 1, 3, 13, 63, },
-+      { 2, 0, 1, 3, 13, 34, },
-+      { 1, 0, 1, 3, 13, 34, },
-+      { 0, 0, 1, 3, 14, 63, },
-+      { 2, 0, 1, 3, 14, 63, },
-+      { 1, 0, 1, 3, 14, 63, },
-+      { 0, 0, 1, 6, 1, 63, },
-+      { 2, 0, 1, 6, 1, 63, },
-+      { 1, 0, 1, 6, 1, 63, },
-+      { 0, 0, 1, 6, 2, 63, },
-+      { 2, 0, 1, 6, 2, 63, },
-+      { 1, 0, 1, 6, 2, 63, },
-+      { 0, 0, 1, 6, 3, 30, },
-+      { 2, 0, 1, 6, 3, 34, },
-+      { 1, 0, 1, 6, 3, 34, },
-+      { 0, 0, 1, 6, 4, 34, },
-+      { 2, 0, 1, 6, 4, 34, },
-+      { 1, 0, 1, 6, 4, 34, },
-+      { 0, 0, 1, 6, 5, 34, },
-+      { 2, 0, 1, 6, 5, 34, },
-+      { 1, 0, 1, 6, 5, 34, },
-+      { 0, 0, 1, 6, 6, 34, },
-+      { 2, 0, 1, 6, 6, 34, },
-+      { 1, 0, 1, 6, 6, 34, },
-+      { 0, 0, 1, 6, 7, 34, },
-+      { 2, 0, 1, 6, 7, 34, },
-+      { 1, 0, 1, 6, 7, 34, },
-+      { 0, 0, 1, 6, 8, 34, },
-+      { 2, 0, 1, 6, 8, 34, },
-+      { 1, 0, 1, 6, 8, 34, },
-+      { 0, 0, 1, 6, 9, 34, },
-+      { 2, 0, 1, 6, 9, 34, },
-+      { 1, 0, 1, 6, 9, 34, },
-+      { 0, 0, 1, 6, 10, 34, },
-+      { 2, 0, 1, 6, 10, 34, },
-+      { 1, 0, 1, 6, 10, 34, },
-+      { 0, 0, 1, 6, 11, 28, },
-+      { 2, 0, 1, 6, 11, 34, },
-+      { 1, 0, 1, 6, 11, 34, },
-+      { 0, 0, 1, 6, 12, 63, },
-+      { 2, 0, 1, 6, 12, 34, },
-+      { 1, 0, 1, 6, 12, 34, },
-+      { 0, 0, 1, 6, 13, 63, },
-+      { 2, 0, 1, 6, 13, 34, },
-+      { 1, 0, 1, 6, 13, 34, },
-+      { 0, 0, 1, 6, 14, 63, },
-+      { 2, 0, 1, 6, 14, 63, },
-+      { 1, 0, 1, 6, 14, 63, },
-+      { 0, 0, 1, 7, 1, 63, },
-+      { 2, 0, 1, 7, 1, 63, },
-+      { 1, 0, 1, 7, 1, 63, },
-+      { 0, 0, 1, 7, 2, 63, },
-+      { 2, 0, 1, 7, 2, 63, },
-+      { 1, 0, 1, 7, 2, 63, },
-+      { 0, 0, 1, 7, 3, 30, },
-+      { 2, 0, 1, 7, 3, 34, },
-+      { 1, 0, 1, 7, 3, 34, },
-+      { 0, 0, 1, 7, 4, 34, },
-+      { 2, 0, 1, 7, 4, 34, },
-+      { 1, 0, 1, 7, 4, 34, },
-+      { 0, 0, 1, 7, 5, 34, },
-+      { 2, 0, 1, 7, 5, 34, },
-+      { 1, 0, 1, 7, 5, 34, },
-+      { 0, 0, 1, 7, 6, 34, },
-+      { 2, 0, 1, 7, 6, 34, },
-+      { 1, 0, 1, 7, 6, 34, },
-+      { 0, 0, 1, 7, 7, 34, },
-+      { 2, 0, 1, 7, 7, 34, },
-+      { 1, 0, 1, 7, 7, 34, },
-+      { 0, 0, 1, 7, 8, 34, },
-+      { 2, 0, 1, 7, 8, 34, },
-+      { 1, 0, 1, 7, 8, 34, },
-+      { 0, 0, 1, 7, 9, 34, },
-+      { 2, 0, 1, 7, 9, 34, },
-+      { 1, 0, 1, 7, 9, 34, },
-+      { 0, 0, 1, 7, 10, 34, },
-+      { 2, 0, 1, 7, 10, 34, },
-+      { 1, 0, 1, 7, 10, 34, },
-+      { 0, 0, 1, 7, 11, 28, },
-+      { 2, 0, 1, 7, 11, 34, },
-+      { 1, 0, 1, 7, 11, 34, },
-+      { 0, 0, 1, 7, 12, 63, },
-+      { 2, 0, 1, 7, 12, 34, },
-+      { 1, 0, 1, 7, 12, 34, },
-+      { 0, 0, 1, 7, 13, 63, },
-+      { 2, 0, 1, 7, 13, 34, },
-+      { 1, 0, 1, 7, 13, 34, },
-+      { 0, 0, 1, 7, 14, 63, },
-+      { 2, 0, 1, 7, 14, 63, },
-+      { 1, 0, 1, 7, 14, 63, },
-+      { 0, 1, 0, 1, 36, 42, },
-+      { 2, 1, 0, 1, 36, 42, },
-+      { 1, 1, 0, 1, 36, 42, },
-+      { 0, 1, 0, 1, 40, 42, },
-+      { 2, 1, 0, 1, 40, 42, },
-+      { 1, 1, 0, 1, 40, 42, },
-+      { 0, 1, 0, 1, 44, 42, },
-+      { 2, 1, 0, 1, 44, 42, },
-+      { 1, 1, 0, 1, 44, 42, },
-+      { 0, 1, 0, 1, 48, 42, },
-+      { 2, 1, 0, 1, 48, 42, },
-+      { 1, 1, 0, 1, 48, 42, },
-+      { 0, 1, 0, 1, 52, 42, },
-+      { 2, 1, 0, 1, 52, 42, },
-+      { 1, 1, 0, 1, 52, 42, },
-+      { 0, 1, 0, 1, 56, 42, },
-+      { 2, 1, 0, 1, 56, 42, },
-+      { 1, 1, 0, 1, 56, 42, },
-+      { 0, 1, 0, 1, 60, 42, },
-+      { 2, 1, 0, 1, 60, 42, },
-+      { 1, 1, 0, 1, 60, 42, },
-+      { 0, 1, 0, 1, 64, 42, },
-+      { 2, 1, 0, 1, 64, 42, },
-+      { 1, 1, 0, 1, 64, 42, },
-+      { 0, 1, 0, 1, 100, 42, },
-+      { 2, 1, 0, 1, 100, 42, },
-+      { 1, 1, 0, 1, 100, 42, },
-+      { 0, 1, 0, 1, 104, 42, },
-+      { 2, 1, 0, 1, 104, 42, },
-+      { 1, 1, 0, 1, 104, 42, },
-+      { 0, 1, 0, 1, 108, 42, },
-+      { 2, 1, 0, 1, 108, 42, },
-+      { 1, 1, 0, 1, 108, 42, },
-+      { 0, 1, 0, 1, 112, 42, },
-+      { 2, 1, 0, 1, 112, 42, },
-+      { 1, 1, 0, 1, 112, 42, },
-+      { 0, 1, 0, 1, 116, 42, },
-+      { 2, 1, 0, 1, 116, 42, },
-+      { 1, 1, 0, 1, 116, 42, },
-+      { 0, 1, 0, 1, 120, 42, },
-+      { 2, 1, 0, 1, 120, 42, },
-+      { 1, 1, 0, 1, 120, 42, },
-+      { 0, 1, 0, 1, 124, 42, },
-+      { 2, 1, 0, 1, 124, 42, },
-+      { 1, 1, 0, 1, 124, 42, },
-+      { 0, 1, 0, 1, 128, 42, },
-+      { 2, 1, 0, 1, 128, 42, },
-+      { 1, 1, 0, 1, 128, 42, },
-+      { 0, 1, 0, 1, 132, 42, },
-+      { 2, 1, 0, 1, 132, 42, },
-+      { 1, 1, 0, 1, 132, 42, },
-+      { 0, 1, 0, 1, 136, 42, },
-+      { 2, 1, 0, 1, 136, 42, },
-+      { 1, 1, 0, 1, 136, 42, },
-+      { 0, 1, 0, 1, 140, 40, },
-+      { 2, 1, 0, 1, 140, 40, },
-+      { 1, 1, 0, 1, 140, 40, },
-+      { 0, 1, 0, 1, 149, 44, },
-+      { 2, 1, 0, 1, 149, 44, },
-+      { 1, 1, 0, 1, 149, 63, },
-+      { 0, 1, 0, 1, 153, 44, },
-+      { 2, 1, 0, 1, 153, 44, },
-+      { 1, 1, 0, 1, 153, 63, },
-+      { 0, 1, 0, 1, 157, 44, },
-+      { 2, 1, 0, 1, 157, 44, },
-+      { 1, 1, 0, 1, 157, 63, },
-+      { 0, 1, 0, 1, 161, 44, },
-+      { 2, 1, 0, 1, 161, 44, },
-+      { 1, 1, 0, 1, 161, 63, },
-+      { 0, 1, 0, 1, 165, 44, },
-+      { 2, 1, 0, 1, 165, 44, },
-+      { 1, 1, 0, 1, 165, 63, },
-+      { 0, 1, 0, 2, 36, 32, },
-+      { 2, 1, 0, 2, 36, 32, },
-+      { 1, 1, 0, 2, 36, 32, },
-+      { 0, 1, 0, 2, 40, 32, },
-+      { 2, 1, 0, 2, 40, 32, },
-+      { 1, 1, 0, 2, 40, 32, },
-+      { 0, 1, 0, 2, 44, 32, },
-+      { 2, 1, 0, 2, 44, 32, },
-+      { 1, 1, 0, 2, 44, 32, },
-+      { 0, 1, 0, 2, 48, 36, },
-+      { 2, 1, 0, 2, 48, 36, },
-+      { 1, 1, 0, 2, 48, 36, },
-+      { 0, 1, 0, 2, 52, 36, },
-+      { 2, 1, 0, 2, 52, 36, },
-+      { 1, 1, 0, 2, 52, 36, },
-+      { 0, 1, 0, 2, 56, 32, },
-+      { 2, 1, 0, 2, 56, 32, },
-+      { 1, 1, 0, 2, 56, 32, },
-+      { 0, 1, 0, 2, 60, 32, },
-+      { 2, 1, 0, 2, 60, 32, },
-+      { 1, 1, 0, 2, 60, 32, },
-+      { 0, 1, 0, 2, 64, 32, },
-+      { 2, 1, 0, 2, 64, 32, },
-+      { 1, 1, 0, 2, 64, 32, },
-+      { 0, 1, 0, 2, 100, 32, },
-+      { 2, 1, 0, 2, 100, 32, },
-+      { 1, 1, 0, 2, 100, 32, },
-+      { 0, 1, 0, 2, 104, 32, },
-+      { 2, 1, 0, 2, 104, 32, },
-+      { 1, 1, 0, 2, 104, 32, },
-+      { 0, 1, 0, 2, 108, 32, },
-+      { 2, 1, 0, 2, 108, 32, },
-+      { 1, 1, 0, 2, 108, 32, },
-+      { 0, 1, 0, 2, 112, 32, },
-+      { 2, 1, 0, 2, 112, 32, },
-+      { 1, 1, 0, 2, 112, 32, },
-+      { 0, 1, 0, 2, 116, 32, },
-+      { 2, 1, 0, 2, 116, 32, },
-+      { 1, 1, 0, 2, 116, 32, },
-+      { 0, 1, 0, 2, 120, 32, },
-+      { 2, 1, 0, 2, 120, 32, },
-+      { 1, 1, 0, 2, 120, 32, },
-+      { 0, 1, 0, 2, 124, 32, },
-+      { 2, 1, 0, 2, 124, 32, },
-+      { 1, 1, 0, 2, 124, 32, },
-+      { 0, 1, 0, 2, 128, 32, },
-+      { 2, 1, 0, 2, 128, 32, },
-+      { 1, 1, 0, 2, 128, 32, },
-+      { 0, 1, 0, 2, 132, 32, },
-+      { 2, 1, 0, 2, 132, 32, },
-+      { 1, 1, 0, 2, 132, 32, },
-+      { 0, 1, 0, 2, 136, 32, },
-+      { 2, 1, 0, 2, 136, 32, },
-+      { 1, 1, 0, 2, 136, 32, },
-+      { 0, 1, 0, 2, 140, 30, },
-+      { 2, 1, 0, 2, 140, 30, },
-+      { 1, 1, 0, 2, 140, 30, },
-+      { 0, 1, 0, 2, 149, 40, },
-+      { 2, 1, 0, 2, 149, 40, },
-+      { 1, 1, 0, 2, 149, 63, },
-+      { 0, 1, 0, 2, 153, 40, },
-+      { 2, 1, 0, 2, 153, 40, },
-+      { 1, 1, 0, 2, 153, 63, },
-+      { 0, 1, 0, 2, 157, 40, },
-+      { 2, 1, 0, 2, 157, 40, },
-+      { 1, 1, 0, 2, 157, 63, },
-+      { 0, 1, 0, 2, 161, 40, },
-+      { 2, 1, 0, 2, 161, 40, },
-+      { 1, 1, 0, 2, 161, 63, },
-+      { 0, 1, 0, 2, 165, 42, },
-+      { 2, 1, 0, 2, 165, 42, },
-+      { 1, 1, 0, 2, 165, 63, },
-+      { 0, 1, 0, 3, 36, 32, },
-+      { 2, 1, 0, 3, 36, 32, },
-+      { 1, 1, 0, 3, 36, 32, },
-+      { 0, 1, 0, 3, 40, 32, },
-+      { 2, 1, 0, 3, 40, 32, },
-+      { 1, 1, 0, 3, 40, 32, },
-+      { 0, 1, 0, 3, 44, 32, },
-+      { 2, 1, 0, 3, 44, 32, },
-+      { 1, 1, 0, 3, 44, 32, },
-+      { 0, 1, 0, 3, 48, 36, },
-+      { 2, 1, 0, 3, 48, 36, },
-+      { 1, 1, 0, 3, 48, 36, },
-+      { 0, 1, 0, 3, 52, 36, },
-+      { 2, 1, 0, 3, 52, 36, },
-+      { 1, 1, 0, 3, 52, 36, },
-+      { 0, 1, 0, 3, 56, 32, },
-+      { 2, 1, 0, 3, 56, 32, },
-+      { 1, 1, 0, 3, 56, 32, },
-+      { 0, 1, 0, 3, 60, 32, },
-+      { 2, 1, 0, 3, 60, 32, },
-+      { 1, 1, 0, 3, 60, 32, },
-+      { 0, 1, 0, 3, 64, 32, },
-+      { 2, 1, 0, 3, 64, 32, },
-+      { 1, 1, 0, 3, 64, 32, },
-+      { 0, 1, 0, 3, 100, 32, },
-+      { 2, 1, 0, 3, 100, 32, },
-+      { 1, 1, 0, 3, 100, 32, },
-+      { 0, 1, 0, 3, 104, 32, },
-+      { 2, 1, 0, 3, 104, 32, },
-+      { 1, 1, 0, 3, 104, 32, },
-+      { 0, 1, 0, 3, 108, 32, },
-+      { 2, 1, 0, 3, 108, 32, },
-+      { 1, 1, 0, 3, 108, 32, },
-+      { 0, 1, 0, 3, 112, 32, },
-+      { 2, 1, 0, 3, 112, 32, },
-+      { 1, 1, 0, 3, 112, 32, },
-+      { 0, 1, 0, 3, 116, 32, },
-+      { 2, 1, 0, 3, 116, 32, },
-+      { 1, 1, 0, 3, 116, 32, },
-+      { 0, 1, 0, 3, 120, 32, },
-+      { 2, 1, 0, 3, 120, 32, },
-+      { 1, 1, 0, 3, 120, 32, },
-+      { 0, 1, 0, 3, 124, 32, },
-+      { 2, 1, 0, 3, 124, 32, },
-+      { 1, 1, 0, 3, 124, 32, },
-+      { 0, 1, 0, 3, 128, 32, },
-+      { 2, 1, 0, 3, 128, 32, },
-+      { 1, 1, 0, 3, 128, 32, },
-+      { 0, 1, 0, 3, 132, 32, },
-+      { 2, 1, 0, 3, 132, 32, },
-+      { 1, 1, 0, 3, 132, 32, },
-+      { 0, 1, 0, 3, 136, 32, },
-+      { 2, 1, 0, 3, 136, 32, },
-+      { 1, 1, 0, 3, 136, 32, },
-+      { 0, 1, 0, 3, 140, 30, },
-+      { 2, 1, 0, 3, 140, 30, },
-+      { 1, 1, 0, 3, 140, 30, },
-+      { 0, 1, 0, 3, 149, 40, },
-+      { 2, 1, 0, 3, 149, 40, },
-+      { 1, 1, 0, 3, 149, 63, },
-+      { 0, 1, 0, 3, 153, 40, },
-+      { 2, 1, 0, 3, 153, 40, },
-+      { 1, 1, 0, 3, 153, 63, },
-+      { 0, 1, 0, 3, 157, 40, },
-+      { 2, 1, 0, 3, 157, 40, },
-+      { 1, 1, 0, 3, 157, 63, },
-+      { 0, 1, 0, 3, 161, 40, },
-+      { 2, 1, 0, 3, 161, 40, },
-+      { 1, 1, 0, 3, 161, 63, },
-+      { 0, 1, 0, 3, 165, 42, },
-+      { 2, 1, 0, 3, 165, 42, },
-+      { 1, 1, 0, 3, 165, 63, },
-+      { 0, 1, 0, 6, 36, 32, },
-+      { 2, 1, 0, 6, 36, 32, },
-+      { 1, 1, 0, 6, 36, 32, },
-+      { 0, 1, 0, 6, 40, 32, },
-+      { 2, 1, 0, 6, 40, 32, },
-+      { 1, 1, 0, 6, 40, 32, },
-+      { 0, 1, 0, 6, 44, 32, },
-+      { 2, 1, 0, 6, 44, 32, },
-+      { 1, 1, 0, 6, 44, 32, },
-+      { 0, 1, 0, 6, 48, 36, },
-+      { 2, 1, 0, 6, 48, 36, },
-+      { 1, 1, 0, 6, 48, 36, },
-+      { 0, 1, 0, 6, 52, 36, },
-+      { 2, 1, 0, 6, 52, 36, },
-+      { 1, 1, 0, 6, 52, 36, },
-+      { 0, 1, 0, 6, 56, 32, },
-+      { 2, 1, 0, 6, 56, 32, },
-+      { 1, 1, 0, 6, 56, 32, },
-+      { 0, 1, 0, 6, 60, 32, },
-+      { 2, 1, 0, 6, 60, 32, },
-+      { 1, 1, 0, 6, 60, 32, },
-+      { 0, 1, 0, 6, 64, 32, },
-+      { 2, 1, 0, 6, 64, 32, },
-+      { 1, 1, 0, 6, 64, 32, },
-+      { 0, 1, 0, 6, 100, 32, },
-+      { 2, 1, 0, 6, 100, 32, },
-+      { 1, 1, 0, 6, 100, 32, },
-+      { 0, 1, 0, 6, 104, 32, },
-+      { 2, 1, 0, 6, 104, 32, },
-+      { 1, 1, 0, 6, 104, 32, },
-+      { 0, 1, 0, 6, 108, 32, },
-+      { 2, 1, 0, 6, 108, 32, },
-+      { 1, 1, 0, 6, 108, 32, },
-+      { 0, 1, 0, 6, 112, 32, },
-+      { 2, 1, 0, 6, 112, 32, },
-+      { 1, 1, 0, 6, 112, 32, },
-+      { 0, 1, 0, 6, 116, 32, },
-+      { 2, 1, 0, 6, 116, 32, },
-+      { 1, 1, 0, 6, 116, 32, },
-+      { 0, 1, 0, 6, 120, 32, },
-+      { 2, 1, 0, 6, 120, 32, },
-+      { 1, 1, 0, 6, 120, 32, },
-+      { 0, 1, 0, 6, 124, 32, },
-+      { 2, 1, 0, 6, 124, 32, },
-+      { 1, 1, 0, 6, 124, 32, },
-+      { 0, 1, 0, 6, 128, 32, },
-+      { 2, 1, 0, 6, 128, 32, },
-+      { 1, 1, 0, 6, 128, 32, },
-+      { 0, 1, 0, 6, 132, 32, },
-+      { 2, 1, 0, 6, 132, 32, },
-+      { 1, 1, 0, 6, 132, 32, },
-+      { 0, 1, 0, 6, 136, 32, },
-+      { 2, 1, 0, 6, 136, 32, },
-+      { 1, 1, 0, 6, 136, 32, },
-+      { 0, 1, 0, 6, 140, 30, },
-+      { 2, 1, 0, 6, 140, 30, },
-+      { 1, 1, 0, 6, 140, 30, },
-+      { 0, 1, 0, 6, 149, 40, },
-+      { 2, 1, 0, 6, 149, 40, },
-+      { 1, 1, 0, 6, 149, 63, },
-+      { 0, 1, 0, 6, 153, 40, },
-+      { 2, 1, 0, 6, 153, 40, },
-+      { 1, 1, 0, 6, 153, 63, },
-+      { 0, 1, 0, 6, 157, 40, },
-+      { 2, 1, 0, 6, 157, 40, },
-+      { 1, 1, 0, 6, 157, 63, },
-+      { 0, 1, 0, 6, 161, 40, },
-+      { 2, 1, 0, 6, 161, 40, },
-+      { 1, 1, 0, 6, 161, 63, },
-+      { 0, 1, 0, 6, 165, 42, },
-+      { 2, 1, 0, 6, 165, 42, },
-+      { 1, 1, 0, 6, 165, 63, },
-+      { 0, 1, 0, 7, 36, 32, },
-+      { 2, 1, 0, 7, 36, 32, },
-+      { 1, 1, 0, 7, 36, 32, },
-+      { 0, 1, 0, 7, 40, 32, },
-+      { 2, 1, 0, 7, 40, 32, },
-+      { 1, 1, 0, 7, 40, 32, },
-+      { 0, 1, 0, 7, 44, 32, },
-+      { 2, 1, 0, 7, 44, 32, },
-+      { 1, 1, 0, 7, 44, 32, },
-+      { 0, 1, 0, 7, 48, 36, },
-+      { 2, 1, 0, 7, 48, 36, },
-+      { 1, 1, 0, 7, 48, 36, },
-+      { 0, 1, 0, 7, 52, 36, },
-+      { 2, 1, 0, 7, 52, 36, },
-+      { 1, 1, 0, 7, 52, 36, },
-+      { 0, 1, 0, 7, 56, 32, },
-+      { 2, 1, 0, 7, 56, 32, },
-+      { 1, 1, 0, 7, 56, 32, },
-+      { 0, 1, 0, 7, 60, 32, },
-+      { 2, 1, 0, 7, 60, 32, },
-+      { 1, 1, 0, 7, 60, 32, },
-+      { 0, 1, 0, 7, 64, 32, },
-+      { 2, 1, 0, 7, 64, 32, },
-+      { 1, 1, 0, 7, 64, 32, },
-+      { 0, 1, 0, 7, 100, 32, },
-+      { 2, 1, 0, 7, 100, 32, },
-+      { 1, 1, 0, 7, 100, 32, },
-+      { 0, 1, 0, 7, 104, 32, },
-+      { 2, 1, 0, 7, 104, 32, },
-+      { 1, 1, 0, 7, 104, 32, },
-+      { 0, 1, 0, 7, 108, 32, },
-+      { 2, 1, 0, 7, 108, 32, },
-+      { 1, 1, 0, 7, 108, 32, },
-+      { 0, 1, 0, 7, 112, 32, },
-+      { 2, 1, 0, 7, 112, 32, },
-+      { 1, 1, 0, 7, 112, 32, },
-+      { 0, 1, 0, 7, 116, 32, },
-+      { 2, 1, 0, 7, 116, 32, },
-+      { 1, 1, 0, 7, 116, 32, },
-+      { 0, 1, 0, 7, 120, 32, },
-+      { 2, 1, 0, 7, 120, 32, },
-+      { 1, 1, 0, 7, 120, 32, },
-+      { 0, 1, 0, 7, 124, 32, },
-+      { 2, 1, 0, 7, 124, 32, },
-+      { 1, 1, 0, 7, 124, 32, },
-+      { 0, 1, 0, 7, 128, 32, },
-+      { 2, 1, 0, 7, 128, 32, },
-+      { 1, 1, 0, 7, 128, 32, },
-+      { 0, 1, 0, 7, 132, 32, },
-+      { 2, 1, 0, 7, 132, 32, },
-+      { 1, 1, 0, 7, 132, 32, },
-+      { 0, 1, 0, 7, 136, 32, },
-+      { 2, 1, 0, 7, 136, 32, },
-+      { 1, 1, 0, 7, 136, 32, },
-+      { 0, 1, 0, 7, 140, 30, },
-+      { 2, 1, 0, 7, 140, 30, },
-+      { 1, 1, 0, 7, 140, 30, },
-+      { 0, 1, 0, 7, 149, 40, },
-+      { 2, 1, 0, 7, 149, 40, },
-+      { 1, 1, 0, 7, 149, 63, },
-+      { 0, 1, 0, 7, 153, 40, },
-+      { 2, 1, 0, 7, 153, 40, },
-+      { 1, 1, 0, 7, 153, 63, },
-+      { 0, 1, 0, 7, 157, 40, },
-+      { 2, 1, 0, 7, 157, 40, },
-+      { 1, 1, 0, 7, 157, 63, },
-+      { 0, 1, 0, 7, 161, 40, },
-+      { 2, 1, 0, 7, 161, 40, },
-+      { 1, 1, 0, 7, 161, 63, },
-+      { 0, 1, 0, 7, 165, 42, },
-+      { 2, 1, 0, 7, 165, 42, },
-+      { 1, 1, 0, 7, 165, 63, },
-+      { 0, 1, 1, 2, 38, 32, },
-+      { 2, 1, 1, 2, 38, 32, },
-+      { 1, 1, 1, 2, 38, 32, },
-+      { 0, 1, 1, 2, 46, 36, },
-+      { 2, 1, 1, 2, 46, 36, },
-+      { 1, 1, 1, 2, 46, 36, },
-+      { 0, 1, 1, 2, 54, 36, },
-+      { 2, 1, 1, 2, 54, 36, },
-+      { 1, 1, 1, 2, 54, 36, },
-+      { 0, 1, 1, 2, 62, 32, },
-+      { 2, 1, 1, 2, 62, 32, },
-+      { 1, 1, 1, 2, 62, 32, },
-+      { 0, 1, 1, 2, 102, 30, },
-+      { 2, 1, 1, 2, 102, 30, },
-+      { 1, 1, 1, 2, 102, 30, },
-+      { 0, 1, 1, 2, 110, 32, },
-+      { 2, 1, 1, 2, 110, 32, },
-+      { 1, 1, 1, 2, 110, 32, },
-+      { 0, 1, 1, 2, 118, 32, },
-+      { 2, 1, 1, 2, 118, 32, },
-+      { 1, 1, 1, 2, 118, 32, },
-+      { 0, 1, 1, 2, 126, 32, },
-+      { 2, 1, 1, 2, 126, 32, },
-+      { 1, 1, 1, 2, 126, 32, },
-+      { 0, 1, 1, 2, 134, 36, },
-+      { 2, 1, 1, 2, 134, 36, },
-+      { 1, 1, 1, 2, 134, 36, },
-+      { 0, 1, 1, 2, 151, 36, },
-+      { 2, 1, 1, 2, 151, 36, },
-+      { 1, 1, 1, 2, 151, 63, },
-+      { 0, 1, 1, 2, 159, 40, },
-+      { 2, 1, 1, 2, 159, 40, },
-+      { 1, 1, 1, 2, 159, 63, },
-+      { 0, 1, 1, 3, 38, 32, },
-+      { 2, 1, 1, 3, 38, 32, },
-+      { 1, 1, 1, 3, 38, 32, },
-+      { 0, 1, 1, 3, 46, 36, },
-+      { 2, 1, 1, 3, 46, 36, },
-+      { 1, 1, 1, 3, 46, 36, },
-+      { 0, 1, 1, 3, 54, 36, },
-+      { 2, 1, 1, 3, 54, 36, },
-+      { 1, 1, 1, 3, 54, 36, },
-+      { 0, 1, 1, 3, 62, 32, },
-+      { 2, 1, 1, 3, 62, 32, },
-+      { 1, 1, 1, 3, 62, 32, },
-+      { 0, 1, 1, 3, 102, 30, },
-+      { 2, 1, 1, 3, 102, 30, },
-+      { 1, 1, 1, 3, 102, 30, },
-+      { 0, 1, 1, 3, 110, 32, },
-+      { 2, 1, 1, 3, 110, 32, },
-+      { 1, 1, 1, 3, 110, 32, },
-+      { 0, 1, 1, 3, 118, 32, },
-+      { 2, 1, 1, 3, 118, 32, },
-+      { 1, 1, 1, 3, 118, 32, },
-+      { 0, 1, 1, 3, 126, 32, },
-+      { 2, 1, 1, 3, 126, 32, },
-+      { 1, 1, 1, 3, 126, 32, },
-+      { 0, 1, 1, 3, 134, 36, },
-+      { 2, 1, 1, 3, 134, 36, },
-+      { 1, 1, 1, 3, 134, 36, },
-+      { 0, 1, 1, 3, 151, 36, },
-+      { 2, 1, 1, 3, 151, 36, },
-+      { 1, 1, 1, 3, 151, 63, },
-+      { 0, 1, 1, 3, 159, 40, },
-+      { 2, 1, 1, 3, 159, 40, },
-+      { 1, 1, 1, 3, 159, 63, },
-+      { 0, 1, 1, 6, 38, 32, },
-+      { 2, 1, 1, 6, 38, 32, },
-+      { 1, 1, 1, 6, 38, 32, },
-+      { 0, 1, 1, 6, 46, 36, },
-+      { 2, 1, 1, 6, 46, 36, },
-+      { 1, 1, 1, 6, 46, 36, },
-+      { 0, 1, 1, 6, 54, 36, },
-+      { 2, 1, 1, 6, 54, 36, },
-+      { 1, 1, 1, 6, 54, 36, },
-+      { 0, 1, 1, 6, 62, 32, },
-+      { 2, 1, 1, 6, 62, 32, },
-+      { 1, 1, 1, 6, 62, 32, },
-+      { 0, 1, 1, 6, 102, 30, },
-+      { 2, 1, 1, 6, 102, 30, },
-+      { 1, 1, 1, 6, 102, 30, },
-+      { 0, 1, 1, 6, 110, 32, },
-+      { 2, 1, 1, 6, 110, 32, },
-+      { 1, 1, 1, 6, 110, 32, },
-+      { 0, 1, 1, 6, 118, 32, },
-+      { 2, 1, 1, 6, 118, 32, },
-+      { 1, 1, 1, 6, 118, 32, },
-+      { 0, 1, 1, 6, 126, 32, },
-+      { 2, 1, 1, 6, 126, 32, },
-+      { 1, 1, 1, 6, 126, 32, },
-+      { 0, 1, 1, 6, 134, 36, },
-+      { 2, 1, 1, 6, 134, 36, },
-+      { 1, 1, 1, 6, 134, 36, },
-+      { 0, 1, 1, 6, 151, 36, },
-+      { 2, 1, 1, 6, 151, 36, },
-+      { 1, 1, 1, 6, 151, 63, },
-+      { 0, 1, 1, 6, 159, 40, },
-+      { 2, 1, 1, 6, 159, 40, },
-+      { 1, 1, 1, 6, 159, 63, },
-+      { 0, 1, 1, 7, 38, 32, },
-+      { 2, 1, 1, 7, 38, 32, },
-+      { 1, 1, 1, 7, 38, 32, },
-+      { 0, 1, 1, 7, 46, 36, },
-+      { 2, 1, 1, 7, 46, 36, },
-+      { 1, 1, 1, 7, 46, 36, },
-+      { 0, 1, 1, 7, 54, 36, },
-+      { 2, 1, 1, 7, 54, 36, },
-+      { 1, 1, 1, 7, 54, 36, },
-+      { 0, 1, 1, 7, 62, 32, },
-+      { 2, 1, 1, 7, 62, 32, },
-+      { 1, 1, 1, 7, 62, 32, },
-+      { 0, 1, 1, 7, 102, 30, },
-+      { 2, 1, 1, 7, 102, 30, },
-+      { 1, 1, 1, 7, 102, 30, },
-+      { 0, 1, 1, 7, 110, 32, },
-+      { 2, 1, 1, 7, 110, 32, },
-+      { 1, 1, 1, 7, 110, 32, },
-+      { 0, 1, 1, 7, 118, 32, },
-+      { 2, 1, 1, 7, 118, 32, },
-+      { 1, 1, 1, 7, 118, 32, },
-+      { 0, 1, 1, 7, 126, 32, },
-+      { 2, 1, 1, 7, 126, 32, },
-+      { 1, 1, 1, 7, 126, 32, },
-+      { 0, 1, 1, 7, 134, 36, },
-+      { 2, 1, 1, 7, 134, 36, },
-+      { 1, 1, 1, 7, 134, 36, },
-+      { 0, 1, 1, 7, 151, 36, },
-+      { 2, 1, 1, 7, 151, 36, },
-+      { 1, 1, 1, 7, 151, 63, },
-+      { 0, 1, 1, 7, 159, 40, },
-+      { 2, 1, 1, 7, 159, 40, },
-+      { 1, 1, 1, 7, 159, 63, },
-+      { 0, 1, 2, 4, 42, 34, },
-+      { 2, 1, 2, 4, 42, 34, },
-+      { 1, 1, 2, 4, 42, 34, },
-+      { 0, 1, 2, 4, 58, 34, },
-+      { 2, 1, 2, 4, 58, 34, },
-+      { 1, 1, 2, 4, 58, 34, },
-+      { 0, 1, 2, 4, 106, 32, },
-+      { 2, 1, 2, 4, 106, 32, },
-+      { 1, 1, 2, 4, 106, 32, },
-+      { 0, 1, 2, 4, 122, 34, },
-+      { 2, 1, 2, 4, 122, 34, },
-+      { 1, 1, 2, 4, 122, 34, },
-+      { 0, 1, 2, 4, 155, 34, },
-+      { 2, 1, 2, 4, 155, 34, },
-+      { 1, 1, 2, 4, 155, 63, },
-+      { 0, 1, 2, 5, 42, 34, },
-+      { 2, 1, 2, 5, 42, 34, },
-+      { 1, 1, 2, 5, 42, 34, },
-+      { 0, 1, 2, 5, 58, 34, },
-+      { 2, 1, 2, 5, 58, 34, },
-+      { 1, 1, 2, 5, 58, 34, },
-+      { 0, 1, 2, 5, 106, 32, },
-+      { 2, 1, 2, 5, 106, 32, },
-+      { 1, 1, 2, 5, 106, 32, },
-+      { 0, 1, 2, 5, 122, 34, },
-+      { 2, 1, 2, 5, 122, 34, },
-+      { 1, 1, 2, 5, 122, 34, },
-+      { 0, 1, 2, 5, 155, 34, },
-+      { 2, 1, 2, 5, 155, 34, },
-+      { 1, 1, 2, 5, 155, 63, },
-+      { 0, 1, 2, 8, 42, 34, },
-+      { 2, 1, 2, 8, 42, 34, },
-+      { 1, 1, 2, 8, 42, 34, },
-+      { 0, 1, 2, 8, 58, 34, },
-+      { 2, 1, 2, 8, 58, 34, },
-+      { 1, 1, 2, 8, 58, 34, },
-+      { 0, 1, 2, 8, 106, 32, },
-+      { 2, 1, 2, 8, 106, 32, },
-+      { 1, 1, 2, 8, 106, 32, },
-+      { 0, 1, 2, 8, 122, 34, },
-+      { 2, 1, 2, 8, 122, 34, },
-+      { 1, 1, 2, 8, 122, 34, },
-+      { 0, 1, 2, 8, 155, 34, },
-+      { 2, 1, 2, 8, 155, 34, },
-+      { 1, 1, 2, 8, 155, 63, },
-+      { 0, 1, 2, 9, 42, 34, },
-+      { 2, 1, 2, 9, 42, 34, },
-+      { 1, 1, 2, 9, 42, 34, },
-+      { 0, 1, 2, 9, 58, 34, },
-+      { 2, 1, 2, 9, 58, 34, },
-+      { 1, 1, 2, 9, 58, 34, },
-+      { 0, 1, 2, 9, 106, 32, },
-+      { 2, 1, 2, 9, 106, 32, },
-+      { 1, 1, 2, 9, 106, 32, },
-+      { 0, 1, 2, 9, 122, 34, },
-+      { 2, 1, 2, 9, 122, 34, },
-+      { 1, 1, 2, 9, 122, 34, },
-+      { 0, 1, 2, 9, 155, 34, },
-+      { 2, 1, 2, 9, 155, 34, },
-+      { 1, 1, 2, 9, 155, 63, },
-+};
-+
-+RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type2);
-+
-+static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type3[] = {
-+      { 0, 0, 0, 0, 1, 46, },
-+      { 2, 0, 0, 0, 1, 40, },
-+      { 1, 0, 0, 0, 1, 40, },
-+      { 0, 0, 0, 0, 2, 46, },
-+      { 2, 0, 0, 0, 2, 40, },
-+      { 1, 0, 0, 0, 2, 40, },
-+      { 0, 0, 0, 0, 3, 46, },
-+      { 2, 0, 0, 0, 3, 40, },
-+      { 1, 0, 0, 0, 3, 40, },
-+      { 0, 0, 0, 0, 4, 46, },
-+      { 2, 0, 0, 0, 4, 40, },
-+      { 1, 0, 0, 0, 4, 40, },
-+      { 0, 0, 0, 0, 5, 46, },
-+      { 2, 0, 0, 0, 5, 40, },
-+      { 1, 0, 0, 0, 5, 40, },
-+      { 0, 0, 0, 0, 6, 46, },
-+      { 2, 0, 0, 0, 6, 40, },
-+      { 1, 0, 0, 0, 6, 40, },
-+      { 0, 0, 0, 0, 7, 46, },
-+      { 2, 0, 0, 0, 7, 40, },
-+      { 1, 0, 0, 0, 7, 40, },
-+      { 0, 0, 0, 0, 8, 46, },
-+      { 2, 0, 0, 0, 8, 40, },
-+      { 1, 0, 0, 0, 8, 40, },
-+      { 0, 0, 0, 0, 9, 46, },
-+      { 2, 0, 0, 0, 9, 40, },
-+      { 1, 0, 0, 0, 9, 40, },
-+      { 0, 0, 0, 0, 10, 46, },
-+      { 2, 0, 0, 0, 10, 40, },
-+      { 1, 0, 0, 0, 10, 40, },
-+      { 0, 0, 0, 0, 11, 46, },
-+      { 2, 0, 0, 0, 11, 40, },
-+      { 1, 0, 0, 0, 11, 40, },
-+      { 0, 0, 0, 0, 12, 63, },
-+      { 2, 0, 0, 0, 12, 40, },
-+      { 1, 0, 0, 0, 12, 40, },
-+      { 0, 0, 0, 0, 13, 63, },
-+      { 2, 0, 0, 0, 13, 40, },
-+      { 1, 0, 0, 0, 13, 40, },
-+      { 0, 0, 0, 0, 14, 63, },
-+      { 2, 0, 0, 0, 14, 63, },
-+      { 1, 0, 0, 0, 14, 40, },
-+      { 0, 0, 0, 1, 1, 46, },
-+      { 2, 0, 0, 1, 1, 40, },
-+      { 1, 0, 0, 1, 1, 40, },
-+      { 0, 0, 0, 1, 2, 46, },
-+      { 2, 0, 0, 1, 2, 40, },
-+      { 1, 0, 0, 1, 2, 40, },
-+      { 0, 0, 0, 1, 3, 46, },
-+      { 2, 0, 0, 1, 3, 40, },
-+      { 1, 0, 0, 1, 3, 40, },
-+      { 0, 0, 0, 1, 4, 46, },
-+      { 2, 0, 0, 1, 4, 40, },
-+      { 1, 0, 0, 1, 4, 40, },
-+      { 0, 0, 0, 1, 5, 46, },
-+      { 2, 0, 0, 1, 5, 40, },
-+      { 1, 0, 0, 1, 5, 40, },
-+      { 0, 0, 0, 1, 6, 46, },
-+      { 2, 0, 0, 1, 6, 40, },
-+      { 1, 0, 0, 1, 6, 40, },
-+      { 0, 0, 0, 1, 7, 46, },
-+      { 2, 0, 0, 1, 7, 40, },
-+      { 1, 0, 0, 1, 7, 40, },
-+      { 0, 0, 0, 1, 8, 46, },
-+      { 2, 0, 0, 1, 8, 40, },
-+      { 1, 0, 0, 1, 8, 40, },
-+      { 0, 0, 0, 1, 9, 46, },
-+      { 2, 0, 0, 1, 9, 40, },
-+      { 1, 0, 0, 1, 9, 40, },
-+      { 0, 0, 0, 1, 10, 46, },
-+      { 2, 0, 0, 1, 10, 40, },
-+      { 1, 0, 0, 1, 10, 40, },
-+      { 0, 0, 0, 1, 11, 46, },
-+      { 2, 0, 0, 1, 11, 40, },
-+      { 1, 0, 0, 1, 11, 40, },
-+      { 0, 0, 0, 1, 12, 63, },
-+      { 2, 0, 0, 1, 12, 40, },
-+      { 1, 0, 0, 1, 12, 40, },
-+      { 0, 0, 0, 1, 13, 63, },
-+      { 2, 0, 0, 1, 13, 40, },
-+      { 1, 0, 0, 1, 13, 40, },
-+      { 0, 0, 0, 1, 14, 63, },
-+      { 2, 0, 0, 1, 14, 63, },
-+      { 1, 0, 0, 1, 14, 63, },
-+      { 0, 0, 0, 2, 1, 46, },
-+      { 2, 0, 0, 2, 1, 40, },
-+      { 1, 0, 0, 2, 1, 40, },
-+      { 0, 0, 0, 2, 2, 46, },
-+      { 2, 0, 0, 2, 2, 40, },
-+      { 1, 0, 0, 2, 2, 40, },
-+      { 0, 0, 0, 2, 3, 46, },
-+      { 2, 0, 0, 2, 3, 40, },
-+      { 1, 0, 0, 2, 3, 40, },
-+      { 0, 0, 0, 2, 4, 46, },
-+      { 2, 0, 0, 2, 4, 40, },
-+      { 1, 0, 0, 2, 4, 40, },
-+      { 0, 0, 0, 2, 5, 46, },
-+      { 2, 0, 0, 2, 5, 40, },
-+      { 1, 0, 0, 2, 5, 40, },
-+      { 0, 0, 0, 2, 6, 46, },
-+      { 2, 0, 0, 2, 6, 40, },
-+      { 1, 0, 0, 2, 6, 40, },
-+      { 0, 0, 0, 2, 7, 46, },
-+      { 2, 0, 0, 2, 7, 40, },
-+      { 1, 0, 0, 2, 7, 40, },
-+      { 0, 0, 0, 2, 8, 46, },
-+      { 2, 0, 0, 2, 8, 40, },
-+      { 1, 0, 0, 2, 8, 40, },
-+      { 0, 0, 0, 2, 9, 46, },
-+      { 2, 0, 0, 2, 9, 40, },
-+      { 1, 0, 0, 2, 9, 40, },
-+      { 0, 0, 0, 2, 10, 46, },
-+      { 2, 0, 0, 2, 10, 40, },
-+      { 1, 0, 0, 2, 10, 40, },
-+      { 0, 0, 0, 2, 11, 46, },
-+      { 2, 0, 0, 2, 11, 40, },
-+      { 1, 0, 0, 2, 11, 40, },
-+      { 0, 0, 0, 2, 12, 63, },
-+      { 2, 0, 0, 2, 12, 40, },
-+      { 1, 0, 0, 2, 12, 40, },
-+      { 0, 0, 0, 2, 13, 63, },
-+      { 2, 0, 0, 2, 13, 40, },
-+      { 1, 0, 0, 2, 13, 40, },
-+      { 0, 0, 0, 2, 14, 63, },
-+      { 2, 0, 0, 2, 14, 63, },
-+      { 1, 0, 0, 2, 14, 63, },
-+      { 0, 0, 0, 3, 1, 46, },
-+      { 2, 0, 0, 3, 1, 40, },
-+      { 1, 0, 0, 3, 1, 40, },
-+      { 0, 0, 0, 3, 2, 46, },
-+      { 2, 0, 0, 3, 2, 40, },
-+      { 1, 0, 0, 3, 2, 40, },
-+      { 0, 0, 0, 3, 3, 46, },
-+      { 2, 0, 0, 3, 3, 40, },
-+      { 1, 0, 0, 3, 3, 40, },
-+      { 0, 0, 0, 3, 4, 46, },
-+      { 2, 0, 0, 3, 4, 40, },
-+      { 1, 0, 0, 3, 4, 40, },
-+      { 0, 0, 0, 3, 5, 46, },
-+      { 2, 0, 0, 3, 5, 40, },
-+      { 1, 0, 0, 3, 5, 40, },
-+      { 0, 0, 0, 3, 6, 46, },
-+      { 2, 0, 0, 3, 6, 40, },
-+      { 1, 0, 0, 3, 6, 40, },
-+      { 0, 0, 0, 3, 7, 46, },
-+      { 2, 0, 0, 3, 7, 40, },
-+      { 1, 0, 0, 3, 7, 40, },
-+      { 0, 0, 0, 3, 8, 46, },
-+      { 2, 0, 0, 3, 8, 40, },
-+      { 1, 0, 0, 3, 8, 40, },
-+      { 0, 0, 0, 3, 9, 46, },
-+      { 2, 0, 0, 3, 9, 40, },
-+      { 1, 0, 0, 3, 9, 40, },
-+      { 0, 0, 0, 3, 10, 46, },
-+      { 2, 0, 0, 3, 10, 40, },
-+      { 1, 0, 0, 3, 10, 40, },
-+      { 0, 0, 0, 3, 11, 46, },
-+      { 2, 0, 0, 3, 11, 40, },
-+      { 1, 0, 0, 3, 11, 40, },
-+      { 0, 0, 0, 3, 12, 63, },
-+      { 2, 0, 0, 3, 12, 40, },
-+      { 1, 0, 0, 3, 12, 40, },
-+      { 0, 0, 0, 3, 13, 63, },
-+      { 2, 0, 0, 3, 13, 40, },
-+      { 1, 0, 0, 3, 13, 40, },
-+      { 0, 0, 0, 3, 14, 63, },
-+      { 2, 0, 0, 3, 14, 63, },
-+      { 1, 0, 0, 3, 14, 63, },
-+      { 0, 0, 0, 6, 1, 46, },
-+      { 2, 0, 0, 6, 1, 40, },
-+      { 1, 0, 0, 6, 1, 40, },
-+      { 0, 0, 0, 6, 2, 46, },
-+      { 2, 0, 0, 6, 2, 40, },
-+      { 1, 0, 0, 6, 2, 40, },
-+      { 0, 0, 0, 6, 3, 46, },
-+      { 2, 0, 0, 6, 3, 40, },
-+      { 1, 0, 0, 6, 3, 40, },
-+      { 0, 0, 0, 6, 4, 46, },
-+      { 2, 0, 0, 6, 4, 40, },
-+      { 1, 0, 0, 6, 4, 40, },
-+      { 0, 0, 0, 6, 5, 46, },
-+      { 2, 0, 0, 6, 5, 40, },
-+      { 1, 0, 0, 6, 5, 40, },
-+      { 0, 0, 0, 6, 6, 46, },
-+      { 2, 0, 0, 6, 6, 40, },
-+      { 1, 0, 0, 6, 6, 40, },
-+      { 0, 0, 0, 6, 7, 46, },
-+      { 2, 0, 0, 6, 7, 40, },
-+      { 1, 0, 0, 6, 7, 40, },
-+      { 0, 0, 0, 6, 8, 46, },
-+      { 2, 0, 0, 6, 8, 40, },
-+      { 1, 0, 0, 6, 8, 40, },
-+      { 0, 0, 0, 6, 9, 46, },
-+      { 2, 0, 0, 6, 9, 40, },
-+      { 1, 0, 0, 6, 9, 40, },
-+      { 0, 0, 0, 6, 10, 46, },
-+      { 2, 0, 0, 6, 10, 40, },
-+      { 1, 0, 0, 6, 10, 40, },
-+      { 0, 0, 0, 6, 11, 46, },
-+      { 2, 0, 0, 6, 11, 40, },
-+      { 1, 0, 0, 6, 11, 40, },
-+      { 0, 0, 0, 6, 12, 63, },
-+      { 2, 0, 0, 6, 12, 40, },
-+      { 1, 0, 0, 6, 12, 40, },
-+      { 0, 0, 0, 6, 13, 63, },
-+      { 2, 0, 0, 6, 13, 40, },
-+      { 1, 0, 0, 6, 13, 40, },
-+      { 0, 0, 0, 6, 14, 63, },
-+      { 2, 0, 0, 6, 14, 63, },
-+      { 1, 0, 0, 6, 14, 63, },
-+      { 0, 0, 0, 7, 1, 46, },
-+      { 2, 0, 0, 7, 1, 40, },
-+      { 1, 0, 0, 7, 1, 40, },
-+      { 0, 0, 0, 7, 2, 46, },
-+      { 2, 0, 0, 7, 2, 40, },
-+      { 1, 0, 0, 7, 2, 40, },
-+      { 0, 0, 0, 7, 3, 46, },
-+      { 2, 0, 0, 7, 3, 40, },
-+      { 1, 0, 0, 7, 3, 40, },
-+      { 0, 0, 0, 7, 4, 46, },
-+      { 2, 0, 0, 7, 4, 40, },
-+      { 1, 0, 0, 7, 4, 40, },
-+      { 0, 0, 0, 7, 5, 46, },
-+      { 2, 0, 0, 7, 5, 40, },
-+      { 1, 0, 0, 7, 5, 40, },
-+      { 0, 0, 0, 7, 6, 46, },
-+      { 2, 0, 0, 7, 6, 40, },
-+      { 1, 0, 0, 7, 6, 40, },
-+      { 0, 0, 0, 7, 7, 46, },
-+      { 2, 0, 0, 7, 7, 40, },
-+      { 1, 0, 0, 7, 7, 40, },
-+      { 0, 0, 0, 7, 8, 46, },
-+      { 2, 0, 0, 7, 8, 40, },
-+      { 1, 0, 0, 7, 8, 40, },
-+      { 0, 0, 0, 7, 9, 46, },
-+      { 2, 0, 0, 7, 9, 40, },
-+      { 1, 0, 0, 7, 9, 40, },
-+      { 0, 0, 0, 7, 10, 46, },
-+      { 2, 0, 0, 7, 10, 40, },
-+      { 1, 0, 0, 7, 10, 40, },
-+      { 0, 0, 0, 7, 11, 46, },
-+      { 2, 0, 0, 7, 11, 40, },
-+      { 1, 0, 0, 7, 11, 40, },
-+      { 0, 0, 0, 7, 12, 63, },
-+      { 2, 0, 0, 7, 12, 40, },
-+      { 1, 0, 0, 7, 12, 40, },
-+      { 0, 0, 0, 7, 13, 63, },
-+      { 2, 0, 0, 7, 13, 40, },
-+      { 1, 0, 0, 7, 13, 40, },
-+      { 0, 0, 0, 7, 14, 63, },
-+      { 2, 0, 0, 7, 14, 63, },
-+      { 1, 0, 0, 7, 14, 63, },
-+      { 0, 0, 1, 2, 1, 63, },
-+      { 2, 0, 1, 2, 1, 63, },
-+      { 1, 0, 1, 2, 1, 63, },
-+      { 0, 0, 1, 2, 2, 63, },
-+      { 2, 0, 1, 2, 2, 63, },
-+      { 1, 0, 1, 2, 2, 63, },
-+      { 0, 0, 1, 2, 3, 46, },
-+      { 2, 0, 1, 2, 3, 40, },
-+      { 1, 0, 1, 2, 3, 40, },
-+      { 0, 0, 1, 2, 4, 46, },
-+      { 2, 0, 1, 2, 4, 40, },
-+      { 1, 0, 1, 2, 4, 40, },
-+      { 0, 0, 1, 2, 5, 46, },
-+      { 2, 0, 1, 2, 5, 40, },
-+      { 1, 0, 1, 2, 5, 40, },
-+      { 0, 0, 1, 2, 6, 46, },
-+      { 2, 0, 1, 2, 6, 40, },
-+      { 1, 0, 1, 2, 6, 40, },
-+      { 0, 0, 1, 2, 7, 46, },
-+      { 2, 0, 1, 2, 7, 40, },
-+      { 1, 0, 1, 2, 7, 40, },
-+      { 0, 0, 1, 2, 8, 46, },
-+      { 2, 0, 1, 2, 8, 40, },
-+      { 1, 0, 1, 2, 8, 40, },
-+      { 0, 0, 1, 2, 9, 46, },
-+      { 2, 0, 1, 2, 9, 40, },
-+      { 1, 0, 1, 2, 9, 40, },
-+      { 0, 0, 1, 2, 10, 46, },
-+      { 2, 0, 1, 2, 10, 40, },
-+      { 1, 0, 1, 2, 10, 40, },
-+      { 0, 0, 1, 2, 11, 46, },
-+      { 2, 0, 1, 2, 11, 40, },
-+      { 1, 0, 1, 2, 11, 40, },
-+      { 0, 0, 1, 2, 12, 63, },
-+      { 2, 0, 1, 2, 12, 40, },
-+      { 1, 0, 1, 2, 12, 40, },
-+      { 0, 0, 1, 2, 13, 63, },
-+      { 2, 0, 1, 2, 13, 40, },
-+      { 1, 0, 1, 2, 13, 40, },
-+      { 0, 0, 1, 2, 14, 63, },
-+      { 2, 0, 1, 2, 14, 63, },
-+      { 1, 0, 1, 2, 14, 63, },
-+      { 0, 0, 1, 3, 1, 63, },
-+      { 2, 0, 1, 3, 1, 63, },
-+      { 1, 0, 1, 3, 1, 63, },
-+      { 0, 0, 1, 3, 2, 63, },
-+      { 2, 0, 1, 3, 2, 63, },
-+      { 1, 0, 1, 3, 2, 63, },
-+      { 0, 0, 1, 3, 3, 46, },
-+      { 2, 0, 1, 3, 3, 40, },
-+      { 1, 0, 1, 3, 3, 40, },
-+      { 0, 0, 1, 3, 4, 46, },
-+      { 2, 0, 1, 3, 4, 40, },
-+      { 1, 0, 1, 3, 4, 40, },
-+      { 0, 0, 1, 3, 5, 46, },
-+      { 2, 0, 1, 3, 5, 40, },
-+      { 1, 0, 1, 3, 5, 40, },
-+      { 0, 0, 1, 3, 6, 46, },
-+      { 2, 0, 1, 3, 6, 40, },
-+      { 1, 0, 1, 3, 6, 40, },
-+      { 0, 0, 1, 3, 7, 46, },
-+      { 2, 0, 1, 3, 7, 40, },
-+      { 1, 0, 1, 3, 7, 40, },
-+      { 0, 0, 1, 3, 8, 46, },
-+      { 2, 0, 1, 3, 8, 40, },
-+      { 1, 0, 1, 3, 8, 40, },
-+      { 0, 0, 1, 3, 9, 46, },
-+      { 2, 0, 1, 3, 9, 40, },
-+      { 1, 0, 1, 3, 9, 40, },
-+      { 0, 0, 1, 3, 10, 46, },
-+      { 2, 0, 1, 3, 10, 40, },
-+      { 1, 0, 1, 3, 10, 40, },
-+      { 0, 0, 1, 3, 11, 46, },
-+      { 2, 0, 1, 3, 11, 40, },
-+      { 1, 0, 1, 3, 11, 40, },
-+      { 0, 0, 1, 3, 12, 63, },
-+      { 2, 0, 1, 3, 12, 40, },
-+      { 1, 0, 1, 3, 12, 40, },
-+      { 0, 0, 1, 3, 13, 63, },
-+      { 2, 0, 1, 3, 13, 40, },
-+      { 1, 0, 1, 3, 13, 40, },
-+      { 0, 0, 1, 3, 14, 63, },
-+      { 2, 0, 1, 3, 14, 63, },
-+      { 1, 0, 1, 3, 14, 63, },
-+      { 0, 0, 1, 6, 1, 63, },
-+      { 2, 0, 1, 6, 1, 63, },
-+      { 1, 0, 1, 6, 1, 63, },
-+      { 0, 0, 1, 6, 2, 63, },
-+      { 2, 0, 1, 6, 2, 63, },
-+      { 1, 0, 1, 6, 2, 63, },
-+      { 0, 0, 1, 6, 3, 46, },
-+      { 2, 0, 1, 6, 3, 40, },
-+      { 1, 0, 1, 6, 3, 40, },
-+      { 0, 0, 1, 6, 4, 46, },
-+      { 2, 0, 1, 6, 4, 40, },
-+      { 1, 0, 1, 6, 4, 40, },
-+      { 0, 0, 1, 6, 5, 46, },
-+      { 2, 0, 1, 6, 5, 40, },
-+      { 1, 0, 1, 6, 5, 40, },
-+      { 0, 0, 1, 6, 6, 46, },
-+      { 2, 0, 1, 6, 6, 40, },
-+      { 1, 0, 1, 6, 6, 40, },
-+      { 0, 0, 1, 6, 7, 46, },
-+      { 2, 0, 1, 6, 7, 40, },
-+      { 1, 0, 1, 6, 7, 40, },
-+      { 0, 0, 1, 6, 8, 46, },
-+      { 2, 0, 1, 6, 8, 40, },
-+      { 1, 0, 1, 6, 8, 40, },
-+      { 0, 0, 1, 6, 9, 46, },
-+      { 2, 0, 1, 6, 9, 40, },
-+      { 1, 0, 1, 6, 9, 40, },
-+      { 0, 0, 1, 6, 10, 46, },
-+      { 2, 0, 1, 6, 10, 40, },
-+      { 1, 0, 1, 6, 10, 40, },
-+      { 0, 0, 1, 6, 11, 46, },
-+      { 2, 0, 1, 6, 11, 40, },
-+      { 1, 0, 1, 6, 11, 40, },
-+      { 0, 0, 1, 6, 12, 63, },
-+      { 2, 0, 1, 6, 12, 40, },
-+      { 1, 0, 1, 6, 12, 40, },
-+      { 0, 0, 1, 6, 13, 63, },
-+      { 2, 0, 1, 6, 13, 40, },
-+      { 1, 0, 1, 6, 13, 40, },
-+      { 0, 0, 1, 6, 14, 63, },
-+      { 2, 0, 1, 6, 14, 63, },
-+      { 1, 0, 1, 6, 14, 63, },
-+      { 0, 0, 1, 7, 1, 63, },
-+      { 2, 0, 1, 7, 1, 63, },
-+      { 1, 0, 1, 7, 1, 63, },
-+      { 0, 0, 1, 7, 2, 63, },
-+      { 2, 0, 1, 7, 2, 63, },
-+      { 1, 0, 1, 7, 2, 63, },
-+      { 0, 0, 1, 7, 3, 46, },
-+      { 2, 0, 1, 7, 3, 40, },
-+      { 1, 0, 1, 7, 3, 40, },
-+      { 0, 0, 1, 7, 4, 46, },
-+      { 2, 0, 1, 7, 4, 40, },
-+      { 1, 0, 1, 7, 4, 40, },
-+      { 0, 0, 1, 7, 5, 46, },
-+      { 2, 0, 1, 7, 5, 40, },
-+      { 1, 0, 1, 7, 5, 40, },
-+      { 0, 0, 1, 7, 6, 46, },
-+      { 2, 0, 1, 7, 6, 40, },
-+      { 1, 0, 1, 7, 6, 40, },
-+      { 0, 0, 1, 7, 7, 46, },
-+      { 2, 0, 1, 7, 7, 40, },
-+      { 1, 0, 1, 7, 7, 40, },
-+      { 0, 0, 1, 7, 8, 46, },
-+      { 2, 0, 1, 7, 8, 40, },
-+      { 1, 0, 1, 7, 8, 40, },
-+      { 0, 0, 1, 7, 9, 46, },
-+      { 2, 0, 1, 7, 9, 40, },
-+      { 1, 0, 1, 7, 9, 40, },
-+      { 0, 0, 1, 7, 10, 46, },
-+      { 2, 0, 1, 7, 10, 40, },
-+      { 1, 0, 1, 7, 10, 40, },
-+      { 0, 0, 1, 7, 11, 46, },
-+      { 2, 0, 1, 7, 11, 40, },
-+      { 1, 0, 1, 7, 11, 40, },
-+      { 0, 0, 1, 7, 12, 63, },
-+      { 2, 0, 1, 7, 12, 40, },
-+      { 1, 0, 1, 7, 12, 40, },
-+      { 0, 0, 1, 7, 13, 63, },
-+      { 2, 0, 1, 7, 13, 40, },
-+      { 1, 0, 1, 7, 13, 40, },
-+      { 0, 0, 1, 7, 14, 63, },
-+      { 2, 0, 1, 7, 14, 63, },
-+      { 1, 0, 1, 7, 14, 63, },
-+      { 0, 1, 0, 1, 36, 46, },
-+      { 2, 1, 0, 1, 36, 40, },
-+      { 1, 1, 0, 1, 36, 40, },
-+      { 0, 1, 0, 1, 40, 46, },
-+      { 2, 1, 0, 1, 40, 40, },
-+      { 1, 1, 0, 1, 40, 40, },
-+      { 0, 1, 0, 1, 44, 46, },
-+      { 2, 1, 0, 1, 44, 40, },
-+      { 1, 1, 0, 1, 44, 40, },
-+      { 0, 1, 0, 1, 48, 46, },
-+      { 2, 1, 0, 1, 48, 40, },
-+      { 1, 1, 0, 1, 48, 40, },
-+      { 0, 1, 0, 1, 52, 46, },
-+      { 2, 1, 0, 1, 52, 40, },
-+      { 1, 1, 0, 1, 52, 40, },
-+      { 0, 1, 0, 1, 56, 46, },
-+      { 2, 1, 0, 1, 56, 40, },
-+      { 1, 1, 0, 1, 56, 40, },
-+      { 0, 1, 0, 1, 60, 46, },
-+      { 2, 1, 0, 1, 60, 40, },
-+      { 1, 1, 0, 1, 60, 40, },
-+      { 0, 1, 0, 1, 64, 46, },
-+      { 2, 1, 0, 1, 64, 40, },
-+      { 1, 1, 0, 1, 64, 40, },
-+      { 0, 1, 0, 1, 100, 46, },
-+      { 2, 1, 0, 1, 100, 40, },
-+      { 1, 1, 0, 1, 100, 40, },
-+      { 0, 1, 0, 1, 104, 46, },
-+      { 2, 1, 0, 1, 104, 40, },
-+      { 1, 1, 0, 1, 104, 40, },
-+      { 0, 1, 0, 1, 108, 46, },
-+      { 2, 1, 0, 1, 108, 40, },
-+      { 1, 1, 0, 1, 108, 40, },
-+      { 0, 1, 0, 1, 112, 46, },
-+      { 2, 1, 0, 1, 112, 40, },
-+      { 1, 1, 0, 1, 112, 40, },
-+      { 0, 1, 0, 1, 116, 46, },
-+      { 2, 1, 0, 1, 116, 40, },
-+      { 1, 1, 0, 1, 116, 40, },
-+      { 0, 1, 0, 1, 120, 46, },
-+      { 2, 1, 0, 1, 120, 40, },
-+      { 1, 1, 0, 1, 120, 40, },
-+      { 0, 1, 0, 1, 124, 46, },
-+      { 2, 1, 0, 1, 124, 40, },
-+      { 1, 1, 0, 1, 124, 40, },
-+      { 0, 1, 0, 1, 128, 46, },
-+      { 2, 1, 0, 1, 128, 40, },
-+      { 1, 1, 0, 1, 128, 40, },
-+      { 0, 1, 0, 1, 132, 46, },
-+      { 2, 1, 0, 1, 132, 40, },
-+      { 1, 1, 0, 1, 132, 40, },
-+      { 0, 1, 0, 1, 136, 46, },
-+      { 2, 1, 0, 1, 136, 40, },
-+      { 1, 1, 0, 1, 136, 40, },
-+      { 0, 1, 0, 1, 140, 46, },
-+      { 2, 1, 0, 1, 140, 40, },
-+      { 1, 1, 0, 1, 140, 40, },
-+      { 0, 1, 0, 1, 149, 46, },
-+      { 2, 1, 0, 1, 149, 40, },
-+      { 1, 1, 0, 1, 149, 63, },
-+      { 0, 1, 0, 1, 153, 46, },
-+      { 2, 1, 0, 1, 153, 40, },
-+      { 1, 1, 0, 1, 153, 63, },
-+      { 0, 1, 0, 1, 157, 46, },
-+      { 2, 1, 0, 1, 157, 40, },
-+      { 1, 1, 0, 1, 157, 63, },
-+      { 0, 1, 0, 1, 161, 46, },
-+      { 2, 1, 0, 1, 161, 40, },
-+      { 1, 1, 0, 1, 161, 63, },
-+      { 0, 1, 0, 1, 165, 46, },
-+      { 2, 1, 0, 1, 165, 40, },
-+      { 1, 1, 0, 1, 165, 63, },
-+      { 0, 1, 0, 2, 36, 46, },
-+      { 2, 1, 0, 2, 36, 40, },
-+      { 1, 1, 0, 2, 36, 40, },
-+      { 0, 1, 0, 2, 40, 46, },
-+      { 2, 1, 0, 2, 40, 40, },
-+      { 1, 1, 0, 2, 40, 40, },
-+      { 0, 1, 0, 2, 44, 46, },
-+      { 2, 1, 0, 2, 44, 40, },
-+      { 1, 1, 0, 2, 44, 40, },
-+      { 0, 1, 0, 2, 48, 46, },
-+      { 2, 1, 0, 2, 48, 40, },
-+      { 1, 1, 0, 2, 48, 40, },
-+      { 0, 1, 0, 2, 52, 46, },
-+      { 2, 1, 0, 2, 52, 40, },
-+      { 1, 1, 0, 2, 52, 40, },
-+      { 0, 1, 0, 2, 56, 46, },
-+      { 2, 1, 0, 2, 56, 40, },
-+      { 1, 1, 0, 2, 56, 40, },
-+      { 0, 1, 0, 2, 60, 46, },
-+      { 2, 1, 0, 2, 60, 40, },
-+      { 1, 1, 0, 2, 60, 40, },
-+      { 0, 1, 0, 2, 64, 46, },
-+      { 2, 1, 0, 2, 64, 40, },
-+      { 1, 1, 0, 2, 64, 40, },
-+      { 0, 1, 0, 2, 100, 46, },
-+      { 2, 1, 0, 2, 100, 40, },
-+      { 1, 1, 0, 2, 100, 40, },
-+      { 0, 1, 0, 2, 104, 46, },
-+      { 2, 1, 0, 2, 104, 40, },
-+      { 1, 1, 0, 2, 104, 40, },
-+      { 0, 1, 0, 2, 108, 46, },
-+      { 2, 1, 0, 2, 108, 40, },
-+      { 1, 1, 0, 2, 108, 40, },
-+      { 0, 1, 0, 2, 112, 46, },
-+      { 2, 1, 0, 2, 112, 40, },
-+      { 1, 1, 0, 2, 112, 40, },
-+      { 0, 1, 0, 2, 116, 46, },
-+      { 2, 1, 0, 2, 116, 40, },
-+      { 1, 1, 0, 2, 116, 40, },
-+      { 0, 1, 0, 2, 120, 46, },
-+      { 2, 1, 0, 2, 120, 40, },
-+      { 1, 1, 0, 2, 120, 40, },
-+      { 0, 1, 0, 2, 124, 46, },
-+      { 2, 1, 0, 2, 124, 40, },
-+      { 1, 1, 0, 2, 124, 40, },
-+      { 0, 1, 0, 2, 128, 46, },
-+      { 2, 1, 0, 2, 128, 40, },
-+      { 1, 1, 0, 2, 128, 40, },
-+      { 0, 1, 0, 2, 132, 46, },
-+      { 2, 1, 0, 2, 132, 40, },
-+      { 1, 1, 0, 2, 132, 40, },
-+      { 0, 1, 0, 2, 136, 46, },
-+      { 2, 1, 0, 2, 136, 40, },
-+      { 1, 1, 0, 2, 136, 40, },
-+      { 0, 1, 0, 2, 140, 46, },
-+      { 2, 1, 0, 2, 140, 40, },
-+      { 1, 1, 0, 2, 140, 40, },
-+      { 0, 1, 0, 2, 149, 46, },
-+      { 2, 1, 0, 2, 149, 40, },
-+      { 1, 1, 0, 2, 149, 63, },
-+      { 0, 1, 0, 2, 153, 46, },
-+      { 2, 1, 0, 2, 153, 40, },
-+      { 1, 1, 0, 2, 153, 63, },
-+      { 0, 1, 0, 2, 157, 46, },
-+      { 2, 1, 0, 2, 157, 40, },
-+      { 1, 1, 0, 2, 157, 63, },
-+      { 0, 1, 0, 2, 161, 46, },
-+      { 2, 1, 0, 2, 161, 40, },
-+      { 1, 1, 0, 2, 161, 63, },
-+      { 0, 1, 0, 2, 165, 46, },
-+      { 2, 1, 0, 2, 165, 40, },
-+      { 1, 1, 0, 2, 165, 63, },
-+      { 0, 1, 0, 3, 36, 46, },
-+      { 2, 1, 0, 3, 36, 40, },
-+      { 1, 1, 0, 3, 36, 40, },
-+      { 0, 1, 0, 3, 40, 46, },
-+      { 2, 1, 0, 3, 40, 40, },
-+      { 1, 1, 0, 3, 40, 40, },
-+      { 0, 1, 0, 3, 44, 46, },
-+      { 2, 1, 0, 3, 44, 40, },
-+      { 1, 1, 0, 3, 44, 40, },
-+      { 0, 1, 0, 3, 48, 46, },
-+      { 2, 1, 0, 3, 48, 40, },
-+      { 1, 1, 0, 3, 48, 40, },
-+      { 0, 1, 0, 3, 52, 46, },
-+      { 2, 1, 0, 3, 52, 40, },
-+      { 1, 1, 0, 3, 52, 40, },
-+      { 0, 1, 0, 3, 56, 46, },
-+      { 2, 1, 0, 3, 56, 40, },
-+      { 1, 1, 0, 3, 56, 40, },
-+      { 0, 1, 0, 3, 60, 46, },
-+      { 2, 1, 0, 3, 60, 40, },
-+      { 1, 1, 0, 3, 60, 40, },
-+      { 0, 1, 0, 3, 64, 46, },
-+      { 2, 1, 0, 3, 64, 40, },
-+      { 1, 1, 0, 3, 64, 40, },
-+      { 0, 1, 0, 3, 100, 46, },
-+      { 2, 1, 0, 3, 100, 40, },
-+      { 1, 1, 0, 3, 100, 40, },
-+      { 0, 1, 0, 3, 104, 46, },
-+      { 2, 1, 0, 3, 104, 40, },
-+      { 1, 1, 0, 3, 104, 40, },
-+      { 0, 1, 0, 3, 108, 46, },
-+      { 2, 1, 0, 3, 108, 40, },
-+      { 1, 1, 0, 3, 108, 40, },
-+      { 0, 1, 0, 3, 112, 46, },
-+      { 2, 1, 0, 3, 112, 40, },
-+      { 1, 1, 0, 3, 112, 40, },
-+      { 0, 1, 0, 3, 116, 46, },
-+      { 2, 1, 0, 3, 116, 40, },
-+      { 1, 1, 0, 3, 116, 40, },
-+      { 0, 1, 0, 3, 120, 46, },
-+      { 2, 1, 0, 3, 120, 40, },
-+      { 1, 1, 0, 3, 120, 40, },
-+      { 0, 1, 0, 3, 124, 46, },
-+      { 2, 1, 0, 3, 124, 40, },
-+      { 1, 1, 0, 3, 124, 40, },
-+      { 0, 1, 0, 3, 128, 46, },
-+      { 2, 1, 0, 3, 128, 40, },
-+      { 1, 1, 0, 3, 128, 40, },
-+      { 0, 1, 0, 3, 132, 46, },
-+      { 2, 1, 0, 3, 132, 40, },
-+      { 1, 1, 0, 3, 132, 40, },
-+      { 0, 1, 0, 3, 136, 46, },
-+      { 2, 1, 0, 3, 136, 40, },
-+      { 1, 1, 0, 3, 136, 40, },
-+      { 0, 1, 0, 3, 140, 46, },
-+      { 2, 1, 0, 3, 140, 40, },
-+      { 1, 1, 0, 3, 140, 40, },
-+      { 0, 1, 0, 3, 149, 46, },
-+      { 2, 1, 0, 3, 149, 40, },
-+      { 1, 1, 0, 3, 149, 63, },
-+      { 0, 1, 0, 3, 153, 46, },
-+      { 2, 1, 0, 3, 153, 40, },
-+      { 1, 1, 0, 3, 153, 63, },
-+      { 0, 1, 0, 3, 157, 46, },
-+      { 2, 1, 0, 3, 157, 40, },
-+      { 1, 1, 0, 3, 157, 63, },
-+      { 0, 1, 0, 3, 161, 46, },
-+      { 2, 1, 0, 3, 161, 40, },
-+      { 1, 1, 0, 3, 161, 63, },
-+      { 0, 1, 0, 3, 165, 46, },
-+      { 2, 1, 0, 3, 165, 40, },
-+      { 1, 1, 0, 3, 165, 63, },
-+      { 0, 1, 0, 6, 36, 46, },
-+      { 2, 1, 0, 6, 36, 40, },
-+      { 1, 1, 0, 6, 36, 40, },
-+      { 0, 1, 0, 6, 40, 46, },
-+      { 2, 1, 0, 6, 40, 40, },
-+      { 1, 1, 0, 6, 40, 40, },
-+      { 0, 1, 0, 6, 44, 46, },
-+      { 2, 1, 0, 6, 44, 40, },
-+      { 1, 1, 0, 6, 44, 40, },
-+      { 0, 1, 0, 6, 48, 46, },
-+      { 2, 1, 0, 6, 48, 40, },
-+      { 1, 1, 0, 6, 48, 40, },
-+      { 0, 1, 0, 6, 52, 46, },
-+      { 2, 1, 0, 6, 52, 40, },
-+      { 1, 1, 0, 6, 52, 40, },
-+      { 0, 1, 0, 6, 56, 46, },
-+      { 2, 1, 0, 6, 56, 40, },
-+      { 1, 1, 0, 6, 56, 40, },
-+      { 0, 1, 0, 6, 60, 46, },
-+      { 2, 1, 0, 6, 60, 40, },
-+      { 1, 1, 0, 6, 60, 40, },
-+      { 0, 1, 0, 6, 64, 46, },
-+      { 2, 1, 0, 6, 64, 40, },
-+      { 1, 1, 0, 6, 64, 40, },
-+      { 0, 1, 0, 6, 100, 46, },
-+      { 2, 1, 0, 6, 100, 40, },
-+      { 1, 1, 0, 6, 100, 40, },
-+      { 0, 1, 0, 6, 104, 46, },
-+      { 2, 1, 0, 6, 104, 40, },
-+      { 1, 1, 0, 6, 104, 40, },
-+      { 0, 1, 0, 6, 108, 46, },
-+      { 2, 1, 0, 6, 108, 40, },
-+      { 1, 1, 0, 6, 108, 40, },
-+      { 0, 1, 0, 6, 112, 46, },
-+      { 2, 1, 0, 6, 112, 40, },
-+      { 1, 1, 0, 6, 112, 40, },
-+      { 0, 1, 0, 6, 116, 46, },
-+      { 2, 1, 0, 6, 116, 40, },
-+      { 1, 1, 0, 6, 116, 40, },
-+      { 0, 1, 0, 6, 120, 46, },
-+      { 2, 1, 0, 6, 120, 40, },
-+      { 1, 1, 0, 6, 120, 40, },
-+      { 0, 1, 0, 6, 124, 46, },
-+      { 2, 1, 0, 6, 124, 40, },
-+      { 1, 1, 0, 6, 124, 40, },
-+      { 0, 1, 0, 6, 128, 46, },
-+      { 2, 1, 0, 6, 128, 40, },
-+      { 1, 1, 0, 6, 128, 40, },
-+      { 0, 1, 0, 6, 132, 46, },
-+      { 2, 1, 0, 6, 132, 40, },
-+      { 1, 1, 0, 6, 132, 40, },
-+      { 0, 1, 0, 6, 136, 46, },
-+      { 2, 1, 0, 6, 136, 40, },
-+      { 1, 1, 0, 6, 136, 40, },
-+      { 0, 1, 0, 6, 140, 46, },
-+      { 2, 1, 0, 6, 140, 40, },
-+      { 1, 1, 0, 6, 140, 40, },
-+      { 0, 1, 0, 6, 149, 46, },
-+      { 2, 1, 0, 6, 149, 40, },
-+      { 1, 1, 0, 6, 149, 63, },
-+      { 0, 1, 0, 6, 153, 46, },
-+      { 2, 1, 0, 6, 153, 40, },
-+      { 1, 1, 0, 6, 153, 63, },
-+      { 0, 1, 0, 6, 157, 46, },
-+      { 2, 1, 0, 6, 157, 40, },
-+      { 1, 1, 0, 6, 157, 63, },
-+      { 0, 1, 0, 6, 161, 46, },
-+      { 2, 1, 0, 6, 161, 40, },
-+      { 1, 1, 0, 6, 161, 63, },
-+      { 0, 1, 0, 6, 165, 46, },
-+      { 2, 1, 0, 6, 165, 40, },
-+      { 1, 1, 0, 6, 165, 63, },
-+      { 0, 1, 0, 7, 36, 46, },
-+      { 2, 1, 0, 7, 36, 40, },
-+      { 1, 1, 0, 7, 36, 40, },
-+      { 0, 1, 0, 7, 40, 46, },
-+      { 2, 1, 0, 7, 40, 40, },
-+      { 1, 1, 0, 7, 40, 40, },
-+      { 0, 1, 0, 7, 44, 46, },
-+      { 2, 1, 0, 7, 44, 40, },
-+      { 1, 1, 0, 7, 44, 40, },
-+      { 0, 1, 0, 7, 48, 46, },
-+      { 2, 1, 0, 7, 48, 40, },
-+      { 1, 1, 0, 7, 48, 40, },
-+      { 0, 1, 0, 7, 52, 46, },
-+      { 2, 1, 0, 7, 52, 40, },
-+      { 1, 1, 0, 7, 52, 40, },
-+      { 0, 1, 0, 7, 56, 46, },
-+      { 2, 1, 0, 7, 56, 40, },
-+      { 1, 1, 0, 7, 56, 40, },
-+      { 0, 1, 0, 7, 60, 46, },
-+      { 2, 1, 0, 7, 60, 40, },
-+      { 1, 1, 0, 7, 60, 40, },
-+      { 0, 1, 0, 7, 64, 46, },
-+      { 2, 1, 0, 7, 64, 40, },
-+      { 1, 1, 0, 7, 64, 40, },
-+      { 0, 1, 0, 7, 100, 46, },
-+      { 2, 1, 0, 7, 100, 40, },
-+      { 1, 1, 0, 7, 100, 40, },
-+      { 0, 1, 0, 7, 104, 46, },
-+      { 2, 1, 0, 7, 104, 40, },
-+      { 1, 1, 0, 7, 104, 40, },
-+      { 0, 1, 0, 7, 108, 46, },
-+      { 2, 1, 0, 7, 108, 40, },
-+      { 1, 1, 0, 7, 108, 40, },
-+      { 0, 1, 0, 7, 112, 46, },
-+      { 2, 1, 0, 7, 112, 40, },
-+      { 1, 1, 0, 7, 112, 40, },
-+      { 0, 1, 0, 7, 116, 46, },
-+      { 2, 1, 0, 7, 116, 40, },
-+      { 1, 1, 0, 7, 116, 40, },
-+      { 0, 1, 0, 7, 120, 46, },
-+      { 2, 1, 0, 7, 120, 40, },
-+      { 1, 1, 0, 7, 120, 40, },
-+      { 0, 1, 0, 7, 124, 46, },
-+      { 2, 1, 0, 7, 124, 40, },
-+      { 1, 1, 0, 7, 124, 40, },
-+      { 0, 1, 0, 7, 128, 46, },
-+      { 2, 1, 0, 7, 128, 40, },
-+      { 1, 1, 0, 7, 128, 40, },
-+      { 0, 1, 0, 7, 132, 46, },
-+      { 2, 1, 0, 7, 132, 40, },
-+      { 1, 1, 0, 7, 132, 40, },
-+      { 0, 1, 0, 7, 136, 46, },
-+      { 2, 1, 0, 7, 136, 40, },
-+      { 1, 1, 0, 7, 136, 40, },
-+      { 0, 1, 0, 7, 140, 46, },
-+      { 2, 1, 0, 7, 140, 40, },
-+      { 1, 1, 0, 7, 140, 40, },
-+      { 0, 1, 0, 7, 149, 46, },
-+      { 2, 1, 0, 7, 149, 40, },
-+      { 1, 1, 0, 7, 149, 63, },
-+      { 0, 1, 0, 7, 153, 46, },
-+      { 2, 1, 0, 7, 153, 40, },
-+      { 1, 1, 0, 7, 153, 63, },
-+      { 0, 1, 0, 7, 157, 46, },
-+      { 2, 1, 0, 7, 157, 40, },
-+      { 1, 1, 0, 7, 157, 63, },
-+      { 0, 1, 0, 7, 161, 46, },
-+      { 2, 1, 0, 7, 161, 40, },
-+      { 1, 1, 0, 7, 161, 63, },
-+      { 0, 1, 0, 7, 165, 46, },
-+      { 2, 1, 0, 7, 165, 40, },
-+      { 1, 1, 0, 7, 165, 63, },
-+      { 0, 1, 1, 2, 38, 46, },
-+      { 2, 1, 1, 2, 38, 40, },
-+      { 1, 1, 1, 2, 38, 40, },
-+      { 0, 1, 1, 2, 46, 46, },
-+      { 2, 1, 1, 2, 46, 40, },
-+      { 1, 1, 1, 2, 46, 40, },
-+      { 0, 1, 1, 2, 54, 46, },
-+      { 2, 1, 1, 2, 54, 40, },
-+      { 1, 1, 1, 2, 54, 40, },
-+      { 0, 1, 1, 2, 62, 46, },
-+      { 2, 1, 1, 2, 62, 40, },
-+      { 1, 1, 1, 2, 62, 40, },
-+      { 0, 1, 1, 2, 102, 46, },
-+      { 2, 1, 1, 2, 102, 40, },
-+      { 1, 1, 1, 2, 102, 40, },
-+      { 0, 1, 1, 2, 110, 46, },
-+      { 2, 1, 1, 2, 110, 40, },
-+      { 1, 1, 1, 2, 110, 40, },
-+      { 0, 1, 1, 2, 118, 46, },
-+      { 2, 1, 1, 2, 118, 40, },
-+      { 1, 1, 1, 2, 118, 40, },
-+      { 0, 1, 1, 2, 126, 46, },
-+      { 2, 1, 1, 2, 126, 40, },
-+      { 1, 1, 1, 2, 126, 40, },
-+      { 0, 1, 1, 2, 134, 46, },
-+      { 2, 1, 1, 2, 134, 40, },
-+      { 1, 1, 1, 2, 134, 40, },
-+      { 0, 1, 1, 2, 151, 46, },
-+      { 2, 1, 1, 2, 151, 40, },
-+      { 1, 1, 1, 2, 151, 63, },
-+      { 0, 1, 1, 2, 159, 46, },
-+      { 2, 1, 1, 2, 159, 40, },
-+      { 1, 1, 1, 2, 159, 63, },
-+      { 0, 1, 1, 3, 38, 46, },
-+      { 2, 1, 1, 3, 38, 40, },
-+      { 1, 1, 1, 3, 38, 40, },
-+      { 0, 1, 1, 3, 46, 46, },
-+      { 2, 1, 1, 3, 46, 40, },
-+      { 1, 1, 1, 3, 46, 40, },
-+      { 0, 1, 1, 3, 54, 46, },
-+      { 2, 1, 1, 3, 54, 40, },
-+      { 1, 1, 1, 3, 54, 40, },
-+      { 0, 1, 1, 3, 62, 46, },
-+      { 2, 1, 1, 3, 62, 40, },
-+      { 1, 1, 1, 3, 62, 40, },
-+      { 0, 1, 1, 3, 102, 46, },
-+      { 2, 1, 1, 3, 102, 40, },
-+      { 1, 1, 1, 3, 102, 40, },
-+      { 0, 1, 1, 3, 110, 46, },
-+      { 2, 1, 1, 3, 110, 40, },
-+      { 1, 1, 1, 3, 110, 40, },
-+      { 0, 1, 1, 3, 118, 46, },
-+      { 2, 1, 1, 3, 118, 40, },
-+      { 1, 1, 1, 3, 118, 40, },
-+      { 0, 1, 1, 3, 126, 46, },
-+      { 2, 1, 1, 3, 126, 40, },
-+      { 1, 1, 1, 3, 126, 40, },
-+      { 0, 1, 1, 3, 134, 46, },
-+      { 2, 1, 1, 3, 134, 40, },
-+      { 1, 1, 1, 3, 134, 40, },
-+      { 0, 1, 1, 3, 151, 46, },
-+      { 2, 1, 1, 3, 151, 40, },
-+      { 1, 1, 1, 3, 151, 63, },
-+      { 0, 1, 1, 3, 159, 46, },
-+      { 2, 1, 1, 3, 159, 40, },
-+      { 1, 1, 1, 3, 159, 63, },
-+      { 0, 1, 1, 6, 38, 46, },
-+      { 2, 1, 1, 6, 38, 40, },
-+      { 1, 1, 1, 6, 38, 40, },
-+      { 0, 1, 1, 6, 46, 46, },
-+      { 2, 1, 1, 6, 46, 40, },
-+      { 1, 1, 1, 6, 46, 40, },
-+      { 0, 1, 1, 6, 54, 46, },
-+      { 2, 1, 1, 6, 54, 40, },
-+      { 1, 1, 1, 6, 54, 40, },
-+      { 0, 1, 1, 6, 62, 46, },
-+      { 2, 1, 1, 6, 62, 40, },
-+      { 1, 1, 1, 6, 62, 40, },
-+      { 0, 1, 1, 6, 102, 46, },
-+      { 2, 1, 1, 6, 102, 40, },
-+      { 1, 1, 1, 6, 102, 40, },
-+      { 0, 1, 1, 6, 110, 46, },
-+      { 2, 1, 1, 6, 110, 40, },
-+      { 1, 1, 1, 6, 110, 40, },
-+      { 0, 1, 1, 6, 118, 46, },
-+      { 2, 1, 1, 6, 118, 40, },
-+      { 1, 1, 1, 6, 118, 40, },
-+      { 0, 1, 1, 6, 126, 46, },
-+      { 2, 1, 1, 6, 126, 40, },
-+      { 1, 1, 1, 6, 126, 40, },
-+      { 0, 1, 1, 6, 134, 46, },
-+      { 2, 1, 1, 6, 134, 40, },
-+      { 1, 1, 1, 6, 134, 40, },
-+      { 0, 1, 1, 6, 151, 46, },
-+      { 2, 1, 1, 6, 151, 40, },
-+      { 1, 1, 1, 6, 151, 63, },
-+      { 0, 1, 1, 6, 159, 46, },
-+      { 2, 1, 1, 6, 159, 40, },
-+      { 1, 1, 1, 6, 159, 63, },
-+      { 0, 1, 1, 7, 38, 46, },
-+      { 2, 1, 1, 7, 38, 40, },
-+      { 1, 1, 1, 7, 38, 40, },
-+      { 0, 1, 1, 7, 46, 46, },
-+      { 2, 1, 1, 7, 46, 40, },
-+      { 1, 1, 1, 7, 46, 40, },
-+      { 0, 1, 1, 7, 54, 46, },
-+      { 2, 1, 1, 7, 54, 40, },
-+      { 1, 1, 1, 7, 54, 40, },
-+      { 0, 1, 1, 7, 62, 46, },
-+      { 2, 1, 1, 7, 62, 40, },
-+      { 1, 1, 1, 7, 62, 40, },
-+      { 0, 1, 1, 7, 102, 46, },
-+      { 2, 1, 1, 7, 102, 40, },
-+      { 1, 1, 1, 7, 102, 40, },
-+      { 0, 1, 1, 7, 110, 46, },
-+      { 2, 1, 1, 7, 110, 40, },
-+      { 1, 1, 1, 7, 110, 40, },
-+      { 0, 1, 1, 7, 118, 46, },
-+      { 2, 1, 1, 7, 118, 40, },
-+      { 1, 1, 1, 7, 118, 40, },
-+      { 0, 1, 1, 7, 126, 46, },
-+      { 2, 1, 1, 7, 126, 40, },
-+      { 1, 1, 1, 7, 126, 40, },
-+      { 0, 1, 1, 7, 134, 46, },
-+      { 2, 1, 1, 7, 134, 40, },
-+      { 1, 1, 1, 7, 134, 40, },
-+      { 0, 1, 1, 7, 151, 46, },
-+      { 2, 1, 1, 7, 151, 40, },
-+      { 1, 1, 1, 7, 151, 63, },
-+      { 0, 1, 1, 7, 159, 46, },
-+      { 2, 1, 1, 7, 159, 40, },
-+      { 1, 1, 1, 7, 159, 63, },
-+      { 0, 1, 2, 4, 42, 46, },
-+      { 2, 1, 2, 4, 42, 40, },
-+      { 1, 1, 2, 4, 42, 40, },
-+      { 0, 1, 2, 4, 58, 46, },
-+      { 2, 1, 2, 4, 58, 40, },
-+      { 1, 1, 2, 4, 58, 40, },
-+      { 0, 1, 2, 4, 106, 46, },
-+      { 2, 1, 2, 4, 106, 40, },
-+      { 1, 1, 2, 4, 106, 40, },
-+      { 0, 1, 2, 4, 122, 46, },
-+      { 2, 1, 2, 4, 122, 40, },
-+      { 1, 1, 2, 4, 122, 40, },
-+      { 0, 1, 2, 4, 155, 46, },
-+      { 2, 1, 2, 4, 155, 40, },
-+      { 1, 1, 2, 4, 155, 63, },
-+      { 0, 1, 2, 5, 42, 46, },
-+      { 2, 1, 2, 5, 42, 40, },
-+      { 1, 1, 2, 5, 42, 40, },
-+      { 0, 1, 2, 5, 58, 46, },
-+      { 2, 1, 2, 5, 58, 40, },
-+      { 1, 1, 2, 5, 58, 40, },
-+      { 0, 1, 2, 5, 106, 46, },
-+      { 2, 1, 2, 5, 106, 40, },
-+      { 1, 1, 2, 5, 106, 40, },
-+      { 0, 1, 2, 5, 122, 46, },
-+      { 2, 1, 2, 5, 122, 40, },
-+      { 1, 1, 2, 5, 122, 40, },
-+      { 0, 1, 2, 5, 155, 46, },
-+      { 2, 1, 2, 5, 155, 40, },
-+      { 1, 1, 2, 5, 155, 63, },
-+      { 0, 1, 2, 8, 42, 46, },
-+      { 2, 1, 2, 8, 42, 40, },
-+      { 1, 1, 2, 8, 42, 40, },
-+      { 0, 1, 2, 8, 58, 46, },
-+      { 2, 1, 2, 8, 58, 40, },
-+      { 1, 1, 2, 8, 58, 40, },
-+      { 0, 1, 2, 8, 106, 46, },
-+      { 2, 1, 2, 8, 106, 40, },
-+      { 1, 1, 2, 8, 106, 40, },
-+      { 0, 1, 2, 8, 122, 46, },
-+      { 2, 1, 2, 8, 122, 40, },
-+      { 1, 1, 2, 8, 122, 40, },
-+      { 0, 1, 2, 8, 155, 46, },
-+      { 2, 1, 2, 8, 155, 40, },
-+      { 1, 1, 2, 8, 155, 63, },
-+      { 0, 1, 2, 9, 42, 46, },
-+      { 2, 1, 2, 9, 42, 40, },
-+      { 1, 1, 2, 9, 42, 40, },
-+      { 0, 1, 2, 9, 58, 46, },
-+      { 2, 1, 2, 9, 58, 40, },
-+      { 1, 1, 2, 9, 58, 40, },
-+      { 0, 1, 2, 9, 106, 46, },
-+      { 2, 1, 2, 9, 106, 40, },
-+      { 1, 1, 2, 9, 106, 40, },
-+      { 0, 1, 2, 9, 122, 46, },
-+      { 2, 1, 2, 9, 122, 40, },
-+      { 1, 1, 2, 9, 122, 40, },
-+      { 0, 1, 2, 9, 155, 46, },
-+      { 2, 1, 2, 9, 155, 40, },
-+      { 1, 1, 2, 9, 155, 63, },
-+};
-+
-+RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type3);
-+
-+static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type5[] = {
-+      { 0, 0, 0, 0, 1, 46, },
-+      { 2, 0, 0, 0, 1, 40, },
-+      { 1, 0, 0, 0, 1, 40, },
-+      { 0, 0, 0, 0, 2, 46, },
-+      { 2, 0, 0, 0, 2, 40, },
-+      { 1, 0, 0, 0, 2, 40, },
-+      { 0, 0, 0, 0, 3, 46, },
-+      { 2, 0, 0, 0, 3, 40, },
-+      { 1, 0, 0, 0, 3, 40, },
-+      { 0, 0, 0, 0, 4, 46, },
-+      { 2, 0, 0, 0, 4, 40, },
-+      { 1, 0, 0, 0, 4, 40, },
-+      { 0, 0, 0, 0, 5, 46, },
-+      { 2, 0, 0, 0, 5, 40, },
-+      { 1, 0, 0, 0, 5, 40, },
-+      { 0, 0, 0, 0, 6, 46, },
-+      { 2, 0, 0, 0, 6, 40, },
-+      { 1, 0, 0, 0, 6, 40, },
-+      { 0, 0, 0, 0, 7, 46, },
-+      { 2, 0, 0, 0, 7, 40, },
-+      { 1, 0, 0, 0, 7, 40, },
-+      { 0, 0, 0, 0, 8, 46, },
-+      { 2, 0, 0, 0, 8, 40, },
-+      { 1, 0, 0, 0, 8, 40, },
-+      { 0, 0, 0, 0, 9, 46, },
-+      { 2, 0, 0, 0, 9, 40, },
-+      { 1, 0, 0, 0, 9, 40, },
-+      { 0, 0, 0, 0, 10, 46, },
-+      { 2, 0, 0, 0, 10, 40, },
-+      { 1, 0, 0, 0, 10, 40, },
-+      { 0, 0, 0, 0, 11, 46, },
-+      { 2, 0, 0, 0, 11, 40, },
-+      { 1, 0, 0, 0, 11, 40, },
-+      { 0, 0, 0, 0, 12, 63, },
-+      { 2, 0, 0, 0, 12, 40, },
-+      { 1, 0, 0, 0, 12, 40, },
-+      { 0, 0, 0, 0, 13, 63, },
-+      { 2, 0, 0, 0, 13, 40, },
-+      { 1, 0, 0, 0, 13, 40, },
-+      { 0, 0, 0, 0, 14, 63, },
-+      { 2, 0, 0, 0, 14, 63, },
-+      { 1, 0, 0, 0, 14, 40, },
-+      { 0, 0, 0, 1, 1, 46, },
-+      { 2, 0, 0, 1, 1, 40, },
-+      { 1, 0, 0, 1, 1, 40, },
-+      { 0, 0, 0, 1, 2, 46, },
-+      { 2, 0, 0, 1, 2, 40, },
-+      { 1, 0, 0, 1, 2, 40, },
-+      { 0, 0, 0, 1, 3, 46, },
-+      { 2, 0, 0, 1, 3, 40, },
-+      { 1, 0, 0, 1, 3, 40, },
-+      { 0, 0, 0, 1, 4, 46, },
-+      { 2, 0, 0, 1, 4, 40, },
-+      { 1, 0, 0, 1, 4, 40, },
-+      { 0, 0, 0, 1, 5, 46, },
-+      { 2, 0, 0, 1, 5, 40, },
-+      { 1, 0, 0, 1, 5, 40, },
-+      { 0, 0, 0, 1, 6, 46, },
-+      { 2, 0, 0, 1, 6, 40, },
-+      { 1, 0, 0, 1, 6, 40, },
-+      { 0, 0, 0, 1, 7, 46, },
-+      { 2, 0, 0, 1, 7, 40, },
-+      { 1, 0, 0, 1, 7, 40, },
-+      { 0, 0, 0, 1, 8, 46, },
-+      { 2, 0, 0, 1, 8, 40, },
-+      { 1, 0, 0, 1, 8, 40, },
-+      { 0, 0, 0, 1, 9, 46, },
-+      { 2, 0, 0, 1, 9, 40, },
-+      { 1, 0, 0, 1, 9, 40, },
-+      { 0, 0, 0, 1, 10, 46, },
-+      { 2, 0, 0, 1, 10, 40, },
-+      { 1, 0, 0, 1, 10, 40, },
-+      { 0, 0, 0, 1, 11, 46, },
-+      { 2, 0, 0, 1, 11, 40, },
-+      { 1, 0, 0, 1, 11, 40, },
-+      { 0, 0, 0, 1, 12, 63, },
-+      { 2, 0, 0, 1, 12, 40, },
-+      { 1, 0, 0, 1, 12, 40, },
-+      { 0, 0, 0, 1, 13, 63, },
-+      { 2, 0, 0, 1, 13, 40, },
-+      { 1, 0, 0, 1, 13, 40, },
-+      { 0, 0, 0, 1, 14, 63, },
-+      { 2, 0, 0, 1, 14, 63, },
-+      { 1, 0, 0, 1, 14, 63, },
-+      { 0, 0, 0, 2, 1, 46, },
-+      { 2, 0, 0, 2, 1, 40, },
-+      { 1, 0, 0, 2, 1, 40, },
-+      { 0, 0, 0, 2, 2, 46, },
-+      { 2, 0, 0, 2, 2, 40, },
-+      { 1, 0, 0, 2, 2, 40, },
-+      { 0, 0, 0, 2, 3, 46, },
-+      { 2, 0, 0, 2, 3, 40, },
-+      { 1, 0, 0, 2, 3, 40, },
-+      { 0, 0, 0, 2, 4, 46, },
-+      { 2, 0, 0, 2, 4, 40, },
-+      { 1, 0, 0, 2, 4, 40, },
-+      { 0, 0, 0, 2, 5, 46, },
-+      { 2, 0, 0, 2, 5, 40, },
-+      { 1, 0, 0, 2, 5, 40, },
-+      { 0, 0, 0, 2, 6, 46, },
-+      { 2, 0, 0, 2, 6, 40, },
-+      { 1, 0, 0, 2, 6, 40, },
-+      { 0, 0, 0, 2, 7, 46, },
-+      { 2, 0, 0, 2, 7, 40, },
-+      { 1, 0, 0, 2, 7, 40, },
-+      { 0, 0, 0, 2, 8, 46, },
-+      { 2, 0, 0, 2, 8, 40, },
-+      { 1, 0, 0, 2, 8, 40, },
-+      { 0, 0, 0, 2, 9, 46, },
-+      { 2, 0, 0, 2, 9, 40, },
-+      { 1, 0, 0, 2, 9, 40, },
-+      { 0, 0, 0, 2, 10, 46, },
-+      { 2, 0, 0, 2, 10, 40, },
-+      { 1, 0, 0, 2, 10, 40, },
-+      { 0, 0, 0, 2, 11, 46, },
-+      { 2, 0, 0, 2, 11, 40, },
-+      { 1, 0, 0, 2, 11, 40, },
-+      { 0, 0, 0, 2, 12, 63, },
-+      { 2, 0, 0, 2, 12, 40, },
-+      { 1, 0, 0, 2, 12, 40, },
-+      { 0, 0, 0, 2, 13, 63, },
-+      { 2, 0, 0, 2, 13, 40, },
-+      { 1, 0, 0, 2, 13, 40, },
-+      { 0, 0, 0, 2, 14, 63, },
-+      { 2, 0, 0, 2, 14, 63, },
-+      { 1, 0, 0, 2, 14, 63, },
-+      { 0, 0, 0, 3, 1, 46, },
-+      { 2, 0, 0, 3, 1, 40, },
-+      { 1, 0, 0, 3, 1, 40, },
-+      { 0, 0, 0, 3, 2, 46, },
-+      { 2, 0, 0, 3, 2, 40, },
-+      { 1, 0, 0, 3, 2, 40, },
-+      { 0, 0, 0, 3, 3, 46, },
-+      { 2, 0, 0, 3, 3, 40, },
-+      { 1, 0, 0, 3, 3, 40, },
-+      { 0, 0, 0, 3, 4, 46, },
-+      { 2, 0, 0, 3, 4, 40, },
-+      { 1, 0, 0, 3, 4, 40, },
-+      { 0, 0, 0, 3, 5, 46, },
-+      { 2, 0, 0, 3, 5, 40, },
-+      { 1, 0, 0, 3, 5, 40, },
-+      { 0, 0, 0, 3, 6, 46, },
-+      { 2, 0, 0, 3, 6, 40, },
-+      { 1, 0, 0, 3, 6, 40, },
-+      { 0, 0, 0, 3, 7, 46, },
-+      { 2, 0, 0, 3, 7, 40, },
-+      { 1, 0, 0, 3, 7, 40, },
-+      { 0, 0, 0, 3, 8, 46, },
-+      { 2, 0, 0, 3, 8, 40, },
-+      { 1, 0, 0, 3, 8, 40, },
-+      { 0, 0, 0, 3, 9, 46, },
-+      { 2, 0, 0, 3, 9, 40, },
-+      { 1, 0, 0, 3, 9, 40, },
-+      { 0, 0, 0, 3, 10, 46, },
-+      { 2, 0, 0, 3, 10, 40, },
-+      { 1, 0, 0, 3, 10, 40, },
-+      { 0, 0, 0, 3, 11, 46, },
-+      { 2, 0, 0, 3, 11, 40, },
-+      { 1, 0, 0, 3, 11, 40, },
-+      { 0, 0, 0, 3, 12, 63, },
-+      { 2, 0, 0, 3, 12, 40, },
-+      { 1, 0, 0, 3, 12, 40, },
-+      { 0, 0, 0, 3, 13, 63, },
-+      { 2, 0, 0, 3, 13, 40, },
-+      { 1, 0, 0, 3, 13, 40, },
-+      { 0, 0, 0, 3, 14, 63, },
-+      { 2, 0, 0, 3, 14, 63, },
-+      { 1, 0, 0, 3, 14, 63, },
-+      { 0, 0, 0, 6, 1, 46, },
-+      { 2, 0, 0, 6, 1, 40, },
-+      { 1, 0, 0, 6, 1, 40, },
-+      { 0, 0, 0, 6, 2, 46, },
-+      { 2, 0, 0, 6, 2, 40, },
-+      { 1, 0, 0, 6, 2, 40, },
-+      { 0, 0, 0, 6, 3, 46, },
-+      { 2, 0, 0, 6, 3, 40, },
-+      { 1, 0, 0, 6, 3, 40, },
-+      { 0, 0, 0, 6, 4, 46, },
-+      { 2, 0, 0, 6, 4, 40, },
-+      { 1, 0, 0, 6, 4, 40, },
-+      { 0, 0, 0, 6, 5, 46, },
-+      { 2, 0, 0, 6, 5, 40, },
-+      { 1, 0, 0, 6, 5, 40, },
-+      { 0, 0, 0, 6, 6, 46, },
-+      { 2, 0, 0, 6, 6, 40, },
-+      { 1, 0, 0, 6, 6, 40, },
-+      { 0, 0, 0, 6, 7, 46, },
-+      { 2, 0, 0, 6, 7, 40, },
-+      { 1, 0, 0, 6, 7, 40, },
-+      { 0, 0, 0, 6, 8, 46, },
-+      { 2, 0, 0, 6, 8, 40, },
-+      { 1, 0, 0, 6, 8, 40, },
-+      { 0, 0, 0, 6, 9, 46, },
-+      { 2, 0, 0, 6, 9, 40, },
-+      { 1, 0, 0, 6, 9, 40, },
-+      { 0, 0, 0, 6, 10, 46, },
-+      { 2, 0, 0, 6, 10, 40, },
-+      { 1, 0, 0, 6, 10, 40, },
-+      { 0, 0, 0, 6, 11, 46, },
-+      { 2, 0, 0, 6, 11, 40, },
-+      { 1, 0, 0, 6, 11, 40, },
-+      { 0, 0, 0, 6, 12, 63, },
-+      { 2, 0, 0, 6, 12, 40, },
-+      { 1, 0, 0, 6, 12, 40, },
-+      { 0, 0, 0, 6, 13, 63, },
-+      { 2, 0, 0, 6, 13, 40, },
-+      { 1, 0, 0, 6, 13, 40, },
-+      { 0, 0, 0, 6, 14, 63, },
-+      { 2, 0, 0, 6, 14, 63, },
-+      { 1, 0, 0, 6, 14, 63, },
-+      { 0, 0, 0, 7, 1, 46, },
-+      { 2, 0, 0, 7, 1, 40, },
-+      { 1, 0, 0, 7, 1, 40, },
-+      { 0, 0, 0, 7, 2, 46, },
-+      { 2, 0, 0, 7, 2, 40, },
-+      { 1, 0, 0, 7, 2, 40, },
-+      { 0, 0, 0, 7, 3, 46, },
-+      { 2, 0, 0, 7, 3, 40, },
-+      { 1, 0, 0, 7, 3, 40, },
-+      { 0, 0, 0, 7, 4, 46, },
-+      { 2, 0, 0, 7, 4, 40, },
-+      { 1, 0, 0, 7, 4, 40, },
-+      { 0, 0, 0, 7, 5, 46, },
-+      { 2, 0, 0, 7, 5, 40, },
-+      { 1, 0, 0, 7, 5, 40, },
-+      { 0, 0, 0, 7, 6, 46, },
-+      { 2, 0, 0, 7, 6, 40, },
-+      { 1, 0, 0, 7, 6, 40, },
-+      { 0, 0, 0, 7, 7, 46, },
-+      { 2, 0, 0, 7, 7, 40, },
-+      { 1, 0, 0, 7, 7, 40, },
-+      { 0, 0, 0, 7, 8, 46, },
-+      { 2, 0, 0, 7, 8, 40, },
-+      { 1, 0, 0, 7, 8, 40, },
-+      { 0, 0, 0, 7, 9, 46, },
-+      { 2, 0, 0, 7, 9, 40, },
-+      { 1, 0, 0, 7, 9, 40, },
-+      { 0, 0, 0, 7, 10, 46, },
-+      { 2, 0, 0, 7, 10, 40, },
-+      { 1, 0, 0, 7, 10, 40, },
-+      { 0, 0, 0, 7, 11, 46, },
-+      { 2, 0, 0, 7, 11, 40, },
-+      { 1, 0, 0, 7, 11, 40, },
-+      { 0, 0, 0, 7, 12, 63, },
-+      { 2, 0, 0, 7, 12, 40, },
-+      { 1, 0, 0, 7, 12, 40, },
-+      { 0, 0, 0, 7, 13, 63, },
-+      { 2, 0, 0, 7, 13, 40, },
-+      { 1, 0, 0, 7, 13, 40, },
-+      { 0, 0, 0, 7, 14, 63, },
-+      { 2, 0, 0, 7, 14, 63, },
-+      { 1, 0, 0, 7, 14, 63, },
-+      { 0, 0, 1, 2, 1, 63, },
-+      { 2, 0, 1, 2, 1, 63, },
-+      { 1, 0, 1, 2, 1, 63, },
-+      { 0, 0, 1, 2, 2, 63, },
-+      { 2, 0, 1, 2, 2, 63, },
-+      { 1, 0, 1, 2, 2, 63, },
-+      { 0, 0, 1, 2, 3, 46, },
-+      { 2, 0, 1, 2, 3, 40, },
-+      { 1, 0, 1, 2, 3, 40, },
-+      { 0, 0, 1, 2, 4, 46, },
-+      { 2, 0, 1, 2, 4, 40, },
-+      { 1, 0, 1, 2, 4, 40, },
-+      { 0, 0, 1, 2, 5, 46, },
-+      { 2, 0, 1, 2, 5, 40, },
-+      { 1, 0, 1, 2, 5, 40, },
-+      { 0, 0, 1, 2, 6, 46, },
-+      { 2, 0, 1, 2, 6, 40, },
-+      { 1, 0, 1, 2, 6, 40, },
-+      { 0, 0, 1, 2, 7, 46, },
-+      { 2, 0, 1, 2, 7, 40, },
-+      { 1, 0, 1, 2, 7, 40, },
-+      { 0, 0, 1, 2, 8, 46, },
-+      { 2, 0, 1, 2, 8, 40, },
-+      { 1, 0, 1, 2, 8, 40, },
-+      { 0, 0, 1, 2, 9, 46, },
-+      { 2, 0, 1, 2, 9, 40, },
-+      { 1, 0, 1, 2, 9, 40, },
-+      { 0, 0, 1, 2, 10, 46, },
-+      { 2, 0, 1, 2, 10, 40, },
-+      { 1, 0, 1, 2, 10, 40, },
-+      { 0, 0, 1, 2, 11, 46, },
-+      { 2, 0, 1, 2, 11, 40, },
-+      { 1, 0, 1, 2, 11, 40, },
-+      { 0, 0, 1, 2, 12, 63, },
-+      { 2, 0, 1, 2, 12, 40, },
-+      { 1, 0, 1, 2, 12, 40, },
-+      { 0, 0, 1, 2, 13, 63, },
-+      { 2, 0, 1, 2, 13, 40, },
-+      { 1, 0, 1, 2, 13, 40, },
-+      { 0, 0, 1, 2, 14, 63, },
-+      { 2, 0, 1, 2, 14, 63, },
-+      { 1, 0, 1, 2, 14, 63, },
-+      { 0, 0, 1, 3, 1, 63, },
-+      { 2, 0, 1, 3, 1, 63, },
-+      { 1, 0, 1, 3, 1, 63, },
-+      { 0, 0, 1, 3, 2, 63, },
-+      { 2, 0, 1, 3, 2, 63, },
-+      { 1, 0, 1, 3, 2, 63, },
-+      { 0, 0, 1, 3, 3, 46, },
-+      { 2, 0, 1, 3, 3, 40, },
-+      { 1, 0, 1, 3, 3, 40, },
-+      { 0, 0, 1, 3, 4, 46, },
-+      { 2, 0, 1, 3, 4, 40, },
-+      { 1, 0, 1, 3, 4, 40, },
-+      { 0, 0, 1, 3, 5, 46, },
-+      { 2, 0, 1, 3, 5, 40, },
-+      { 1, 0, 1, 3, 5, 40, },
-+      { 0, 0, 1, 3, 6, 46, },
-+      { 2, 0, 1, 3, 6, 40, },
-+      { 1, 0, 1, 3, 6, 40, },
-+      { 0, 0, 1, 3, 7, 46, },
-+      { 2, 0, 1, 3, 7, 40, },
-+      { 1, 0, 1, 3, 7, 40, },
-+      { 0, 0, 1, 3, 8, 46, },
-+      { 2, 0, 1, 3, 8, 40, },
-+      { 1, 0, 1, 3, 8, 40, },
-+      { 0, 0, 1, 3, 9, 46, },
-+      { 2, 0, 1, 3, 9, 40, },
-+      { 1, 0, 1, 3, 9, 40, },
-+      { 0, 0, 1, 3, 10, 46, },
-+      { 2, 0, 1, 3, 10, 40, },
-+      { 1, 0, 1, 3, 10, 40, },
-+      { 0, 0, 1, 3, 11, 46, },
-+      { 2, 0, 1, 3, 11, 40, },
-+      { 1, 0, 1, 3, 11, 40, },
-+      { 0, 0, 1, 3, 12, 63, },
-+      { 2, 0, 1, 3, 12, 40, },
-+      { 1, 0, 1, 3, 12, 40, },
-+      { 0, 0, 1, 3, 13, 63, },
-+      { 2, 0, 1, 3, 13, 40, },
-+      { 1, 0, 1, 3, 13, 40, },
-+      { 0, 0, 1, 3, 14, 63, },
-+      { 2, 0, 1, 3, 14, 63, },
-+      { 1, 0, 1, 3, 14, 63, },
-+      { 0, 0, 1, 6, 1, 63, },
-+      { 2, 0, 1, 6, 1, 63, },
-+      { 1, 0, 1, 6, 1, 63, },
-+      { 0, 0, 1, 6, 2, 63, },
-+      { 2, 0, 1, 6, 2, 63, },
-+      { 1, 0, 1, 6, 2, 63, },
-+      { 0, 0, 1, 6, 3, 46, },
-+      { 2, 0, 1, 6, 3, 40, },
-+      { 1, 0, 1, 6, 3, 40, },
-+      { 0, 0, 1, 6, 4, 46, },
-+      { 2, 0, 1, 6, 4, 40, },
-+      { 1, 0, 1, 6, 4, 40, },
-+      { 0, 0, 1, 6, 5, 46, },
-+      { 2, 0, 1, 6, 5, 40, },
-+      { 1, 0, 1, 6, 5, 40, },
-+      { 0, 0, 1, 6, 6, 46, },
-+      { 2, 0, 1, 6, 6, 40, },
-+      { 1, 0, 1, 6, 6, 40, },
-+      { 0, 0, 1, 6, 7, 46, },
-+      { 2, 0, 1, 6, 7, 40, },
-+      { 1, 0, 1, 6, 7, 40, },
-+      { 0, 0, 1, 6, 8, 46, },
-+      { 2, 0, 1, 6, 8, 40, },
-+      { 1, 0, 1, 6, 8, 40, },
-+      { 0, 0, 1, 6, 9, 46, },
-+      { 2, 0, 1, 6, 9, 40, },
-+      { 1, 0, 1, 6, 9, 40, },
-+      { 0, 0, 1, 6, 10, 46, },
-+      { 2, 0, 1, 6, 10, 40, },
-+      { 1, 0, 1, 6, 10, 40, },
-+      { 0, 0, 1, 6, 11, 46, },
-+      { 2, 0, 1, 6, 11, 40, },
-+      { 1, 0, 1, 6, 11, 40, },
-+      { 0, 0, 1, 6, 12, 63, },
-+      { 2, 0, 1, 6, 12, 40, },
-+      { 1, 0, 1, 6, 12, 40, },
-+      { 0, 0, 1, 6, 13, 63, },
-+      { 2, 0, 1, 6, 13, 40, },
-+      { 1, 0, 1, 6, 13, 40, },
-+      { 0, 0, 1, 6, 14, 63, },
-+      { 2, 0, 1, 6, 14, 63, },
-+      { 1, 0, 1, 6, 14, 63, },
-+      { 0, 0, 1, 7, 1, 63, },
-+      { 2, 0, 1, 7, 1, 63, },
-+      { 1, 0, 1, 7, 1, 63, },
-+      { 0, 0, 1, 7, 2, 63, },
-+      { 2, 0, 1, 7, 2, 63, },
-+      { 1, 0, 1, 7, 2, 63, },
-+      { 0, 0, 1, 7, 3, 46, },
-+      { 2, 0, 1, 7, 3, 40, },
-+      { 1, 0, 1, 7, 3, 40, },
-+      { 0, 0, 1, 7, 4, 46, },
-+      { 2, 0, 1, 7, 4, 40, },
-+      { 1, 0, 1, 7, 4, 40, },
-+      { 0, 0, 1, 7, 5, 46, },
-+      { 2, 0, 1, 7, 5, 40, },
-+      { 1, 0, 1, 7, 5, 40, },
-+      { 0, 0, 1, 7, 6, 46, },
-+      { 2, 0, 1, 7, 6, 40, },
-+      { 1, 0, 1, 7, 6, 40, },
-+      { 0, 0, 1, 7, 7, 46, },
-+      { 2, 0, 1, 7, 7, 40, },
-+      { 1, 0, 1, 7, 7, 40, },
-+      { 0, 0, 1, 7, 8, 46, },
-+      { 2, 0, 1, 7, 8, 40, },
-+      { 1, 0, 1, 7, 8, 40, },
-+      { 0, 0, 1, 7, 9, 46, },
-+      { 2, 0, 1, 7, 9, 40, },
-+      { 1, 0, 1, 7, 9, 40, },
-+      { 0, 0, 1, 7, 10, 46, },
-+      { 2, 0, 1, 7, 10, 40, },
-+      { 1, 0, 1, 7, 10, 40, },
-+      { 0, 0, 1, 7, 11, 46, },
-+      { 2, 0, 1, 7, 11, 40, },
-+      { 1, 0, 1, 7, 11, 40, },
-+      { 0, 0, 1, 7, 12, 63, },
-+      { 2, 0, 1, 7, 12, 40, },
-+      { 1, 0, 1, 7, 12, 40, },
-+      { 0, 0, 1, 7, 13, 63, },
-+      { 2, 0, 1, 7, 13, 40, },
-+      { 1, 0, 1, 7, 13, 40, },
-+      { 0, 0, 1, 7, 14, 63, },
-+      { 2, 0, 1, 7, 14, 63, },
-+      { 1, 0, 1, 7, 14, 63, },
-+      { 0, 1, 0, 1, 36, 46, },
-+      { 2, 1, 0, 1, 36, 40, },
-+      { 1, 1, 0, 1, 36, 40, },
-+      { 0, 1, 0, 1, 40, 46, },
-+      { 2, 1, 0, 1, 40, 40, },
-+      { 1, 1, 0, 1, 40, 40, },
-+      { 0, 1, 0, 1, 44, 46, },
-+      { 2, 1, 0, 1, 44, 40, },
-+      { 1, 1, 0, 1, 44, 40, },
-+      { 0, 1, 0, 1, 48, 46, },
-+      { 2, 1, 0, 1, 48, 40, },
-+      { 1, 1, 0, 1, 48, 40, },
-+      { 0, 1, 0, 1, 52, 46, },
-+      { 2, 1, 0, 1, 52, 40, },
-+      { 1, 1, 0, 1, 52, 40, },
-+      { 0, 1, 0, 1, 56, 46, },
-+      { 2, 1, 0, 1, 56, 40, },
-+      { 1, 1, 0, 1, 56, 40, },
-+      { 0, 1, 0, 1, 60, 46, },
-+      { 2, 1, 0, 1, 60, 40, },
-+      { 1, 1, 0, 1, 60, 40, },
-+      { 0, 1, 0, 1, 64, 46, },
-+      { 2, 1, 0, 1, 64, 40, },
-+      { 1, 1, 0, 1, 64, 40, },
-+      { 0, 1, 0, 1, 100, 46, },
-+      { 2, 1, 0, 1, 100, 40, },
-+      { 1, 1, 0, 1, 100, 40, },
-+      { 0, 1, 0, 1, 104, 46, },
-+      { 2, 1, 0, 1, 104, 40, },
-+      { 1, 1, 0, 1, 104, 40, },
-+      { 0, 1, 0, 1, 108, 46, },
-+      { 2, 1, 0, 1, 108, 40, },
-+      { 1, 1, 0, 1, 108, 40, },
-+      { 0, 1, 0, 1, 112, 46, },
-+      { 2, 1, 0, 1, 112, 40, },
-+      { 1, 1, 0, 1, 112, 40, },
-+      { 0, 1, 0, 1, 116, 46, },
-+      { 2, 1, 0, 1, 116, 40, },
-+      { 1, 1, 0, 1, 116, 40, },
-+      { 0, 1, 0, 1, 120, 46, },
-+      { 2, 1, 0, 1, 120, 40, },
-+      { 1, 1, 0, 1, 120, 40, },
-+      { 0, 1, 0, 1, 124, 46, },
-+      { 2, 1, 0, 1, 124, 40, },
-+      { 1, 1, 0, 1, 124, 40, },
-+      { 0, 1, 0, 1, 128, 46, },
-+      { 2, 1, 0, 1, 128, 40, },
-+      { 1, 1, 0, 1, 128, 40, },
-+      { 0, 1, 0, 1, 132, 46, },
-+      { 2, 1, 0, 1, 132, 40, },
-+      { 1, 1, 0, 1, 132, 40, },
-+      { 0, 1, 0, 1, 136, 46, },
-+      { 2, 1, 0, 1, 136, 40, },
-+      { 1, 1, 0, 1, 136, 40, },
-+      { 0, 1, 0, 1, 140, 46, },
-+      { 2, 1, 0, 1, 140, 40, },
-+      { 1, 1, 0, 1, 140, 40, },
-+      { 0, 1, 0, 1, 149, 46, },
-+      { 2, 1, 0, 1, 149, 40, },
-+      { 1, 1, 0, 1, 149, 63, },
-+      { 0, 1, 0, 1, 153, 46, },
-+      { 2, 1, 0, 1, 153, 40, },
-+      { 1, 1, 0, 1, 153, 63, },
-+      { 0, 1, 0, 1, 157, 46, },
-+      { 2, 1, 0, 1, 157, 40, },
-+      { 1, 1, 0, 1, 157, 63, },
-+      { 0, 1, 0, 1, 161, 46, },
-+      { 2, 1, 0, 1, 161, 40, },
-+      { 1, 1, 0, 1, 161, 63, },
-+      { 0, 1, 0, 1, 165, 46, },
-+      { 2, 1, 0, 1, 165, 40, },
-+      { 1, 1, 0, 1, 165, 63, },
-+      { 0, 1, 0, 2, 36, 46, },
-+      { 2, 1, 0, 2, 36, 40, },
-+      { 1, 1, 0, 2, 36, 40, },
-+      { 0, 1, 0, 2, 40, 46, },
-+      { 2, 1, 0, 2, 40, 40, },
-+      { 1, 1, 0, 2, 40, 40, },
-+      { 0, 1, 0, 2, 44, 46, },
-+      { 2, 1, 0, 2, 44, 40, },
-+      { 1, 1, 0, 2, 44, 40, },
-+      { 0, 1, 0, 2, 48, 46, },
-+      { 2, 1, 0, 2, 48, 40, },
-+      { 1, 1, 0, 2, 48, 40, },
-+      { 0, 1, 0, 2, 52, 46, },
-+      { 2, 1, 0, 2, 52, 40, },
-+      { 1, 1, 0, 2, 52, 40, },
-+      { 0, 1, 0, 2, 56, 46, },
-+      { 2, 1, 0, 2, 56, 40, },
-+      { 1, 1, 0, 2, 56, 40, },
-+      { 0, 1, 0, 2, 60, 46, },
-+      { 2, 1, 0, 2, 60, 40, },
-+      { 1, 1, 0, 2, 60, 40, },
-+      { 0, 1, 0, 2, 64, 46, },
-+      { 2, 1, 0, 2, 64, 40, },
-+      { 1, 1, 0, 2, 64, 40, },
-+      { 0, 1, 0, 2, 100, 46, },
-+      { 2, 1, 0, 2, 100, 40, },
-+      { 1, 1, 0, 2, 100, 40, },
-+      { 0, 1, 0, 2, 104, 46, },
-+      { 2, 1, 0, 2, 104, 40, },
-+      { 1, 1, 0, 2, 104, 40, },
-+      { 0, 1, 0, 2, 108, 46, },
-+      { 2, 1, 0, 2, 108, 40, },
-+      { 1, 1, 0, 2, 108, 40, },
-+      { 0, 1, 0, 2, 112, 46, },
-+      { 2, 1, 0, 2, 112, 40, },
-+      { 1, 1, 0, 2, 112, 40, },
-+      { 0, 1, 0, 2, 116, 46, },
-+      { 2, 1, 0, 2, 116, 40, },
-+      { 1, 1, 0, 2, 116, 40, },
-+      { 0, 1, 0, 2, 120, 46, },
-+      { 2, 1, 0, 2, 120, 40, },
-+      { 1, 1, 0, 2, 120, 40, },
-+      { 0, 1, 0, 2, 124, 46, },
-+      { 2, 1, 0, 2, 124, 40, },
-+      { 1, 1, 0, 2, 124, 40, },
-+      { 0, 1, 0, 2, 128, 46, },
-+      { 2, 1, 0, 2, 128, 40, },
-+      { 1, 1, 0, 2, 128, 40, },
-+      { 0, 1, 0, 2, 132, 46, },
-+      { 2, 1, 0, 2, 132, 40, },
-+      { 1, 1, 0, 2, 132, 40, },
-+      { 0, 1, 0, 2, 136, 46, },
-+      { 2, 1, 0, 2, 136, 40, },
-+      { 1, 1, 0, 2, 136, 40, },
-+      { 0, 1, 0, 2, 140, 46, },
-+      { 2, 1, 0, 2, 140, 40, },
-+      { 1, 1, 0, 2, 140, 40, },
-+      { 0, 1, 0, 2, 149, 46, },
-+      { 2, 1, 0, 2, 149, 40, },
-+      { 1, 1, 0, 2, 149, 63, },
-+      { 0, 1, 0, 2, 153, 46, },
-+      { 2, 1, 0, 2, 153, 40, },
-+      { 1, 1, 0, 2, 153, 63, },
-+      { 0, 1, 0, 2, 157, 46, },
-+      { 2, 1, 0, 2, 157, 40, },
-+      { 1, 1, 0, 2, 157, 63, },
-+      { 0, 1, 0, 2, 161, 46, },
-+      { 2, 1, 0, 2, 161, 40, },
-+      { 1, 1, 0, 2, 161, 63, },
-+      { 0, 1, 0, 2, 165, 46, },
-+      { 2, 1, 0, 2, 165, 40, },
-+      { 1, 1, 0, 2, 165, 63, },
-+      { 0, 1, 0, 3, 36, 46, },
-+      { 2, 1, 0, 3, 36, 40, },
-+      { 1, 1, 0, 3, 36, 40, },
-+      { 0, 1, 0, 3, 40, 46, },
-+      { 2, 1, 0, 3, 40, 40, },
-+      { 1, 1, 0, 3, 40, 40, },
-+      { 0, 1, 0, 3, 44, 46, },
-+      { 2, 1, 0, 3, 44, 40, },
-+      { 1, 1, 0, 3, 44, 40, },
-+      { 0, 1, 0, 3, 48, 46, },
-+      { 2, 1, 0, 3, 48, 40, },
-+      { 1, 1, 0, 3, 48, 40, },
-+      { 0, 1, 0, 3, 52, 46, },
-+      { 2, 1, 0, 3, 52, 40, },
-+      { 1, 1, 0, 3, 52, 40, },
-+      { 0, 1, 0, 3, 56, 46, },
-+      { 2, 1, 0, 3, 56, 40, },
-+      { 1, 1, 0, 3, 56, 40, },
-+      { 0, 1, 0, 3, 60, 46, },
-+      { 2, 1, 0, 3, 60, 40, },
-+      { 1, 1, 0, 3, 60, 40, },
-+      { 0, 1, 0, 3, 64, 46, },
-+      { 2, 1, 0, 3, 64, 40, },
-+      { 1, 1, 0, 3, 64, 40, },
-+      { 0, 1, 0, 3, 100, 46, },
-+      { 2, 1, 0, 3, 100, 40, },
-+      { 1, 1, 0, 3, 100, 40, },
-+      { 0, 1, 0, 3, 104, 46, },
-+      { 2, 1, 0, 3, 104, 40, },
-+      { 1, 1, 0, 3, 104, 40, },
-+      { 0, 1, 0, 3, 108, 46, },
-+      { 2, 1, 0, 3, 108, 40, },
-+      { 1, 1, 0, 3, 108, 40, },
-+      { 0, 1, 0, 3, 112, 46, },
-+      { 2, 1, 0, 3, 112, 40, },
-+      { 1, 1, 0, 3, 112, 40, },
-+      { 0, 1, 0, 3, 116, 46, },
-+      { 2, 1, 0, 3, 116, 40, },
-+      { 1, 1, 0, 3, 116, 40, },
-+      { 0, 1, 0, 3, 120, 46, },
-+      { 2, 1, 0, 3, 120, 40, },
-+      { 1, 1, 0, 3, 120, 40, },
-+      { 0, 1, 0, 3, 124, 46, },
-+      { 2, 1, 0, 3, 124, 40, },
-+      { 1, 1, 0, 3, 124, 40, },
-+      { 0, 1, 0, 3, 128, 46, },
-+      { 2, 1, 0, 3, 128, 40, },
-+      { 1, 1, 0, 3, 128, 40, },
-+      { 0, 1, 0, 3, 132, 46, },
-+      { 2, 1, 0, 3, 132, 40, },
-+      { 1, 1, 0, 3, 132, 40, },
-+      { 0, 1, 0, 3, 136, 46, },
-+      { 2, 1, 0, 3, 136, 40, },
-+      { 1, 1, 0, 3, 136, 40, },
-+      { 0, 1, 0, 3, 140, 46, },
-+      { 2, 1, 0, 3, 140, 40, },
-+      { 1, 1, 0, 3, 140, 40, },
-+      { 0, 1, 0, 3, 149, 46, },
-+      { 2, 1, 0, 3, 149, 40, },
-+      { 1, 1, 0, 3, 149, 63, },
-+      { 0, 1, 0, 3, 153, 46, },
-+      { 2, 1, 0, 3, 153, 40, },
-+      { 1, 1, 0, 3, 153, 63, },
-+      { 0, 1, 0, 3, 157, 46, },
-+      { 2, 1, 0, 3, 157, 40, },
-+      { 1, 1, 0, 3, 157, 63, },
-+      { 0, 1, 0, 3, 161, 46, },
-+      { 2, 1, 0, 3, 161, 40, },
-+      { 1, 1, 0, 3, 161, 63, },
-+      { 0, 1, 0, 3, 165, 46, },
-+      { 2, 1, 0, 3, 165, 40, },
-+      { 1, 1, 0, 3, 165, 63, },
-+      { 0, 1, 0, 6, 36, 46, },
-+      { 2, 1, 0, 6, 36, 40, },
-+      { 1, 1, 0, 6, 36, 40, },
-+      { 0, 1, 0, 6, 40, 46, },
-+      { 2, 1, 0, 6, 40, 40, },
-+      { 1, 1, 0, 6, 40, 40, },
-+      { 0, 1, 0, 6, 44, 46, },
-+      { 2, 1, 0, 6, 44, 40, },
-+      { 1, 1, 0, 6, 44, 40, },
-+      { 0, 1, 0, 6, 48, 46, },
-+      { 2, 1, 0, 6, 48, 40, },
-+      { 1, 1, 0, 6, 48, 40, },
-+      { 0, 1, 0, 6, 52, 46, },
-+      { 2, 1, 0, 6, 52, 40, },
-+      { 1, 1, 0, 6, 52, 40, },
-+      { 0, 1, 0, 6, 56, 46, },
-+      { 2, 1, 0, 6, 56, 40, },
-+      { 1, 1, 0, 6, 56, 40, },
-+      { 0, 1, 0, 6, 60, 46, },
-+      { 2, 1, 0, 6, 60, 40, },
-+      { 1, 1, 0, 6, 60, 40, },
-+      { 0, 1, 0, 6, 64, 46, },
-+      { 2, 1, 0, 6, 64, 40, },
-+      { 1, 1, 0, 6, 64, 40, },
-+      { 0, 1, 0, 6, 100, 46, },
-+      { 2, 1, 0, 6, 100, 40, },
-+      { 1, 1, 0, 6, 100, 40, },
-+      { 0, 1, 0, 6, 104, 46, },
-+      { 2, 1, 0, 6, 104, 40, },
-+      { 1, 1, 0, 6, 104, 40, },
-+      { 0, 1, 0, 6, 108, 46, },
-+      { 2, 1, 0, 6, 108, 40, },
-+      { 1, 1, 0, 6, 108, 40, },
-+      { 0, 1, 0, 6, 112, 46, },
-+      { 2, 1, 0, 6, 112, 40, },
-+      { 1, 1, 0, 6, 112, 40, },
-+      { 0, 1, 0, 6, 116, 46, },
-+      { 2, 1, 0, 6, 116, 40, },
-+      { 1, 1, 0, 6, 116, 40, },
-+      { 0, 1, 0, 6, 120, 46, },
-+      { 2, 1, 0, 6, 120, 40, },
-+      { 1, 1, 0, 6, 120, 40, },
-+      { 0, 1, 0, 6, 124, 46, },
-+      { 2, 1, 0, 6, 124, 40, },
-+      { 1, 1, 0, 6, 124, 40, },
-+      { 0, 1, 0, 6, 128, 46, },
-+      { 2, 1, 0, 6, 128, 40, },
-+      { 1, 1, 0, 6, 128, 40, },
-+      { 0, 1, 0, 6, 132, 46, },
-+      { 2, 1, 0, 6, 132, 40, },
-+      { 1, 1, 0, 6, 132, 40, },
-+      { 0, 1, 0, 6, 136, 46, },
-+      { 2, 1, 0, 6, 136, 40, },
-+      { 1, 1, 0, 6, 136, 40, },
-+      { 0, 1, 0, 6, 140, 46, },
-+      { 2, 1, 0, 6, 140, 40, },
-+      { 1, 1, 0, 6, 140, 40, },
-+      { 0, 1, 0, 6, 149, 46, },
-+      { 2, 1, 0, 6, 149, 40, },
-+      { 1, 1, 0, 6, 149, 63, },
-+      { 0, 1, 0, 6, 153, 46, },
-+      { 2, 1, 0, 6, 153, 40, },
-+      { 1, 1, 0, 6, 153, 63, },
-+      { 0, 1, 0, 6, 157, 46, },
-+      { 2, 1, 0, 6, 157, 40, },
-+      { 1, 1, 0, 6, 157, 63, },
-+      { 0, 1, 0, 6, 161, 46, },
-+      { 2, 1, 0, 6, 161, 40, },
-+      { 1, 1, 0, 6, 161, 63, },
-+      { 0, 1, 0, 6, 165, 46, },
-+      { 2, 1, 0, 6, 165, 40, },
-+      { 1, 1, 0, 6, 165, 63, },
-+      { 0, 1, 0, 7, 36, 46, },
-+      { 2, 1, 0, 7, 36, 40, },
-+      { 1, 1, 0, 7, 36, 40, },
-+      { 0, 1, 0, 7, 40, 46, },
-+      { 2, 1, 0, 7, 40, 40, },
-+      { 1, 1, 0, 7, 40, 40, },
-+      { 0, 1, 0, 7, 44, 46, },
-+      { 2, 1, 0, 7, 44, 40, },
-+      { 1, 1, 0, 7, 44, 40, },
-+      { 0, 1, 0, 7, 48, 46, },
-+      { 2, 1, 0, 7, 48, 40, },
-+      { 1, 1, 0, 7, 48, 40, },
-+      { 0, 1, 0, 7, 52, 46, },
-+      { 2, 1, 0, 7, 52, 40, },
-+      { 1, 1, 0, 7, 52, 40, },
-+      { 0, 1, 0, 7, 56, 46, },
-+      { 2, 1, 0, 7, 56, 40, },
-+      { 1, 1, 0, 7, 56, 40, },
-+      { 0, 1, 0, 7, 60, 46, },
-+      { 2, 1, 0, 7, 60, 40, },
-+      { 1, 1, 0, 7, 60, 40, },
-+      { 0, 1, 0, 7, 64, 46, },
-+      { 2, 1, 0, 7, 64, 40, },
-+      { 1, 1, 0, 7, 64, 40, },
-+      { 0, 1, 0, 7, 100, 46, },
-+      { 2, 1, 0, 7, 100, 40, },
-+      { 1, 1, 0, 7, 100, 40, },
-+      { 0, 1, 0, 7, 104, 46, },
-+      { 2, 1, 0, 7, 104, 40, },
-+      { 1, 1, 0, 7, 104, 40, },
-+      { 0, 1, 0, 7, 108, 46, },
-+      { 2, 1, 0, 7, 108, 40, },
-+      { 1, 1, 0, 7, 108, 40, },
-+      { 0, 1, 0, 7, 112, 46, },
-+      { 2, 1, 0, 7, 112, 40, },
-+      { 1, 1, 0, 7, 112, 40, },
-+      { 0, 1, 0, 7, 116, 46, },
-+      { 2, 1, 0, 7, 116, 40, },
-+      { 1, 1, 0, 7, 116, 40, },
-+      { 0, 1, 0, 7, 120, 46, },
-+      { 2, 1, 0, 7, 120, 40, },
-+      { 1, 1, 0, 7, 120, 40, },
-+      { 0, 1, 0, 7, 124, 46, },
-+      { 2, 1, 0, 7, 124, 40, },
-+      { 1, 1, 0, 7, 124, 40, },
-+      { 0, 1, 0, 7, 128, 46, },
-+      { 2, 1, 0, 7, 128, 40, },
-+      { 1, 1, 0, 7, 128, 40, },
-+      { 0, 1, 0, 7, 132, 46, },
-+      { 2, 1, 0, 7, 132, 40, },
-+      { 1, 1, 0, 7, 132, 40, },
-+      { 0, 1, 0, 7, 136, 46, },
-+      { 2, 1, 0, 7, 136, 40, },
-+      { 1, 1, 0, 7, 136, 40, },
-+      { 0, 1, 0, 7, 140, 46, },
-+      { 2, 1, 0, 7, 140, 40, },
-+      { 1, 1, 0, 7, 140, 40, },
-+      { 0, 1, 0, 7, 149, 46, },
-+      { 2, 1, 0, 7, 149, 40, },
-+      { 1, 1, 0, 7, 149, 63, },
-+      { 0, 1, 0, 7, 153, 46, },
-+      { 2, 1, 0, 7, 153, 40, },
-+      { 1, 1, 0, 7, 153, 63, },
-+      { 0, 1, 0, 7, 157, 46, },
-+      { 2, 1, 0, 7, 157, 40, },
-+      { 1, 1, 0, 7, 157, 63, },
-+      { 0, 1, 0, 7, 161, 46, },
-+      { 2, 1, 0, 7, 161, 40, },
-+      { 1, 1, 0, 7, 161, 63, },
-+      { 0, 1, 0, 7, 165, 46, },
-+      { 2, 1, 0, 7, 165, 40, },
-+      { 1, 1, 0, 7, 165, 63, },
-+      { 0, 1, 1, 2, 38, 46, },
-+      { 2, 1, 1, 2, 38, 40, },
-+      { 1, 1, 1, 2, 38, 40, },
-+      { 0, 1, 1, 2, 46, 46, },
-+      { 2, 1, 1, 2, 46, 40, },
-+      { 1, 1, 1, 2, 46, 40, },
-+      { 0, 1, 1, 2, 54, 46, },
-+      { 2, 1, 1, 2, 54, 40, },
-+      { 1, 1, 1, 2, 54, 40, },
-+      { 0, 1, 1, 2, 62, 46, },
-+      { 2, 1, 1, 2, 62, 40, },
-+      { 1, 1, 1, 2, 62, 40, },
-+      { 0, 1, 1, 2, 102, 46, },
-+      { 2, 1, 1, 2, 102, 40, },
-+      { 1, 1, 1, 2, 102, 40, },
-+      { 0, 1, 1, 2, 110, 46, },
-+      { 2, 1, 1, 2, 110, 40, },
-+      { 1, 1, 1, 2, 110, 40, },
-+      { 0, 1, 1, 2, 118, 46, },
-+      { 2, 1, 1, 2, 118, 40, },
-+      { 1, 1, 1, 2, 118, 40, },
-+      { 0, 1, 1, 2, 126, 46, },
-+      { 2, 1, 1, 2, 126, 40, },
-+      { 1, 1, 1, 2, 126, 40, },
-+      { 0, 1, 1, 2, 134, 46, },
-+      { 2, 1, 1, 2, 134, 40, },
-+      { 1, 1, 1, 2, 134, 40, },
-+      { 0, 1, 1, 2, 151, 46, },
-+      { 2, 1, 1, 2, 151, 40, },
-+      { 1, 1, 1, 2, 151, 63, },
-+      { 0, 1, 1, 2, 159, 46, },
-+      { 2, 1, 1, 2, 159, 40, },
-+      { 1, 1, 1, 2, 159, 63, },
-+      { 0, 1, 1, 3, 38, 46, },
-+      { 2, 1, 1, 3, 38, 40, },
-+      { 1, 1, 1, 3, 38, 40, },
-+      { 0, 1, 1, 3, 46, 46, },
-+      { 2, 1, 1, 3, 46, 40, },
-+      { 1, 1, 1, 3, 46, 40, },
-+      { 0, 1, 1, 3, 54, 46, },
-+      { 2, 1, 1, 3, 54, 40, },
-+      { 1, 1, 1, 3, 54, 40, },
-+      { 0, 1, 1, 3, 62, 46, },
-+      { 2, 1, 1, 3, 62, 40, },
-+      { 1, 1, 1, 3, 62, 40, },
-+      { 0, 1, 1, 3, 102, 46, },
-+      { 2, 1, 1, 3, 102, 40, },
-+      { 1, 1, 1, 3, 102, 40, },
-+      { 0, 1, 1, 3, 110, 46, },
-+      { 2, 1, 1, 3, 110, 40, },
-+      { 1, 1, 1, 3, 110, 40, },
-+      { 0, 1, 1, 3, 118, 46, },
-+      { 2, 1, 1, 3, 118, 40, },
-+      { 1, 1, 1, 3, 118, 40, },
-+      { 0, 1, 1, 3, 126, 46, },
-+      { 2, 1, 1, 3, 126, 40, },
-+      { 1, 1, 1, 3, 126, 40, },
-+      { 0, 1, 1, 3, 134, 46, },
-+      { 2, 1, 1, 3, 134, 40, },
-+      { 1, 1, 1, 3, 134, 40, },
-+      { 0, 1, 1, 3, 151, 46, },
-+      { 2, 1, 1, 3, 151, 40, },
-+      { 1, 1, 1, 3, 151, 63, },
-+      { 0, 1, 1, 3, 159, 46, },
-+      { 2, 1, 1, 3, 159, 40, },
-+      { 1, 1, 1, 3, 159, 63, },
-+      { 0, 1, 1, 6, 38, 46, },
-+      { 2, 1, 1, 6, 38, 40, },
-+      { 1, 1, 1, 6, 38, 40, },
-+      { 0, 1, 1, 6, 46, 46, },
-+      { 2, 1, 1, 6, 46, 40, },
-+      { 1, 1, 1, 6, 46, 40, },
-+      { 0, 1, 1, 6, 54, 46, },
-+      { 2, 1, 1, 6, 54, 40, },
-+      { 1, 1, 1, 6, 54, 40, },
-+      { 0, 1, 1, 6, 62, 46, },
-+      { 2, 1, 1, 6, 62, 40, },
-+      { 1, 1, 1, 6, 62, 40, },
-+      { 0, 1, 1, 6, 102, 46, },
-+      { 2, 1, 1, 6, 102, 40, },
-+      { 1, 1, 1, 6, 102, 40, },
-+      { 0, 1, 1, 6, 110, 46, },
-+      { 2, 1, 1, 6, 110, 40, },
-+      { 1, 1, 1, 6, 110, 40, },
-+      { 0, 1, 1, 6, 118, 46, },
-+      { 2, 1, 1, 6, 118, 40, },
-+      { 1, 1, 1, 6, 118, 40, },
-+      { 0, 1, 1, 6, 126, 46, },
-+      { 2, 1, 1, 6, 126, 40, },
-+      { 1, 1, 1, 6, 126, 40, },
-+      { 0, 1, 1, 6, 134, 46, },
-+      { 2, 1, 1, 6, 134, 40, },
-+      { 1, 1, 1, 6, 134, 40, },
-+      { 0, 1, 1, 6, 151, 46, },
-+      { 2, 1, 1, 6, 151, 40, },
-+      { 1, 1, 1, 6, 151, 63, },
-+      { 0, 1, 1, 6, 159, 46, },
-+      { 2, 1, 1, 6, 159, 40, },
-+      { 1, 1, 1, 6, 159, 63, },
-+      { 0, 1, 1, 7, 38, 46, },
-+      { 2, 1, 1, 7, 38, 40, },
-+      { 1, 1, 1, 7, 38, 40, },
-+      { 0, 1, 1, 7, 46, 46, },
-+      { 2, 1, 1, 7, 46, 40, },
-+      { 1, 1, 1, 7, 46, 40, },
-+      { 0, 1, 1, 7, 54, 46, },
-+      { 2, 1, 1, 7, 54, 40, },
-+      { 1, 1, 1, 7, 54, 40, },
-+      { 0, 1, 1, 7, 62, 46, },
-+      { 2, 1, 1, 7, 62, 40, },
-+      { 1, 1, 1, 7, 62, 40, },
-+      { 0, 1, 1, 7, 102, 46, },
-+      { 2, 1, 1, 7, 102, 40, },
-+      { 1, 1, 1, 7, 102, 40, },
-+      { 0, 1, 1, 7, 110, 46, },
-+      { 2, 1, 1, 7, 110, 40, },
-+      { 1, 1, 1, 7, 110, 40, },
-+      { 0, 1, 1, 7, 118, 46, },
-+      { 2, 1, 1, 7, 118, 40, },
-+      { 1, 1, 1, 7, 118, 40, },
-+      { 0, 1, 1, 7, 126, 46, },
-+      { 2, 1, 1, 7, 126, 40, },
-+      { 1, 1, 1, 7, 126, 40, },
-+      { 0, 1, 1, 7, 134, 46, },
-+      { 2, 1, 1, 7, 134, 40, },
-+      { 1, 1, 1, 7, 134, 40, },
-+      { 0, 1, 1, 7, 151, 46, },
-+      { 2, 1, 1, 7, 151, 40, },
-+      { 1, 1, 1, 7, 151, 63, },
-+      { 0, 1, 1, 7, 159, 46, },
-+      { 2, 1, 1, 7, 159, 40, },
-+      { 1, 1, 1, 7, 159, 63, },
-+      { 0, 1, 2, 4, 42, 46, },
-+      { 2, 1, 2, 4, 42, 40, },
-+      { 1, 1, 2, 4, 42, 40, },
-+      { 0, 1, 2, 4, 58, 46, },
-+      { 2, 1, 2, 4, 58, 40, },
-+      { 1, 1, 2, 4, 58, 40, },
-+      { 0, 1, 2, 4, 106, 46, },
-+      { 2, 1, 2, 4, 106, 40, },
-+      { 1, 1, 2, 4, 106, 40, },
-+      { 0, 1, 2, 4, 122, 46, },
-+      { 2, 1, 2, 4, 122, 40, },
-+      { 1, 1, 2, 4, 122, 40, },
-+      { 0, 1, 2, 4, 155, 46, },
-+      { 2, 1, 2, 4, 155, 40, },
-+      { 1, 1, 2, 4, 155, 63, },
-+      { 0, 1, 2, 5, 42, 46, },
-+      { 2, 1, 2, 5, 42, 40, },
-+      { 1, 1, 2, 5, 42, 40, },
-+      { 0, 1, 2, 5, 58, 46, },
-+      { 2, 1, 2, 5, 58, 40, },
-+      { 1, 1, 2, 5, 58, 40, },
-+      { 0, 1, 2, 5, 106, 46, },
-+      { 2, 1, 2, 5, 106, 40, },
-+      { 1, 1, 2, 5, 106, 40, },
-+      { 0, 1, 2, 5, 122, 46, },
-+      { 2, 1, 2, 5, 122, 40, },
-+      { 1, 1, 2, 5, 122, 40, },
-+      { 0, 1, 2, 5, 155, 46, },
-+      { 2, 1, 2, 5, 155, 40, },
-+      { 1, 1, 2, 5, 155, 63, },
-+      { 0, 1, 2, 8, 42, 46, },
-+      { 2, 1, 2, 8, 42, 40, },
-+      { 1, 1, 2, 8, 42, 40, },
-+      { 0, 1, 2, 8, 58, 46, },
-+      { 2, 1, 2, 8, 58, 40, },
-+      { 1, 1, 2, 8, 58, 40, },
-+      { 0, 1, 2, 8, 106, 46, },
-+      { 2, 1, 2, 8, 106, 40, },
-+      { 1, 1, 2, 8, 106, 40, },
-+      { 0, 1, 2, 8, 122, 46, },
-+      { 2, 1, 2, 8, 122, 40, },
-+      { 1, 1, 2, 8, 122, 40, },
-+      { 0, 1, 2, 8, 155, 46, },
-+      { 2, 1, 2, 8, 155, 40, },
-+      { 1, 1, 2, 8, 155, 63, },
-+      { 0, 1, 2, 9, 42, 46, },
-+      { 2, 1, 2, 9, 42, 40, },
-+      { 1, 1, 2, 9, 42, 40, },
-+      { 0, 1, 2, 9, 58, 46, },
-+      { 2, 1, 2, 9, 58, 40, },
-+      { 1, 1, 2, 9, 58, 40, },
-+      { 0, 1, 2, 9, 106, 46, },
-+      { 2, 1, 2, 9, 106, 40, },
-+      { 1, 1, 2, 9, 106, 40, },
-+      { 0, 1, 2, 9, 122, 46, },
-+      { 2, 1, 2, 9, 122, 40, },
-+      { 1, 1, 2, 9, 122, 40, },
-+      { 0, 1, 2, 9, 155, 46, },
-+      { 2, 1, 2, 9, 155, 40, },
-+      { 1, 1, 2, 9, 155, 63, },
-+};
-+
-+RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type5);
-+
-+static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type7[] = {
-+      { 0, 0, 0, 0, 1, 44, },
-+      { 2, 0, 0, 0, 1, 32, },
-+      { 1, 0, 0, 0, 1, 32, },
-+      { 0, 0, 0, 0, 2, 52, },
-+      { 2, 0, 0, 0, 2, 32, },
-+      { 1, 0, 0, 0, 2, 32, },
-+      { 0, 0, 0, 0, 3, 52, },
-+      { 2, 0, 0, 0, 3, 32, },
-+      { 1, 0, 0, 0, 3, 32, },
-+      { 0, 0, 0, 0, 4, 52, },
-+      { 2, 0, 0, 0, 4, 32, },
-+      { 1, 0, 0, 0, 4, 32, },
-+      { 0, 0, 0, 0, 5, 52, },
-+      { 2, 0, 0, 0, 5, 32, },
-+      { 1, 0, 0, 0, 5, 32, },
-+      { 0, 0, 0, 0, 6, 52, },
-+      { 2, 0, 0, 0, 6, 32, },
-+      { 1, 0, 0, 0, 6, 32, },
-+      { 0, 0, 0, 0, 7, 52, },
-+      { 2, 0, 0, 0, 7, 32, },
-+      { 1, 0, 0, 0, 7, 32, },
-+      { 0, 0, 0, 0, 8, 52, },
-+      { 2, 0, 0, 0, 8, 32, },
-+      { 1, 0, 0, 0, 8, 32, },
-+      { 0, 0, 0, 0, 9, 52, },
-+      { 2, 0, 0, 0, 9, 32, },
-+      { 1, 0, 0, 0, 9, 32, },
-+      { 0, 0, 0, 0, 10, 52, },
-+      { 2, 0, 0, 0, 10, 32, },
-+      { 1, 0, 0, 0, 10, 32, },
-+      { 0, 0, 0, 0, 11, 44, },
-+      { 2, 0, 0, 0, 11, 32, },
-+      { 1, 0, 0, 0, 11, 32, },
-+      { 0, 0, 0, 0, 12, 63, },
-+      { 2, 0, 0, 0, 12, 32, },
-+      { 1, 0, 0, 0, 12, 32, },
-+      { 0, 0, 0, 0, 13, 63, },
-+      { 2, 0, 0, 0, 13, 32, },
-+      { 1, 0, 0, 0, 13, 32, },
-+      { 0, 0, 0, 0, 14, 63, },
-+      { 2, 0, 0, 0, 14, 63, },
-+      { 1, 0, 0, 0, 14, 32, },
-+      { 0, 0, 0, 1, 1, 38, },
-+      { 2, 0, 0, 1, 1, 32, },
-+      { 1, 0, 0, 1, 1, 32, },
-+      { 0, 0, 0, 1, 2, 46, },
-+      { 2, 0, 0, 1, 2, 32, },
-+      { 1, 0, 0, 1, 2, 32, },
-+      { 0, 0, 0, 1, 3, 46, },
-+      { 2, 0, 0, 1, 3, 32, },
-+      { 1, 0, 0, 1, 3, 32, },
-+      { 0, 0, 0, 1, 4, 46, },
-+      { 2, 0, 0, 1, 4, 32, },
-+      { 1, 0, 0, 1, 4, 32, },
-+      { 0, 0, 0, 1, 5, 46, },
-+      { 2, 0, 0, 1, 5, 32, },
-+      { 1, 0, 0, 1, 5, 32, },
-+      { 0, 0, 0, 1, 6, 46, },
-+      { 2, 0, 0, 1, 6, 32, },
-+      { 1, 0, 0, 1, 6, 32, },
-+      { 0, 0, 0, 1, 7, 46, },
-+      { 2, 0, 0, 1, 7, 32, },
-+      { 1, 0, 0, 1, 7, 32, },
-+      { 0, 0, 0, 1, 8, 46, },
-+      { 2, 0, 0, 1, 8, 32, },
-+      { 1, 0, 0, 1, 8, 32, },
-+      { 0, 0, 0, 1, 9, 46, },
-+      { 2, 0, 0, 1, 9, 32, },
-+      { 1, 0, 0, 1, 9, 32, },
-+      { 0, 0, 0, 1, 10, 46, },
-+      { 2, 0, 0, 1, 10, 32, },
-+      { 1, 0, 0, 1, 10, 32, },
-+      { 0, 0, 0, 1, 11, 38, },
-+      { 2, 0, 0, 1, 11, 32, },
-+      { 1, 0, 0, 1, 11, 32, },
-+      { 0, 0, 0, 1, 12, 63, },
-+      { 2, 0, 0, 1, 12, 32, },
-+      { 1, 0, 0, 1, 12, 32, },
-+      { 0, 0, 0, 1, 13, 63, },
-+      { 2, 0, 0, 1, 13, 32, },
-+      { 1, 0, 0, 1, 13, 32, },
-+      { 0, 0, 0, 1, 14, 63, },
-+      { 2, 0, 0, 1, 14, 63, },
-+      { 1, 0, 0, 1, 14, 63, },
-+      { 0, 0, 0, 2, 1, 34, },
-+      { 2, 0, 0, 2, 1, 32, },
-+      { 1, 0, 0, 2, 1, 32, },
-+      { 0, 0, 0, 2, 2, 46, },
-+      { 2, 0, 0, 2, 2, 32, },
-+      { 1, 0, 0, 2, 2, 32, },
-+      { 0, 0, 0, 2, 3, 46, },
-+      { 2, 0, 0, 2, 3, 32, },
-+      { 1, 0, 0, 2, 3, 32, },
-+      { 0, 0, 0, 2, 4, 46, },
-+      { 2, 0, 0, 2, 4, 32, },
-+      { 1, 0, 0, 2, 4, 32, },
-+      { 0, 0, 0, 2, 5, 46, },
-+      { 2, 0, 0, 2, 5, 32, },
-+      { 1, 0, 0, 2, 5, 32, },
-+      { 0, 0, 0, 2, 6, 46, },
-+      { 2, 0, 0, 2, 6, 32, },
-+      { 1, 0, 0, 2, 6, 32, },
-+      { 0, 0, 0, 2, 7, 46, },
-+      { 2, 0, 0, 2, 7, 32, },
-+      { 1, 0, 0, 2, 7, 32, },
-+      { 0, 0, 0, 2, 8, 46, },
-+      { 2, 0, 0, 2, 8, 32, },
-+      { 1, 0, 0, 2, 8, 32, },
-+      { 0, 0, 0, 2, 9, 46, },
-+      { 2, 0, 0, 2, 9, 32, },
-+      { 1, 0, 0, 2, 9, 32, },
-+      { 0, 0, 0, 2, 10, 46, },
-+      { 2, 0, 0, 2, 10, 32, },
-+      { 1, 0, 0, 2, 10, 32, },
-+      { 0, 0, 0, 2, 11, 34, },
-+      { 2, 0, 0, 2, 11, 32, },
-+      { 1, 0, 0, 2, 11, 32, },
-+      { 0, 0, 0, 2, 12, 63, },
-+      { 2, 0, 0, 2, 12, 32, },
-+      { 1, 0, 0, 2, 12, 32, },
-+      { 0, 0, 0, 2, 13, 63, },
-+      { 2, 0, 0, 2, 13, 32, },
-+      { 1, 0, 0, 2, 13, 32, },
-+      { 0, 0, 0, 2, 14, 63, },
-+      { 2, 0, 0, 2, 14, 63, },
-+      { 1, 0, 0, 2, 14, 63, },
-+      { 0, 0, 0, 3, 1, 32, },
-+      { 2, 0, 0, 3, 1, 30, },
-+      { 1, 0, 0, 3, 1, 30, },
-+      { 0, 0, 0, 3, 2, 44, },
-+      { 2, 0, 0, 3, 2, 30, },
-+      { 1, 0, 0, 3, 2, 30, },
-+      { 0, 0, 0, 3, 3, 44, },
-+      { 2, 0, 0, 3, 3, 30, },
-+      { 1, 0, 0, 3, 3, 30, },
-+      { 0, 0, 0, 3, 4, 44, },
-+      { 2, 0, 0, 3, 4, 30, },
-+      { 1, 0, 0, 3, 4, 30, },
-+      { 0, 0, 0, 3, 5, 44, },
-+      { 2, 0, 0, 3, 5, 30, },
-+      { 1, 0, 0, 3, 5, 30, },
-+      { 0, 0, 0, 3, 6, 44, },
-+      { 2, 0, 0, 3, 6, 30, },
-+      { 1, 0, 0, 3, 6, 30, },
-+      { 0, 0, 0, 3, 7, 44, },
-+      { 2, 0, 0, 3, 7, 30, },
-+      { 1, 0, 0, 3, 7, 30, },
-+      { 0, 0, 0, 3, 8, 44, },
-+      { 2, 0, 0, 3, 8, 30, },
-+      { 1, 0, 0, 3, 8, 30, },
-+      { 0, 0, 0, 3, 9, 44, },
-+      { 2, 0, 0, 3, 9, 30, },
-+      { 1, 0, 0, 3, 9, 30, },
-+      { 0, 0, 0, 3, 10, 44, },
-+      { 2, 0, 0, 3, 10, 30, },
-+      { 1, 0, 0, 3, 10, 30, },
-+      { 0, 0, 0, 3, 11, 32, },
-+      { 2, 0, 0, 3, 11, 30, },
-+      { 1, 0, 0, 3, 11, 30, },
-+      { 0, 0, 0, 3, 12, 63, },
-+      { 2, 0, 0, 3, 12, 30, },
-+      { 1, 0, 0, 3, 12, 30, },
-+      { 0, 0, 0, 3, 13, 63, },
-+      { 2, 0, 0, 3, 13, 30, },
-+      { 1, 0, 0, 3, 13, 30, },
-+      { 0, 0, 0, 3, 14, 63, },
-+      { 2, 0, 0, 3, 14, 63, },
-+      { 1, 0, 0, 3, 14, 63, },
-+      { 0, 0, 0, 6, 1, 30, },
-+      { 2, 0, 0, 6, 1, 28, },
-+      { 1, 0, 0, 6, 1, 28, },
-+      { 0, 0, 0, 6, 2, 42, },
-+      { 2, 0, 0, 6, 2, 28, },
-+      { 1, 0, 0, 6, 2, 28, },
-+      { 0, 0, 0, 6, 3, 42, },
-+      { 2, 0, 0, 6, 3, 28, },
-+      { 1, 0, 0, 6, 3, 28, },
-+      { 0, 0, 0, 6, 4, 42, },
-+      { 2, 0, 0, 6, 4, 28, },
-+      { 1, 0, 0, 6, 4, 28, },
-+      { 0, 0, 0, 6, 5, 42, },
-+      { 2, 0, 0, 6, 5, 28, },
-+      { 1, 0, 0, 6, 5, 28, },
-+      { 0, 0, 0, 6, 6, 42, },
-+      { 2, 0, 0, 6, 6, 28, },
-+      { 1, 0, 0, 6, 6, 28, },
-+      { 0, 0, 0, 6, 7, 42, },
-+      { 2, 0, 0, 6, 7, 28, },
-+      { 1, 0, 0, 6, 7, 28, },
-+      { 0, 0, 0, 6, 8, 42, },
-+      { 2, 0, 0, 6, 8, 28, },
-+      { 1, 0, 0, 6, 8, 28, },
-+      { 0, 0, 0, 6, 9, 42, },
-+      { 2, 0, 0, 6, 9, 28, },
-+      { 1, 0, 0, 6, 9, 28, },
-+      { 0, 0, 0, 6, 10, 42, },
-+      { 2, 0, 0, 6, 10, 28, },
-+      { 1, 0, 0, 6, 10, 28, },
-+      { 0, 0, 0, 6, 11, 30, },
-+      { 2, 0, 0, 6, 11, 28, },
-+      { 1, 0, 0, 6, 11, 28, },
-+      { 0, 0, 0, 6, 12, 63, },
-+      { 2, 0, 0, 6, 12, 28, },
-+      { 1, 0, 0, 6, 12, 28, },
-+      { 0, 0, 0, 6, 13, 63, },
-+      { 2, 0, 0, 6, 13, 28, },
-+      { 1, 0, 0, 6, 13, 28, },
-+      { 0, 0, 0, 6, 14, 63, },
-+      { 2, 0, 0, 6, 14, 63, },
-+      { 1, 0, 0, 6, 14, 63, },
-+      { 0, 0, 0, 7, 1, 28, },
-+      { 2, 0, 0, 7, 1, 26, },
-+      { 1, 0, 0, 7, 1, 26, },
-+      { 0, 0, 0, 7, 2, 40, },
-+      { 2, 0, 0, 7, 2, 26, },
-+      { 1, 0, 0, 7, 2, 26, },
-+      { 0, 0, 0, 7, 3, 40, },
-+      { 2, 0, 0, 7, 3, 26, },
-+      { 1, 0, 0, 7, 3, 26, },
-+      { 0, 0, 0, 7, 4, 40, },
-+      { 2, 0, 0, 7, 4, 26, },
-+      { 1, 0, 0, 7, 4, 26, },
-+      { 0, 0, 0, 7, 5, 40, },
-+      { 2, 0, 0, 7, 5, 26, },
-+      { 1, 0, 0, 7, 5, 26, },
-+      { 0, 0, 0, 7, 6, 40, },
-+      { 2, 0, 0, 7, 6, 26, },
-+      { 1, 0, 0, 7, 6, 26, },
-+      { 0, 0, 0, 7, 7, 40, },
-+      { 2, 0, 0, 7, 7, 26, },
-+      { 1, 0, 0, 7, 7, 26, },
-+      { 0, 0, 0, 7, 8, 40, },
-+      { 2, 0, 0, 7, 8, 26, },
-+      { 1, 0, 0, 7, 8, 26, },
-+      { 0, 0, 0, 7, 9, 40, },
-+      { 2, 0, 0, 7, 9, 26, },
-+      { 1, 0, 0, 7, 9, 26, },
-+      { 0, 0, 0, 7, 10, 40, },
-+      { 2, 0, 0, 7, 10, 26, },
-+      { 1, 0, 0, 7, 10, 26, },
-+      { 0, 0, 0, 7, 11, 28, },
-+      { 2, 0, 0, 7, 11, 26, },
-+      { 1, 0, 0, 7, 11, 26, },
-+      { 0, 0, 0, 7, 12, 63, },
-+      { 2, 0, 0, 7, 12, 26, },
-+      { 1, 0, 0, 7, 12, 26, },
-+      { 0, 0, 0, 7, 13, 63, },
-+      { 2, 0, 0, 7, 13, 26, },
-+      { 1, 0, 0, 7, 13, 26, },
-+      { 0, 0, 0, 7, 14, 63, },
-+      { 2, 0, 0, 7, 14, 63, },
-+      { 1, 0, 0, 7, 14, 63, },
-+      { 0, 0, 1, 2, 1, 63, },
-+      { 2, 0, 1, 2, 1, 63, },
-+      { 1, 0, 1, 2, 1, 63, },
-+      { 0, 0, 1, 2, 2, 63, },
-+      { 2, 0, 1, 2, 2, 63, },
-+      { 1, 0, 1, 2, 2, 63, },
-+      { 0, 0, 1, 2, 3, 36, },
-+      { 2, 0, 1, 2, 3, 32, },
-+      { 1, 0, 1, 2, 3, 32, },
-+      { 0, 0, 1, 2, 4, 40, },
-+      { 2, 0, 1, 2, 4, 32, },
-+      { 1, 0, 1, 2, 4, 32, },
-+      { 0, 0, 1, 2, 5, 40, },
-+      { 2, 0, 1, 2, 5, 32, },
-+      { 1, 0, 1, 2, 5, 32, },
-+      { 0, 0, 1, 2, 6, 40, },
-+      { 2, 0, 1, 2, 6, 32, },
-+      { 1, 0, 1, 2, 6, 32, },
-+      { 0, 0, 1, 2, 7, 40, },
-+      { 2, 0, 1, 2, 7, 32, },
-+      { 1, 0, 1, 2, 7, 32, },
-+      { 0, 0, 1, 2, 8, 40, },
-+      { 2, 0, 1, 2, 8, 32, },
-+      { 1, 0, 1, 2, 8, 32, },
-+      { 0, 0, 1, 2, 9, 40, },
-+      { 2, 0, 1, 2, 9, 32, },
-+      { 1, 0, 1, 2, 9, 32, },
-+      { 0, 0, 1, 2, 10, 40, },
-+      { 2, 0, 1, 2, 10, 32, },
-+      { 1, 0, 1, 2, 10, 32, },
-+      { 0, 0, 1, 2, 11, 34, },
-+      { 2, 0, 1, 2, 11, 32, },
-+      { 1, 0, 1, 2, 11, 32, },
-+      { 0, 0, 1, 2, 12, 63, },
-+      { 2, 0, 1, 2, 12, 32, },
-+      { 1, 0, 1, 2, 12, 32, },
-+      { 0, 0, 1, 2, 13, 63, },
-+      { 2, 0, 1, 2, 13, 32, },
-+      { 1, 0, 1, 2, 13, 32, },
-+      { 0, 0, 1, 2, 14, 63, },
-+      { 2, 0, 1, 2, 14, 63, },
-+      { 1, 0, 1, 2, 14, 63, },
-+      { 0, 0, 1, 3, 1, 63, },
-+      { 2, 0, 1, 3, 1, 63, },
-+      { 1, 0, 1, 3, 1, 63, },
-+      { 0, 0, 1, 3, 2, 63, },
-+      { 2, 0, 1, 3, 2, 63, },
-+      { 1, 0, 1, 3, 2, 63, },
-+      { 0, 0, 1, 3, 3, 34, },
-+      { 2, 0, 1, 3, 3, 30, },
-+      { 1, 0, 1, 3, 3, 30, },
-+      { 0, 0, 1, 3, 4, 38, },
-+      { 2, 0, 1, 3, 4, 30, },
-+      { 1, 0, 1, 3, 4, 30, },
-+      { 0, 0, 1, 3, 5, 38, },
-+      { 2, 0, 1, 3, 5, 30, },
-+      { 1, 0, 1, 3, 5, 30, },
-+      { 0, 0, 1, 3, 6, 38, },
-+      { 2, 0, 1, 3, 6, 30, },
-+      { 1, 0, 1, 3, 6, 30, },
-+      { 0, 0, 1, 3, 7, 38, },
-+      { 2, 0, 1, 3, 7, 30, },
-+      { 1, 0, 1, 3, 7, 30, },
-+      { 0, 0, 1, 3, 8, 38, },
-+      { 2, 0, 1, 3, 8, 30, },
-+      { 1, 0, 1, 3, 8, 30, },
-+      { 0, 0, 1, 3, 9, 38, },
-+      { 2, 0, 1, 3, 9, 30, },
-+      { 1, 0, 1, 3, 9, 30, },
-+      { 0, 0, 1, 3, 10, 38, },
-+      { 2, 0, 1, 3, 10, 30, },
-+      { 1, 0, 1, 3, 10, 30, },
-+      { 0, 0, 1, 3, 11, 32, },
-+      { 2, 0, 1, 3, 11, 30, },
-+      { 1, 0, 1, 3, 11, 30, },
-+      { 0, 0, 1, 3, 12, 63, },
-+      { 2, 0, 1, 3, 12, 30, },
-+      { 1, 0, 1, 3, 12, 30, },
-+      { 0, 0, 1, 3, 13, 63, },
-+      { 2, 0, 1, 3, 13, 30, },
-+      { 1, 0, 1, 3, 13, 30, },
-+      { 0, 0, 1, 3, 14, 63, },
-+      { 2, 0, 1, 3, 14, 63, },
-+      { 1, 0, 1, 3, 14, 63, },
-+      { 0, 0, 1, 6, 1, 63, },
-+      { 2, 0, 1, 6, 1, 63, },
-+      { 1, 0, 1, 6, 1, 63, },
-+      { 0, 0, 1, 6, 2, 63, },
-+      { 2, 0, 1, 6, 2, 63, },
-+      { 1, 0, 1, 6, 2, 63, },
-+      { 0, 0, 1, 6, 3, 32, },
-+      { 2, 0, 1, 6, 3, 28, },
-+      { 1, 0, 1, 6, 3, 28, },
-+      { 0, 0, 1, 6, 4, 36, },
-+      { 2, 0, 1, 6, 4, 28, },
-+      { 1, 0, 1, 6, 4, 28, },
-+      { 0, 0, 1, 6, 5, 36, },
-+      { 2, 0, 1, 6, 5, 28, },
-+      { 1, 0, 1, 6, 5, 28, },
-+      { 0, 0, 1, 6, 6, 36, },
-+      { 2, 0, 1, 6, 6, 28, },
-+      { 1, 0, 1, 6, 6, 28, },
-+      { 0, 0, 1, 6, 7, 36, },
-+      { 2, 0, 1, 6, 7, 28, },
-+      { 1, 0, 1, 6, 7, 28, },
-+      { 0, 0, 1, 6, 8, 36, },
-+      { 2, 0, 1, 6, 8, 28, },
-+      { 1, 0, 1, 6, 8, 28, },
-+      { 0, 0, 1, 6, 9, 36, },
-+      { 2, 0, 1, 6, 9, 28, },
-+      { 1, 0, 1, 6, 9, 28, },
-+      { 0, 0, 1, 6, 10, 36, },
-+      { 2, 0, 1, 6, 10, 28, },
-+      { 1, 0, 1, 6, 10, 28, },
-+      { 0, 0, 1, 6, 11, 30, },
-+      { 2, 0, 1, 6, 11, 28, },
-+      { 1, 0, 1, 6, 11, 28, },
-+      { 0, 0, 1, 6, 12, 63, },
-+      { 2, 0, 1, 6, 12, 28, },
-+      { 1, 0, 1, 6, 12, 28, },
-+      { 0, 0, 1, 6, 13, 63, },
-+      { 2, 0, 1, 6, 13, 28, },
-+      { 1, 0, 1, 6, 13, 28, },
-+      { 0, 0, 1, 6, 14, 63, },
-+      { 2, 0, 1, 6, 14, 63, },
-+      { 1, 0, 1, 6, 14, 63, },
-+      { 0, 0, 1, 7, 1, 63, },
-+      { 2, 0, 1, 7, 1, 63, },
-+      { 1, 0, 1, 7, 1, 63, },
-+      { 0, 0, 1, 7, 2, 63, },
-+      { 2, 0, 1, 7, 2, 63, },
-+      { 1, 0, 1, 7, 2, 63, },
-+      { 0, 0, 1, 7, 3, 32, },
-+      { 2, 0, 1, 7, 3, 26, },
-+      { 1, 0, 1, 7, 3, 26, },
-+      { 0, 0, 1, 7, 4, 36, },
-+      { 2, 0, 1, 7, 4, 26, },
-+      { 1, 0, 1, 7, 4, 26, },
-+      { 0, 0, 1, 7, 5, 36, },
-+      { 2, 0, 1, 7, 5, 26, },
-+      { 1, 0, 1, 7, 5, 26, },
-+      { 0, 0, 1, 7, 6, 36, },
-+      { 2, 0, 1, 7, 6, 26, },
-+      { 1, 0, 1, 7, 6, 26, },
-+      { 0, 0, 1, 7, 7, 36, },
-+      { 2, 0, 1, 7, 7, 26, },
-+      { 1, 0, 1, 7, 7, 26, },
-+      { 0, 0, 1, 7, 8, 36, },
-+      { 2, 0, 1, 7, 8, 26, },
-+      { 1, 0, 1, 7, 8, 26, },
-+      { 0, 0, 1, 7, 9, 36, },
-+      { 2, 0, 1, 7, 9, 26, },
-+      { 1, 0, 1, 7, 9, 26, },
-+      { 0, 0, 1, 7, 10, 36, },
-+      { 2, 0, 1, 7, 10, 26, },
-+      { 1, 0, 1, 7, 10, 26, },
-+      { 0, 0, 1, 7, 11, 30, },
-+      { 2, 0, 1, 7, 11, 26, },
-+      { 1, 0, 1, 7, 11, 26, },
-+      { 0, 0, 1, 7, 12, 63, },
-+      { 2, 0, 1, 7, 12, 26, },
-+      { 1, 0, 1, 7, 12, 26, },
-+      { 0, 0, 1, 7, 13, 63, },
-+      { 2, 0, 1, 7, 13, 26, },
-+      { 1, 0, 1, 7, 13, 26, },
-+      { 0, 0, 1, 7, 14, 63, },
-+      { 2, 0, 1, 7, 14, 63, },
-+      { 1, 0, 1, 7, 14, 63, },
-+      { 0, 1, 0, 1, 36, 38, },
-+      { 2, 1, 0, 1, 36, 32, },
-+      { 1, 1, 0, 1, 36, 32, },
-+      { 0, 1, 0, 1, 40, 38, },
-+      { 2, 1, 0, 1, 40, 32, },
-+      { 1, 1, 0, 1, 40, 32, },
-+      { 0, 1, 0, 1, 44, 38, },
-+      { 2, 1, 0, 1, 44, 32, },
-+      { 1, 1, 0, 1, 44, 32, },
-+      { 0, 1, 0, 1, 48, 38, },
-+      { 2, 1, 0, 1, 48, 32, },
-+      { 1, 1, 0, 1, 48, 32, },
-+      { 0, 1, 0, 1, 52, 38, },
-+      { 2, 1, 0, 1, 52, 32, },
-+      { 1, 1, 0, 1, 52, 32, },
-+      { 0, 1, 0, 1, 56, 38, },
-+      { 2, 1, 0, 1, 56, 32, },
-+      { 1, 1, 0, 1, 56, 32, },
-+      { 0, 1, 0, 1, 60, 38, },
-+      { 2, 1, 0, 1, 60, 32, },
-+      { 1, 1, 0, 1, 60, 32, },
-+      { 0, 1, 0, 1, 64, 38, },
-+      { 2, 1, 0, 1, 64, 32, },
-+      { 1, 1, 0, 1, 64, 32, },
-+      { 0, 1, 0, 1, 100, 36, },
-+      { 2, 1, 0, 1, 100, 32, },
-+      { 1, 1, 0, 1, 100, 32, },
-+      { 0, 1, 0, 1, 104, 36, },
-+      { 2, 1, 0, 1, 104, 32, },
-+      { 1, 1, 0, 1, 104, 32, },
-+      { 0, 1, 0, 1, 108, 36, },
-+      { 2, 1, 0, 1, 108, 32, },
-+      { 1, 1, 0, 1, 108, 32, },
-+      { 0, 1, 0, 1, 112, 36, },
-+      { 2, 1, 0, 1, 112, 32, },
-+      { 1, 1, 0, 1, 112, 32, },
-+      { 0, 1, 0, 1, 116, 36, },
-+      { 2, 1, 0, 1, 116, 32, },
-+      { 1, 1, 0, 1, 116, 32, },
-+      { 0, 1, 0, 1, 120, 36, },
-+      { 2, 1, 0, 1, 120, 32, },
-+      { 1, 1, 0, 1, 120, 32, },
-+      { 0, 1, 0, 1, 124, 36, },
-+      { 2, 1, 0, 1, 124, 32, },
-+      { 1, 1, 0, 1, 124, 32, },
-+      { 0, 1, 0, 1, 128, 36, },
-+      { 2, 1, 0, 1, 128, 32, },
-+      { 1, 1, 0, 1, 128, 32, },
-+      { 0, 1, 0, 1, 132, 36, },
-+      { 2, 1, 0, 1, 132, 32, },
-+      { 1, 1, 0, 1, 132, 32, },
-+      { 0, 1, 0, 1, 136, 36, },
-+      { 2, 1, 0, 1, 136, 32, },
-+      { 1, 1, 0, 1, 136, 32, },
-+      { 0, 1, 0, 1, 140, 36, },
-+      { 2, 1, 0, 1, 140, 32, },
-+      { 1, 1, 0, 1, 140, 32, },
-+      { 0, 1, 0, 1, 149, 36, },
-+      { 2, 1, 0, 1, 149, 32, },
-+      { 1, 1, 0, 1, 149, 63, },
-+      { 0, 1, 0, 1, 153, 36, },
-+      { 2, 1, 0, 1, 153, 32, },
-+      { 1, 1, 0, 1, 153, 63, },
-+      { 0, 1, 0, 1, 157, 36, },
-+      { 2, 1, 0, 1, 157, 32, },
-+      { 1, 1, 0, 1, 157, 63, },
-+      { 0, 1, 0, 1, 161, 36, },
-+      { 2, 1, 0, 1, 161, 32, },
-+      { 1, 1, 0, 1, 161, 63, },
-+      { 0, 1, 0, 1, 165, 36, },
-+      { 2, 1, 0, 1, 165, 32, },
-+      { 1, 1, 0, 1, 165, 63, },
-+      { 0, 1, 0, 2, 36, 36, },
-+      { 2, 1, 0, 2, 36, 32, },
-+      { 1, 1, 0, 2, 36, 32, },
-+      { 0, 1, 0, 2, 40, 36, },
-+      { 2, 1, 0, 2, 40, 32, },
-+      { 1, 1, 0, 2, 40, 32, },
-+      { 0, 1, 0, 2, 44, 36, },
-+      { 2, 1, 0, 2, 44, 32, },
-+      { 1, 1, 0, 2, 44, 32, },
-+      { 0, 1, 0, 2, 48, 36, },
-+      { 2, 1, 0, 2, 48, 32, },
-+      { 1, 1, 0, 2, 48, 32, },
-+      { 0, 1, 0, 2, 52, 36, },
-+      { 2, 1, 0, 2, 52, 32, },
-+      { 1, 1, 0, 2, 52, 32, },
-+      { 0, 1, 0, 2, 56, 36, },
-+      { 2, 1, 0, 2, 56, 32, },
-+      { 1, 1, 0, 2, 56, 32, },
-+      { 0, 1, 0, 2, 60, 36, },
-+      { 2, 1, 0, 2, 60, 32, },
-+      { 1, 1, 0, 2, 60, 32, },
-+      { 0, 1, 0, 2, 64, 36, },
-+      { 2, 1, 0, 2, 64, 32, },
-+      { 1, 1, 0, 2, 64, 32, },
-+      { 0, 1, 0, 2, 100, 36, },
-+      { 2, 1, 0, 2, 100, 32, },
-+      { 1, 1, 0, 2, 100, 32, },
-+      { 0, 1, 0, 2, 104, 36, },
-+      { 2, 1, 0, 2, 104, 32, },
-+      { 1, 1, 0, 2, 104, 32, },
-+      { 0, 1, 0, 2, 108, 36, },
-+      { 2, 1, 0, 2, 108, 32, },
-+      { 1, 1, 0, 2, 108, 32, },
-+      { 0, 1, 0, 2, 112, 36, },
-+      { 2, 1, 0, 2, 112, 32, },
-+      { 1, 1, 0, 2, 112, 32, },
-+      { 0, 1, 0, 2, 116, 36, },
-+      { 2, 1, 0, 2, 116, 32, },
-+      { 1, 1, 0, 2, 116, 32, },
-+      { 0, 1, 0, 2, 120, 36, },
-+      { 2, 1, 0, 2, 120, 32, },
-+      { 1, 1, 0, 2, 120, 32, },
-+      { 0, 1, 0, 2, 124, 36, },
-+      { 2, 1, 0, 2, 124, 32, },
-+      { 1, 1, 0, 2, 124, 32, },
-+      { 0, 1, 0, 2, 128, 36, },
-+      { 2, 1, 0, 2, 128, 32, },
-+      { 1, 1, 0, 2, 128, 32, },
-+      { 0, 1, 0, 2, 132, 36, },
-+      { 2, 1, 0, 2, 132, 32, },
-+      { 1, 1, 0, 2, 132, 32, },
-+      { 0, 1, 0, 2, 136, 36, },
-+      { 2, 1, 0, 2, 136, 32, },
-+      { 1, 1, 0, 2, 136, 32, },
-+      { 0, 1, 0, 2, 140, 34, },
-+      { 2, 1, 0, 2, 140, 32, },
-+      { 1, 1, 0, 2, 140, 32, },
-+      { 0, 1, 0, 2, 149, 32, },
-+      { 2, 1, 0, 2, 149, 32, },
-+      { 1, 1, 0, 2, 149, 63, },
-+      { 0, 1, 0, 2, 153, 38, },
-+      { 2, 1, 0, 2, 153, 32, },
-+      { 1, 1, 0, 2, 153, 63, },
-+      { 0, 1, 0, 2, 157, 38, },
-+      { 2, 1, 0, 2, 157, 32, },
-+      { 1, 1, 0, 2, 157, 63, },
-+      { 0, 1, 0, 2, 161, 38, },
-+      { 2, 1, 0, 2, 161, 32, },
-+      { 1, 1, 0, 2, 161, 63, },
-+      { 0, 1, 0, 2, 165, 38, },
-+      { 2, 1, 0, 2, 165, 32, },
-+      { 1, 1, 0, 2, 165, 63, },
-+      { 0, 1, 0, 3, 36, 34, },
-+      { 2, 1, 0, 3, 36, 30, },
-+      { 1, 1, 0, 3, 36, 30, },
-+      { 0, 1, 0, 3, 40, 34, },
-+      { 2, 1, 0, 3, 40, 30, },
-+      { 1, 1, 0, 3, 40, 30, },
-+      { 0, 1, 0, 3, 44, 34, },
-+      { 2, 1, 0, 3, 44, 30, },
-+      { 1, 1, 0, 3, 44, 30, },
-+      { 0, 1, 0, 3, 48, 34, },
-+      { 2, 1, 0, 3, 48, 30, },
-+      { 1, 1, 0, 3, 48, 30, },
-+      { 0, 1, 0, 3, 52, 34, },
-+      { 2, 1, 0, 3, 52, 30, },
-+      { 1, 1, 0, 3, 52, 30, },
-+      { 0, 1, 0, 3, 56, 34, },
-+      { 2, 1, 0, 3, 56, 30, },
-+      { 1, 1, 0, 3, 56, 30, },
-+      { 0, 1, 0, 3, 60, 34, },
-+      { 2, 1, 0, 3, 60, 30, },
-+      { 1, 1, 0, 3, 60, 30, },
-+      { 0, 1, 0, 3, 64, 34, },
-+      { 2, 1, 0, 3, 64, 30, },
-+      { 1, 1, 0, 3, 64, 30, },
-+      { 0, 1, 0, 3, 100, 34, },
-+      { 2, 1, 0, 3, 100, 30, },
-+      { 1, 1, 0, 3, 100, 30, },
-+      { 0, 1, 0, 3, 104, 34, },
-+      { 2, 1, 0, 3, 104, 30, },
-+      { 1, 1, 0, 3, 104, 30, },
-+      { 0, 1, 0, 3, 108, 34, },
-+      { 2, 1, 0, 3, 108, 30, },
-+      { 1, 1, 0, 3, 108, 30, },
-+      { 0, 1, 0, 3, 112, 34, },
-+      { 2, 1, 0, 3, 112, 30, },
-+      { 1, 1, 0, 3, 112, 30, },
-+      { 0, 1, 0, 3, 116, 34, },
-+      { 2, 1, 0, 3, 116, 30, },
-+      { 1, 1, 0, 3, 116, 30, },
-+      { 0, 1, 0, 3, 120, 34, },
-+      { 2, 1, 0, 3, 120, 30, },
-+      { 1, 1, 0, 3, 120, 30, },
-+      { 0, 1, 0, 3, 124, 34, },
-+      { 2, 1, 0, 3, 124, 30, },
-+      { 1, 1, 0, 3, 124, 30, },
-+      { 0, 1, 0, 3, 128, 34, },
-+      { 2, 1, 0, 3, 128, 30, },
-+      { 1, 1, 0, 3, 128, 30, },
-+      { 0, 1, 0, 3, 132, 34, },
-+      { 2, 1, 0, 3, 132, 30, },
-+      { 1, 1, 0, 3, 132, 30, },
-+      { 0, 1, 0, 3, 136, 34, },
-+      { 2, 1, 0, 3, 136, 30, },
-+      { 1, 1, 0, 3, 136, 30, },
-+      { 0, 1, 0, 3, 140, 32, },
-+      { 2, 1, 0, 3, 140, 30, },
-+      { 1, 1, 0, 3, 140, 30, },
-+      { 0, 1, 0, 3, 149, 30, },
-+      { 2, 1, 0, 3, 149, 30, },
-+      { 1, 1, 0, 3, 149, 63, },
-+      { 0, 1, 0, 3, 153, 36, },
-+      { 2, 1, 0, 3, 153, 30, },
-+      { 1, 1, 0, 3, 153, 63, },
-+      { 0, 1, 0, 3, 157, 36, },
-+      { 2, 1, 0, 3, 157, 30, },
-+      { 1, 1, 0, 3, 157, 63, },
-+      { 0, 1, 0, 3, 161, 36, },
-+      { 2, 1, 0, 3, 161, 30, },
-+      { 1, 1, 0, 3, 161, 63, },
-+      { 0, 1, 0, 3, 165, 36, },
-+      { 2, 1, 0, 3, 165, 30, },
-+      { 1, 1, 0, 3, 165, 63, },
-+      { 0, 1, 0, 6, 36, 32, },
-+      { 2, 1, 0, 6, 36, 28, },
-+      { 1, 1, 0, 6, 36, 28, },
-+      { 0, 1, 0, 6, 40, 32, },
-+      { 2, 1, 0, 6, 40, 28, },
-+      { 1, 1, 0, 6, 40, 28, },
-+      { 0, 1, 0, 6, 44, 32, },
-+      { 2, 1, 0, 6, 44, 28, },
-+      { 1, 1, 0, 6, 44, 28, },
-+      { 0, 1, 0, 6, 48, 32, },
-+      { 2, 1, 0, 6, 48, 28, },
-+      { 1, 1, 0, 6, 48, 28, },
-+      { 0, 1, 0, 6, 52, 32, },
-+      { 2, 1, 0, 6, 52, 28, },
-+      { 1, 1, 0, 6, 52, 28, },
-+      { 0, 1, 0, 6, 56, 32, },
-+      { 2, 1, 0, 6, 56, 28, },
-+      { 1, 1, 0, 6, 56, 28, },
-+      { 0, 1, 0, 6, 60, 32, },
-+      { 2, 1, 0, 6, 60, 28, },
-+      { 1, 1, 0, 6, 60, 28, },
-+      { 0, 1, 0, 6, 64, 32, },
-+      { 2, 1, 0, 6, 64, 28, },
-+      { 1, 1, 0, 6, 64, 28, },
-+      { 0, 1, 0, 6, 100, 32, },
-+      { 2, 1, 0, 6, 100, 28, },
-+      { 1, 1, 0, 6, 100, 28, },
-+      { 0, 1, 0, 6, 104, 32, },
-+      { 2, 1, 0, 6, 104, 28, },
-+      { 1, 1, 0, 6, 104, 28, },
-+      { 0, 1, 0, 6, 108, 32, },
-+      { 2, 1, 0, 6, 108, 28, },
-+      { 1, 1, 0, 6, 108, 28, },
-+      { 0, 1, 0, 6, 112, 32, },
-+      { 2, 1, 0, 6, 112, 28, },
-+      { 1, 1, 0, 6, 112, 28, },
-+      { 0, 1, 0, 6, 116, 32, },
-+      { 2, 1, 0, 6, 116, 28, },
-+      { 1, 1, 0, 6, 116, 28, },
-+      { 0, 1, 0, 6, 120, 32, },
-+      { 2, 1, 0, 6, 120, 28, },
-+      { 1, 1, 0, 6, 120, 28, },
-+      { 0, 1, 0, 6, 124, 32, },
-+      { 2, 1, 0, 6, 124, 28, },
-+      { 1, 1, 0, 6, 124, 28, },
-+      { 0, 1, 0, 6, 128, 32, },
-+      { 2, 1, 0, 6, 128, 28, },
-+      { 1, 1, 0, 6, 128, 28, },
-+      { 0, 1, 0, 6, 132, 32, },
-+      { 2, 1, 0, 6, 132, 28, },
-+      { 1, 1, 0, 6, 132, 28, },
-+      { 0, 1, 0, 6, 136, 32, },
-+      { 2, 1, 0, 6, 136, 28, },
-+      { 1, 1, 0, 6, 136, 28, },
-+      { 0, 1, 0, 6, 140, 30, },
-+      { 2, 1, 0, 6, 140, 28, },
-+      { 1, 1, 0, 6, 140, 28, },
-+      { 0, 1, 0, 6, 149, 28, },
-+      { 2, 1, 0, 6, 149, 28, },
-+      { 1, 1, 0, 6, 149, 63, },
-+      { 0, 1, 0, 6, 153, 34, },
-+      { 2, 1, 0, 6, 153, 28, },
-+      { 1, 1, 0, 6, 153, 63, },
-+      { 0, 1, 0, 6, 157, 34, },
-+      { 2, 1, 0, 6, 157, 28, },
-+      { 1, 1, 0, 6, 157, 63, },
-+      { 0, 1, 0, 6, 161, 34, },
-+      { 2, 1, 0, 6, 161, 28, },
-+      { 1, 1, 0, 6, 161, 63, },
-+      { 0, 1, 0, 6, 165, 34, },
-+      { 2, 1, 0, 6, 165, 28, },
-+      { 1, 1, 0, 6, 165, 63, },
-+      { 0, 1, 0, 7, 36, 30, },
-+      { 2, 1, 0, 7, 36, 26, },
-+      { 1, 1, 0, 7, 36, 26, },
-+      { 0, 1, 0, 7, 40, 30, },
-+      { 2, 1, 0, 7, 40, 26, },
-+      { 1, 1, 0, 7, 40, 26, },
-+      { 0, 1, 0, 7, 44, 30, },
-+      { 2, 1, 0, 7, 44, 26, },
-+      { 1, 1, 0, 7, 44, 26, },
-+      { 0, 1, 0, 7, 48, 30, },
-+      { 2, 1, 0, 7, 48, 26, },
-+      { 1, 1, 0, 7, 48, 26, },
-+      { 0, 1, 0, 7, 52, 30, },
-+      { 2, 1, 0, 7, 52, 26, },
-+      { 1, 1, 0, 7, 52, 26, },
-+      { 0, 1, 0, 7, 56, 30, },
-+      { 2, 1, 0, 7, 56, 26, },
-+      { 1, 1, 0, 7, 56, 26, },
-+      { 0, 1, 0, 7, 60, 30, },
-+      { 2, 1, 0, 7, 60, 26, },
-+      { 1, 1, 0, 7, 60, 26, },
-+      { 0, 1, 0, 7, 64, 30, },
-+      { 2, 1, 0, 7, 64, 26, },
-+      { 1, 1, 0, 7, 64, 26, },
-+      { 0, 1, 0, 7, 100, 30, },
-+      { 2, 1, 0, 7, 100, 26, },
-+      { 1, 1, 0, 7, 100, 26, },
-+      { 0, 1, 0, 7, 104, 30, },
-+      { 2, 1, 0, 7, 104, 26, },
-+      { 1, 1, 0, 7, 104, 26, },
-+      { 0, 1, 0, 7, 108, 30, },
-+      { 2, 1, 0, 7, 108, 26, },
-+      { 1, 1, 0, 7, 108, 26, },
-+      { 0, 1, 0, 7, 112, 30, },
-+      { 2, 1, 0, 7, 112, 26, },
-+      { 1, 1, 0, 7, 112, 26, },
-+      { 0, 1, 0, 7, 116, 30, },
-+      { 2, 1, 0, 7, 116, 26, },
-+      { 1, 1, 0, 7, 116, 26, },
-+      { 0, 1, 0, 7, 120, 30, },
-+      { 2, 1, 0, 7, 120, 26, },
-+      { 1, 1, 0, 7, 120, 26, },
-+      { 0, 1, 0, 7, 124, 30, },
-+      { 2, 1, 0, 7, 124, 26, },
-+      { 1, 1, 0, 7, 124, 26, },
-+      { 0, 1, 0, 7, 128, 30, },
-+      { 2, 1, 0, 7, 128, 26, },
-+      { 1, 1, 0, 7, 128, 26, },
-+      { 0, 1, 0, 7, 132, 30, },
-+      { 2, 1, 0, 7, 132, 26, },
-+      { 1, 1, 0, 7, 132, 26, },
-+      { 0, 1, 0, 7, 136, 30, },
-+      { 2, 1, 0, 7, 136, 26, },
-+      { 1, 1, 0, 7, 136, 26, },
-+      { 0, 1, 0, 7, 140, 28, },
-+      { 2, 1, 0, 7, 140, 26, },
-+      { 1, 1, 0, 7, 140, 26, },
-+      { 0, 1, 0, 7, 149, 26, },
-+      { 2, 1, 0, 7, 149, 26, },
-+      { 1, 1, 0, 7, 149, 63, },
-+      { 0, 1, 0, 7, 153, 32, },
-+      { 2, 1, 0, 7, 153, 26, },
-+      { 1, 1, 0, 7, 153, 63, },
-+      { 0, 1, 0, 7, 157, 32, },
-+      { 2, 1, 0, 7, 157, 26, },
-+      { 1, 1, 0, 7, 157, 63, },
-+      { 0, 1, 0, 7, 161, 32, },
-+      { 2, 1, 0, 7, 161, 26, },
-+      { 1, 1, 0, 7, 161, 63, },
-+      { 0, 1, 0, 7, 165, 32, },
-+      { 2, 1, 0, 7, 165, 26, },
-+      { 1, 1, 0, 7, 165, 63, },
-+      { 0, 1, 1, 2, 38, 32, },
-+      { 2, 1, 1, 2, 38, 32, },
-+      { 1, 1, 1, 2, 38, 32, },
-+      { 0, 1, 1, 2, 46, 32, },
-+      { 2, 1, 1, 2, 46, 32, },
-+      { 1, 1, 1, 2, 46, 32, },
-+      { 0, 1, 1, 2, 54, 32, },
-+      { 2, 1, 1, 2, 54, 32, },
-+      { 1, 1, 1, 2, 54, 32, },
-+      { 0, 1, 1, 2, 62, 30, },
-+      { 2, 1, 1, 2, 62, 32, },
-+      { 1, 1, 1, 2, 62, 32, },
-+      { 0, 1, 1, 2, 102, 30, },
-+      { 2, 1, 1, 2, 102, 32, },
-+      { 1, 1, 1, 2, 102, 32, },
-+      { 0, 1, 1, 2, 110, 38, },
-+      { 2, 1, 1, 2, 110, 32, },
-+      { 1, 1, 1, 2, 110, 32, },
-+      { 0, 1, 1, 2, 118, 38, },
-+      { 2, 1, 1, 2, 118, 32, },
-+      { 1, 1, 1, 2, 118, 32, },
-+      { 0, 1, 1, 2, 126, 38, },
-+      { 2, 1, 1, 2, 126, 32, },
-+      { 1, 1, 1, 2, 126, 32, },
-+      { 0, 1, 1, 2, 134, 38, },
-+      { 2, 1, 1, 2, 134, 32, },
-+      { 1, 1, 1, 2, 134, 32, },
-+      { 0, 1, 1, 2, 151, 32, },
-+      { 2, 1, 1, 2, 151, 32, },
-+      { 1, 1, 1, 2, 151, 63, },
-+      { 0, 1, 1, 2, 159, 32, },
-+      { 2, 1, 1, 2, 159, 32, },
-+      { 1, 1, 1, 2, 159, 63, },
-+      { 0, 1, 1, 3, 38, 30, },
-+      { 2, 1, 1, 3, 38, 30, },
-+      { 1, 1, 1, 3, 38, 30, },
-+      { 0, 1, 1, 3, 46, 30, },
-+      { 2, 1, 1, 3, 46, 30, },
-+      { 1, 1, 1, 3, 46, 30, },
-+      { 0, 1, 1, 3, 54, 30, },
-+      { 2, 1, 1, 3, 54, 30, },
-+      { 1, 1, 1, 3, 54, 30, },
-+      { 0, 1, 1, 3, 62, 28, },
-+      { 2, 1, 1, 3, 62, 30, },
-+      { 1, 1, 1, 3, 62, 30, },
-+      { 0, 1, 1, 3, 102, 28, },
-+      { 2, 1, 1, 3, 102, 30, },
-+      { 1, 1, 1, 3, 102, 30, },
-+      { 0, 1, 1, 3, 110, 36, },
-+      { 2, 1, 1, 3, 110, 30, },
-+      { 1, 1, 1, 3, 110, 30, },
-+      { 0, 1, 1, 3, 118, 36, },
-+      { 2, 1, 1, 3, 118, 30, },
-+      { 1, 1, 1, 3, 118, 30, },
-+      { 0, 1, 1, 3, 126, 36, },
-+      { 2, 1, 1, 3, 126, 30, },
-+      { 1, 1, 1, 3, 126, 30, },
-+      { 0, 1, 1, 3, 134, 36, },
-+      { 2, 1, 1, 3, 134, 30, },
-+      { 1, 1, 1, 3, 134, 30, },
-+      { 0, 1, 1, 3, 151, 30, },
-+      { 2, 1, 1, 3, 151, 30, },
-+      { 1, 1, 1, 3, 151, 63, },
-+      { 0, 1, 1, 3, 159, 30, },
-+      { 2, 1, 1, 3, 159, 30, },
-+      { 1, 1, 1, 3, 159, 63, },
-+      { 0, 1, 1, 6, 38, 28, },
-+      { 2, 1, 1, 6, 38, 28, },
-+      { 1, 1, 1, 6, 38, 28, },
-+      { 0, 1, 1, 6, 46, 28, },
-+      { 2, 1, 1, 6, 46, 28, },
-+      { 1, 1, 1, 6, 46, 28, },
-+      { 0, 1, 1, 6, 54, 28, },
-+      { 2, 1, 1, 6, 54, 28, },
-+      { 1, 1, 1, 6, 54, 28, },
-+      { 0, 1, 1, 6, 62, 26, },
-+      { 2, 1, 1, 6, 62, 28, },
-+      { 1, 1, 1, 6, 62, 28, },
-+      { 0, 1, 1, 6, 102, 26, },
-+      { 2, 1, 1, 6, 102, 28, },
-+      { 1, 1, 1, 6, 102, 28, },
-+      { 0, 1, 1, 6, 110, 34, },
-+      { 2, 1, 1, 6, 110, 28, },
-+      { 1, 1, 1, 6, 110, 28, },
-+      { 0, 1, 1, 6, 118, 34, },
-+      { 2, 1, 1, 6, 118, 28, },
-+      { 1, 1, 1, 6, 118, 28, },
-+      { 0, 1, 1, 6, 126, 34, },
-+      { 2, 1, 1, 6, 126, 28, },
-+      { 1, 1, 1, 6, 126, 28, },
-+      { 0, 1, 1, 6, 134, 34, },
-+      { 2, 1, 1, 6, 134, 28, },
-+      { 1, 1, 1, 6, 134, 28, },
-+      { 0, 1, 1, 6, 151, 28, },
-+      { 2, 1, 1, 6, 151, 28, },
-+      { 1, 1, 1, 6, 151, 63, },
-+      { 0, 1, 1, 6, 159, 28, },
-+      { 2, 1, 1, 6, 159, 28, },
-+      { 1, 1, 1, 6, 159, 63, },
-+      { 0, 1, 1, 7, 38, 26, },
-+      { 2, 1, 1, 7, 38, 26, },
-+      { 1, 1, 1, 7, 38, 26, },
-+      { 0, 1, 1, 7, 46, 26, },
-+      { 2, 1, 1, 7, 46, 26, },
-+      { 1, 1, 1, 7, 46, 26, },
-+      { 0, 1, 1, 7, 54, 26, },
-+      { 2, 1, 1, 7, 54, 26, },
-+      { 1, 1, 1, 7, 54, 26, },
-+      { 0, 1, 1, 7, 62, 24, },
-+      { 2, 1, 1, 7, 62, 26, },
-+      { 1, 1, 1, 7, 62, 26, },
-+      { 0, 1, 1, 7, 102, 24, },
-+      { 2, 1, 1, 7, 102, 26, },
-+      { 1, 1, 1, 7, 102, 26, },
-+      { 0, 1, 1, 7, 110, 32, },
-+      { 2, 1, 1, 7, 110, 26, },
-+      { 1, 1, 1, 7, 110, 26, },
-+      { 0, 1, 1, 7, 118, 32, },
-+      { 2, 1, 1, 7, 118, 26, },
-+      { 1, 1, 1, 7, 118, 26, },
-+      { 0, 1, 1, 7, 126, 32, },
-+      { 2, 1, 1, 7, 126, 26, },
-+      { 1, 1, 1, 7, 126, 26, },
-+      { 0, 1, 1, 7, 134, 32, },
-+      { 2, 1, 1, 7, 134, 26, },
-+      { 1, 1, 1, 7, 134, 26, },
-+      { 0, 1, 1, 7, 151, 26, },
-+      { 2, 1, 1, 7, 151, 26, },
-+      { 1, 1, 1, 7, 151, 63, },
-+      { 0, 1, 1, 7, 159, 26, },
-+      { 2, 1, 1, 7, 159, 26, },
-+      { 1, 1, 1, 7, 159, 63, },
-+      { 0, 1, 2, 4, 42, 26, },
-+      { 2, 1, 2, 4, 42, 32, },
-+      { 1, 1, 2, 4, 42, 32, },
-+      { 0, 1, 2, 4, 58, 26, },
-+      { 2, 1, 2, 4, 58, 32, },
-+      { 1, 1, 2, 4, 58, 32, },
-+      { 0, 1, 2, 4, 106, 28, },
-+      { 2, 1, 2, 4, 106, 32, },
-+      { 1, 1, 2, 4, 106, 32, },
-+      { 0, 1, 2, 4, 122, 28, },
-+      { 2, 1, 2, 4, 122, 32, },
-+      { 1, 1, 2, 4, 122, 32, },
-+      { 0, 1, 2, 4, 155, 28, },
-+      { 2, 1, 2, 4, 155, 32, },
-+      { 1, 1, 2, 4, 155, 63, },
-+      { 0, 1, 2, 5, 42, 24, },
-+      { 2, 1, 2, 5, 42, 30, },
-+      { 1, 1, 2, 5, 42, 30, },
-+      { 0, 1, 2, 5, 58, 24, },
-+      { 2, 1, 2, 5, 58, 30, },
-+      { 1, 1, 2, 5, 58, 30, },
-+      { 0, 1, 2, 5, 106, 26, },
-+      { 2, 1, 2, 5, 106, 30, },
-+      { 1, 1, 2, 5, 106, 30, },
-+      { 0, 1, 2, 5, 122, 26, },
-+      { 2, 1, 2, 5, 122, 30, },
-+      { 1, 1, 2, 5, 122, 30, },
-+      { 0, 1, 2, 5, 155, 26, },
-+      { 2, 1, 2, 5, 155, 30, },
-+      { 1, 1, 2, 5, 155, 63, },
-+      { 0, 1, 2, 8, 42, 22, },
-+      { 2, 1, 2, 8, 42, 28, },
-+      { 1, 1, 2, 8, 42, 28, },
-+      { 0, 1, 2, 8, 58, 22, },
-+      { 2, 1, 2, 8, 58, 28, },
-+      { 1, 1, 2, 8, 58, 28, },
-+      { 0, 1, 2, 8, 106, 24, },
-+      { 2, 1, 2, 8, 106, 28, },
-+      { 1, 1, 2, 8, 106, 28, },
-+      { 0, 1, 2, 8, 122, 24, },
-+      { 2, 1, 2, 8, 122, 28, },
-+      { 1, 1, 2, 8, 122, 28, },
-+      { 0, 1, 2, 8, 155, 24, },
-+      { 2, 1, 2, 8, 155, 28, },
-+      { 1, 1, 2, 8, 155, 63, },
-+      { 0, 1, 2, 9, 42, 20, },
-+      { 2, 1, 2, 9, 42, 26, },
-+      { 1, 1, 2, 9, 42, 26, },
-+      { 0, 1, 2, 9, 58, 20, },
-+      { 2, 1, 2, 9, 58, 26, },
-+      { 1, 1, 2, 9, 58, 26, },
-+      { 0, 1, 2, 9, 106, 22, },
-+      { 2, 1, 2, 9, 106, 26, },
-+      { 1, 1, 2, 9, 106, 26, },
-+      { 0, 1, 2, 9, 122, 22, },
-+      { 2, 1, 2, 9, 122, 26, },
-+      { 1, 1, 2, 9, 122, 26, },
-+      { 0, 1, 2, 9, 155, 22, },
-+      { 2, 1, 2, 9, 155, 26, },
-+      { 1, 1, 2, 9, 155, 63, },
-+};
-+
-+RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type7);
-+
-+static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type8[] = {
-+      { 0, 0, 0, 0, 1, 46, },
-+      { 2, 0, 0, 0, 1, 46, },
-+      { 1, 0, 0, 0, 1, 46, },
-+      { 0, 0, 0, 0, 2, 46, },
-+      { 2, 0, 0, 0, 2, 46, },
-+      { 1, 0, 0, 0, 2, 46, },
-+      { 0, 0, 0, 0, 3, 46, },
-+      { 2, 0, 0, 0, 3, 46, },
-+      { 1, 0, 0, 0, 3, 46, },
-+      { 0, 0, 0, 0, 4, 46, },
-+      { 2, 0, 0, 0, 4, 46, },
-+      { 1, 0, 0, 0, 4, 46, },
-+      { 0, 0, 0, 0, 5, 46, },
-+      { 2, 0, 0, 0, 5, 46, },
-+      { 1, 0, 0, 0, 5, 46, },
-+      { 0, 0, 0, 0, 6, 46, },
-+      { 2, 0, 0, 0, 6, 46, },
-+      { 1, 0, 0, 0, 6, 46, },
-+      { 0, 0, 0, 0, 7, 46, },
-+      { 2, 0, 0, 0, 7, 46, },
-+      { 1, 0, 0, 0, 7, 46, },
-+      { 0, 0, 0, 0, 8, 46, },
-+      { 2, 0, 0, 0, 8, 46, },
-+      { 1, 0, 0, 0, 8, 46, },
-+      { 0, 0, 0, 0, 9, 46, },
-+      { 2, 0, 0, 0, 9, 46, },
-+      { 1, 0, 0, 0, 9, 46, },
-+      { 0, 0, 0, 0, 10, 46, },
-+      { 2, 0, 0, 0, 10, 46, },
-+      { 1, 0, 0, 0, 10, 46, },
-+      { 0, 0, 0, 0, 11, 46, },
-+      { 2, 0, 0, 0, 11, 46, },
-+      { 1, 0, 0, 0, 11, 46, },
-+      { 0, 0, 0, 0, 12, 63, },
-+      { 2, 0, 0, 0, 12, 46, },
-+      { 1, 0, 0, 0, 12, 46, },
-+      { 0, 0, 0, 0, 13, 63, },
-+      { 2, 0, 0, 0, 13, 46, },
-+      { 1, 0, 0, 0, 13, 46, },
-+      { 0, 0, 0, 0, 14, 63, },
-+      { 2, 0, 0, 0, 14, 63, },
-+      { 1, 0, 0, 0, 14, 46, },
-+      { 0, 0, 0, 1, 1, 46, },
-+      { 2, 0, 0, 1, 1, 46, },
-+      { 1, 0, 0, 1, 1, 46, },
-+      { 0, 0, 0, 1, 2, 46, },
-+      { 2, 0, 0, 1, 2, 46, },
-+      { 1, 0, 0, 1, 2, 46, },
-+      { 0, 0, 0, 1, 3, 46, },
-+      { 2, 0, 0, 1, 3, 46, },
-+      { 1, 0, 0, 1, 3, 46, },
-+      { 0, 0, 0, 1, 4, 46, },
-+      { 2, 0, 0, 1, 4, 46, },
-+      { 1, 0, 0, 1, 4, 46, },
-+      { 0, 0, 0, 1, 5, 46, },
-+      { 2, 0, 0, 1, 5, 46, },
-+      { 1, 0, 0, 1, 5, 46, },
-+      { 0, 0, 0, 1, 6, 46, },
-+      { 2, 0, 0, 1, 6, 46, },
-+      { 1, 0, 0, 1, 6, 46, },
-+      { 0, 0, 0, 1, 7, 46, },
-+      { 2, 0, 0, 1, 7, 46, },
-+      { 1, 0, 0, 1, 7, 46, },
-+      { 0, 0, 0, 1, 8, 46, },
-+      { 2, 0, 0, 1, 8, 46, },
-+      { 1, 0, 0, 1, 8, 46, },
-+      { 0, 0, 0, 1, 9, 46, },
-+      { 2, 0, 0, 1, 9, 46, },
-+      { 1, 0, 0, 1, 9, 46, },
-+      { 0, 0, 0, 1, 10, 46, },
-+      { 2, 0, 0, 1, 10, 46, },
-+      { 1, 0, 0, 1, 10, 46, },
-+      { 0, 0, 0, 1, 11, 46, },
-+      { 2, 0, 0, 1, 11, 46, },
-+      { 1, 0, 0, 1, 11, 46, },
-+      { 0, 0, 0, 1, 12, 63, },
-+      { 2, 0, 0, 1, 12, 46, },
-+      { 1, 0, 0, 1, 12, 46, },
-+      { 0, 0, 0, 1, 13, 63, },
-+      { 2, 0, 0, 1, 13, 46, },
-+      { 1, 0, 0, 1, 13, 46, },
-+      { 0, 0, 0, 1, 14, 63, },
-+      { 2, 0, 0, 1, 14, 63, },
-+      { 1, 0, 0, 1, 14, 46, },
-+      { 0, 0, 0, 2, 1, 46, },
-+      { 2, 0, 0, 2, 1, 46, },
-+      { 1, 0, 0, 2, 1, 46, },
-+      { 0, 0, 0, 2, 2, 46, },
-+      { 2, 0, 0, 2, 2, 46, },
-+      { 1, 0, 0, 2, 2, 46, },
-+      { 0, 0, 0, 2, 3, 46, },
-+      { 2, 0, 0, 2, 3, 46, },
-+      { 1, 0, 0, 2, 3, 46, },
-+      { 0, 0, 0, 2, 4, 46, },
-+      { 2, 0, 0, 2, 4, 46, },
-+      { 1, 0, 0, 2, 4, 46, },
-+      { 0, 0, 0, 2, 5, 46, },
-+      { 2, 0, 0, 2, 5, 46, },
-+      { 1, 0, 0, 2, 5, 46, },
-+      { 0, 0, 0, 2, 6, 46, },
-+      { 2, 0, 0, 2, 6, 46, },
-+      { 1, 0, 0, 2, 6, 46, },
-+      { 0, 0, 0, 2, 7, 46, },
-+      { 2, 0, 0, 2, 7, 46, },
-+      { 1, 0, 0, 2, 7, 46, },
-+      { 0, 0, 0, 2, 8, 46, },
-+      { 2, 0, 0, 2, 8, 46, },
-+      { 1, 0, 0, 2, 8, 46, },
-+      { 0, 0, 0, 2, 9, 46, },
-+      { 2, 0, 0, 2, 9, 46, },
-+      { 1, 0, 0, 2, 9, 46, },
-+      { 0, 0, 0, 2, 10, 46, },
-+      { 2, 0, 0, 2, 10, 46, },
-+      { 1, 0, 0, 2, 10, 46, },
-+      { 0, 0, 0, 2, 11, 46, },
-+      { 2, 0, 0, 2, 11, 46, },
-+      { 1, 0, 0, 2, 11, 46, },
-+      { 0, 0, 0, 2, 12, 63, },
-+      { 2, 0, 0, 2, 12, 46, },
-+      { 1, 0, 0, 2, 12, 46, },
-+      { 0, 0, 0, 2, 13, 63, },
-+      { 2, 0, 0, 2, 13, 46, },
-+      { 1, 0, 0, 2, 13, 46, },
-+      { 0, 0, 0, 2, 14, 63, },
-+      { 2, 0, 0, 2, 14, 63, },
-+      { 1, 0, 0, 2, 14, 46, },
-+      { 0, 0, 0, 3, 1, 46, },
-+      { 2, 0, 0, 3, 1, 46, },
-+      { 1, 0, 0, 3, 1, 46, },
-+      { 0, 0, 0, 3, 2, 46, },
-+      { 2, 0, 0, 3, 2, 46, },
-+      { 1, 0, 0, 3, 2, 46, },
-+      { 0, 0, 0, 3, 3, 46, },
-+      { 2, 0, 0, 3, 3, 46, },
-+      { 1, 0, 0, 3, 3, 46, },
-+      { 0, 0, 0, 3, 4, 46, },
-+      { 2, 0, 0, 3, 4, 46, },
-+      { 1, 0, 0, 3, 4, 46, },
-+      { 0, 0, 0, 3, 5, 46, },
-+      { 2, 0, 0, 3, 5, 46, },
-+      { 1, 0, 0, 3, 5, 46, },
-+      { 0, 0, 0, 3, 6, 46, },
-+      { 2, 0, 0, 3, 6, 46, },
-+      { 1, 0, 0, 3, 6, 46, },
-+      { 0, 0, 0, 3, 7, 46, },
-+      { 2, 0, 0, 3, 7, 46, },
-+      { 1, 0, 0, 3, 7, 46, },
-+      { 0, 0, 0, 3, 8, 46, },
-+      { 2, 0, 0, 3, 8, 46, },
-+      { 1, 0, 0, 3, 8, 46, },
-+      { 0, 0, 0, 3, 9, 46, },
-+      { 2, 0, 0, 3, 9, 46, },
-+      { 1, 0, 0, 3, 9, 46, },
-+      { 0, 0, 0, 3, 10, 46, },
-+      { 2, 0, 0, 3, 10, 46, },
-+      { 1, 0, 0, 3, 10, 46, },
-+      { 0, 0, 0, 3, 11, 46, },
-+      { 2, 0, 0, 3, 11, 46, },
-+      { 1, 0, 0, 3, 11, 46, },
-+      { 0, 0, 0, 3, 12, 63, },
-+      { 2, 0, 0, 3, 12, 46, },
-+      { 1, 0, 0, 3, 12, 46, },
-+      { 0, 0, 0, 3, 13, 63, },
-+      { 2, 0, 0, 3, 13, 46, },
-+      { 1, 0, 0, 3, 13, 46, },
-+      { 0, 0, 0, 3, 14, 63, },
-+      { 2, 0, 0, 3, 14, 63, },
-+      { 1, 0, 0, 3, 14, 46, },
-+      { 0, 0, 0, 6, 1, 46, },
-+      { 2, 0, 0, 6, 1, 46, },
-+      { 1, 0, 0, 6, 1, 46, },
-+      { 0, 0, 0, 6, 2, 46, },
-+      { 2, 0, 0, 6, 2, 46, },
-+      { 1, 0, 0, 6, 2, 46, },
-+      { 0, 0, 0, 6, 3, 46, },
-+      { 2, 0, 0, 6, 3, 46, },
-+      { 1, 0, 0, 6, 3, 46, },
-+      { 0, 0, 0, 6, 4, 46, },
-+      { 2, 0, 0, 6, 4, 46, },
-+      { 1, 0, 0, 6, 4, 46, },
-+      { 0, 0, 0, 6, 5, 46, },
-+      { 2, 0, 0, 6, 5, 46, },
-+      { 1, 0, 0, 6, 5, 46, },
-+      { 0, 0, 0, 6, 6, 46, },
-+      { 2, 0, 0, 6, 6, 46, },
-+      { 1, 0, 0, 6, 6, 46, },
-+      { 0, 0, 0, 6, 7, 46, },
-+      { 2, 0, 0, 6, 7, 46, },
-+      { 1, 0, 0, 6, 7, 46, },
-+      { 0, 0, 0, 6, 8, 46, },
-+      { 2, 0, 0, 6, 8, 46, },
-+      { 1, 0, 0, 6, 8, 46, },
-+      { 0, 0, 0, 6, 9, 46, },
-+      { 2, 0, 0, 6, 9, 46, },
-+      { 1, 0, 0, 6, 9, 46, },
-+      { 0, 0, 0, 6, 10, 46, },
-+      { 2, 0, 0, 6, 10, 46, },
-+      { 1, 0, 0, 6, 10, 46, },
-+      { 0, 0, 0, 6, 11, 46, },
-+      { 2, 0, 0, 6, 11, 46, },
-+      { 1, 0, 0, 6, 11, 46, },
-+      { 0, 0, 0, 6, 12, 63, },
-+      { 2, 0, 0, 6, 12, 46, },
-+      { 1, 0, 0, 6, 12, 46, },
-+      { 0, 0, 0, 6, 13, 63, },
-+      { 2, 0, 0, 6, 13, 46, },
-+      { 1, 0, 0, 6, 13, 46, },
-+      { 0, 0, 0, 6, 14, 63, },
-+      { 2, 0, 0, 6, 14, 63, },
-+      { 1, 0, 0, 6, 14, 46, },
-+      { 0, 0, 0, 7, 1, 46, },
-+      { 2, 0, 0, 7, 1, 46, },
-+      { 1, 0, 0, 7, 1, 46, },
-+      { 0, 0, 0, 7, 2, 46, },
-+      { 2, 0, 0, 7, 2, 46, },
-+      { 1, 0, 0, 7, 2, 46, },
-+      { 0, 0, 0, 7, 3, 46, },
-+      { 2, 0, 0, 7, 3, 46, },
-+      { 1, 0, 0, 7, 3, 46, },
-+      { 0, 0, 0, 7, 4, 46, },
-+      { 2, 0, 0, 7, 4, 46, },
-+      { 1, 0, 0, 7, 4, 46, },
-+      { 0, 0, 0, 7, 5, 46, },
-+      { 2, 0, 0, 7, 5, 46, },
-+      { 1, 0, 0, 7, 5, 46, },
-+      { 0, 0, 0, 7, 6, 46, },
-+      { 2, 0, 0, 7, 6, 46, },
-+      { 1, 0, 0, 7, 6, 46, },
-+      { 0, 0, 0, 7, 7, 46, },
-+      { 2, 0, 0, 7, 7, 46, },
-+      { 1, 0, 0, 7, 7, 46, },
-+      { 0, 0, 0, 7, 8, 46, },
-+      { 2, 0, 0, 7, 8, 46, },
-+      { 1, 0, 0, 7, 8, 46, },
-+      { 0, 0, 0, 7, 9, 46, },
-+      { 2, 0, 0, 7, 9, 46, },
-+      { 1, 0, 0, 7, 9, 46, },
-+      { 0, 0, 0, 7, 10, 46, },
-+      { 2, 0, 0, 7, 10, 46, },
-+      { 1, 0, 0, 7, 10, 46, },
-+      { 0, 0, 0, 7, 11, 46, },
-+      { 2, 0, 0, 7, 11, 46, },
-+      { 1, 0, 0, 7, 11, 46, },
-+      { 0, 0, 0, 7, 12, 63, },
-+      { 2, 0, 0, 7, 12, 46, },
-+      { 1, 0, 0, 7, 12, 46, },
-+      { 0, 0, 0, 7, 13, 63, },
-+      { 2, 0, 0, 7, 13, 46, },
-+      { 1, 0, 0, 7, 13, 46, },
-+      { 0, 0, 0, 7, 14, 63, },
-+      { 2, 0, 0, 7, 14, 63, },
-+      { 1, 0, 0, 7, 14, 46, },
-+      { 0, 0, 1, 2, 1, 63, },
-+      { 2, 0, 1, 2, 1, 63, },
-+      { 1, 0, 1, 2, 1, 63, },
-+      { 0, 0, 1, 2, 2, 63, },
-+      { 2, 0, 1, 2, 2, 63, },
-+      { 1, 0, 1, 2, 2, 63, },
-+      { 0, 0, 1, 2, 3, 30, },
-+      { 2, 0, 1, 2, 3, 34, },
-+      { 1, 0, 1, 2, 3, 34, },
-+      { 0, 0, 1, 2, 4, 34, },
-+      { 2, 0, 1, 2, 4, 34, },
-+      { 1, 0, 1, 2, 4, 34, },
-+      { 0, 0, 1, 2, 5, 34, },
-+      { 2, 0, 1, 2, 5, 34, },
-+      { 1, 0, 1, 2, 5, 34, },
-+      { 0, 0, 1, 2, 6, 34, },
-+      { 2, 0, 1, 2, 6, 34, },
-+      { 1, 0, 1, 2, 6, 34, },
-+      { 0, 0, 1, 2, 7, 34, },
-+      { 2, 0, 1, 2, 7, 34, },
-+      { 1, 0, 1, 2, 7, 34, },
-+      { 0, 0, 1, 2, 8, 34, },
-+      { 2, 0, 1, 2, 8, 34, },
-+      { 1, 0, 1, 2, 8, 34, },
-+      { 0, 0, 1, 2, 9, 34, },
-+      { 2, 0, 1, 2, 9, 34, },
-+      { 1, 0, 1, 2, 9, 34, },
-+      { 0, 0, 1, 2, 10, 34, },
-+      { 2, 0, 1, 2, 10, 34, },
-+      { 1, 0, 1, 2, 10, 34, },
-+      { 0, 0, 1, 2, 11, 28, },
-+      { 2, 0, 1, 2, 11, 34, },
-+      { 1, 0, 1, 2, 11, 34, },
-+      { 0, 0, 1, 2, 12, 63, },
-+      { 2, 0, 1, 2, 12, 34, },
-+      { 1, 0, 1, 2, 12, 34, },
-+      { 0, 0, 1, 2, 13, 63, },
-+      { 2, 0, 1, 2, 13, 34, },
-+      { 1, 0, 1, 2, 13, 34, },
-+      { 0, 0, 1, 2, 14, 63, },
-+      { 2, 0, 1, 2, 14, 63, },
-+      { 1, 0, 1, 2, 14, 63, },
-+      { 0, 0, 1, 3, 1, 63, },
-+      { 2, 0, 1, 3, 1, 63, },
-+      { 1, 0, 1, 3, 1, 63, },
-+      { 0, 0, 1, 3, 2, 63, },
-+      { 2, 0, 1, 3, 2, 63, },
-+      { 1, 0, 1, 3, 2, 63, },
-+      { 0, 0, 1, 3, 3, 30, },
-+      { 2, 0, 1, 3, 3, 34, },
-+      { 1, 0, 1, 3, 3, 34, },
-+      { 0, 0, 1, 3, 4, 34, },
-+      { 2, 0, 1, 3, 4, 34, },
-+      { 1, 0, 1, 3, 4, 34, },
-+      { 0, 0, 1, 3, 5, 34, },
-+      { 2, 0, 1, 3, 5, 34, },
-+      { 1, 0, 1, 3, 5, 34, },
-+      { 0, 0, 1, 3, 6, 34, },
-+      { 2, 0, 1, 3, 6, 34, },
-+      { 1, 0, 1, 3, 6, 34, },
-+      { 0, 0, 1, 3, 7, 34, },
-+      { 2, 0, 1, 3, 7, 34, },
-+      { 1, 0, 1, 3, 7, 34, },
-+      { 0, 0, 1, 3, 8, 34, },
-+      { 2, 0, 1, 3, 8, 34, },
-+      { 1, 0, 1, 3, 8, 34, },
-+      { 0, 0, 1, 3, 9, 34, },
-+      { 2, 0, 1, 3, 9, 34, },
-+      { 1, 0, 1, 3, 9, 34, },
-+      { 0, 0, 1, 3, 10, 34, },
-+      { 2, 0, 1, 3, 10, 34, },
-+      { 1, 0, 1, 3, 10, 34, },
-+      { 0, 0, 1, 3, 11, 28, },
-+      { 2, 0, 1, 3, 11, 34, },
-+      { 1, 0, 1, 3, 11, 34, },
-+      { 0, 0, 1, 3, 12, 63, },
-+      { 2, 0, 1, 3, 12, 34, },
-+      { 1, 0, 1, 3, 12, 34, },
-+      { 0, 0, 1, 3, 13, 63, },
-+      { 2, 0, 1, 3, 13, 34, },
-+      { 1, 0, 1, 3, 13, 34, },
-+      { 0, 0, 1, 3, 14, 63, },
-+      { 2, 0, 1, 3, 14, 63, },
-+      { 1, 0, 1, 3, 14, 63, },
-+      { 0, 0, 1, 6, 1, 63, },
-+      { 2, 0, 1, 6, 1, 63, },
-+      { 1, 0, 1, 6, 1, 63, },
-+      { 0, 0, 1, 6, 2, 63, },
-+      { 2, 0, 1, 6, 2, 63, },
-+      { 1, 0, 1, 6, 2, 63, },
-+      { 0, 0, 1, 6, 3, 30, },
-+      { 2, 0, 1, 6, 3, 34, },
-+      { 1, 0, 1, 6, 3, 34, },
-+      { 0, 0, 1, 6, 4, 34, },
-+      { 2, 0, 1, 6, 4, 34, },
-+      { 1, 0, 1, 6, 4, 34, },
-+      { 0, 0, 1, 6, 5, 34, },
-+      { 2, 0, 1, 6, 5, 34, },
-+      { 1, 0, 1, 6, 5, 34, },
-+      { 0, 0, 1, 6, 6, 34, },
-+      { 2, 0, 1, 6, 6, 34, },
-+      { 1, 0, 1, 6, 6, 34, },
-+      { 0, 0, 1, 6, 7, 34, },
-+      { 2, 0, 1, 6, 7, 34, },
-+      { 1, 0, 1, 6, 7, 34, },
-+      { 0, 0, 1, 6, 8, 34, },
-+      { 2, 0, 1, 6, 8, 34, },
-+      { 1, 0, 1, 6, 8, 34, },
-+      { 0, 0, 1, 6, 9, 34, },
-+      { 2, 0, 1, 6, 9, 34, },
-+      { 1, 0, 1, 6, 9, 34, },
-+      { 0, 0, 1, 6, 10, 34, },
-+      { 2, 0, 1, 6, 10, 34, },
-+      { 1, 0, 1, 6, 10, 34, },
-+      { 0, 0, 1, 6, 11, 28, },
-+      { 2, 0, 1, 6, 11, 34, },
-+      { 1, 0, 1, 6, 11, 34, },
-+      { 0, 0, 1, 6, 12, 63, },
-+      { 2, 0, 1, 6, 12, 34, },
-+      { 1, 0, 1, 6, 12, 34, },
-+      { 0, 0, 1, 6, 13, 63, },
-+      { 2, 0, 1, 6, 13, 34, },
-+      { 1, 0, 1, 6, 13, 34, },
-+      { 0, 0, 1, 6, 14, 63, },
-+      { 2, 0, 1, 6, 14, 63, },
-+      { 1, 0, 1, 6, 14, 63, },
-+      { 0, 0, 1, 7, 1, 63, },
-+      { 2, 0, 1, 7, 1, 63, },
-+      { 1, 0, 1, 7, 1, 63, },
-+      { 0, 0, 1, 7, 2, 63, },
-+      { 2, 0, 1, 7, 2, 63, },
-+      { 1, 0, 1, 7, 2, 63, },
-+      { 0, 0, 1, 7, 3, 30, },
-+      { 2, 0, 1, 7, 3, 34, },
-+      { 1, 0, 1, 7, 3, 34, },
-+      { 0, 0, 1, 7, 4, 34, },
-+      { 2, 0, 1, 7, 4, 34, },
-+      { 1, 0, 1, 7, 4, 34, },
-+      { 0, 0, 1, 7, 5, 34, },
-+      { 2, 0, 1, 7, 5, 34, },
-+      { 1, 0, 1, 7, 5, 34, },
-+      { 0, 0, 1, 7, 6, 34, },
-+      { 2, 0, 1, 7, 6, 34, },
-+      { 1, 0, 1, 7, 6, 34, },
-+      { 0, 0, 1, 7, 7, 34, },
-+      { 2, 0, 1, 7, 7, 34, },
-+      { 1, 0, 1, 7, 7, 34, },
-+      { 0, 0, 1, 7, 8, 34, },
-+      { 2, 0, 1, 7, 8, 34, },
-+      { 1, 0, 1, 7, 8, 34, },
-+      { 0, 0, 1, 7, 9, 34, },
-+      { 2, 0, 1, 7, 9, 34, },
-+      { 1, 0, 1, 7, 9, 34, },
-+      { 0, 0, 1, 7, 10, 34, },
-+      { 2, 0, 1, 7, 10, 34, },
-+      { 1, 0, 1, 7, 10, 34, },
-+      { 0, 0, 1, 7, 11, 28, },
-+      { 2, 0, 1, 7, 11, 34, },
-+      { 1, 0, 1, 7, 11, 34, },
-+      { 0, 0, 1, 7, 12, 63, },
-+      { 2, 0, 1, 7, 12, 34, },
-+      { 1, 0, 1, 7, 12, 34, },
-+      { 0, 0, 1, 7, 13, 63, },
-+      { 2, 0, 1, 7, 13, 34, },
-+      { 1, 0, 1, 7, 13, 34, },
-+      { 0, 0, 1, 7, 14, 63, },
-+      { 2, 0, 1, 7, 14, 63, },
-+      { 1, 0, 1, 7, 14, 63, },
-+      { 0, 1, 0, 1, 36, 46, },
-+      { 2, 1, 0, 1, 36, 46, },
-+      { 1, 1, 0, 1, 36, 46, },
-+      { 0, 1, 0, 1, 40, 46, },
-+      { 2, 1, 0, 1, 40, 46, },
-+      { 1, 1, 0, 1, 40, 46, },
-+      { 0, 1, 0, 1, 44, 46, },
-+      { 2, 1, 0, 1, 44, 46, },
-+      { 1, 1, 0, 1, 44, 46, },
-+      { 0, 1, 0, 1, 48, 46, },
-+      { 2, 1, 0, 1, 48, 46, },
-+      { 1, 1, 0, 1, 48, 46, },
-+      { 0, 1, 0, 1, 52, 46, },
-+      { 2, 1, 0, 1, 52, 46, },
-+      { 1, 1, 0, 1, 52, 46, },
-+      { 0, 1, 0, 1, 56, 46, },
-+      { 2, 1, 0, 1, 56, 46, },
-+      { 1, 1, 0, 1, 56, 46, },
-+      { 0, 1, 0, 1, 60, 46, },
-+      { 2, 1, 0, 1, 60, 46, },
-+      { 1, 1, 0, 1, 60, 46, },
-+      { 0, 1, 0, 1, 64, 46, },
-+      { 2, 1, 0, 1, 64, 46, },
-+      { 1, 1, 0, 1, 64, 46, },
-+      { 0, 1, 0, 1, 100, 46, },
-+      { 2, 1, 0, 1, 100, 46, },
-+      { 1, 1, 0, 1, 100, 46, },
-+      { 0, 1, 0, 1, 104, 46, },
-+      { 2, 1, 0, 1, 104, 46, },
-+      { 1, 1, 0, 1, 104, 46, },
-+      { 0, 1, 0, 1, 108, 46, },
-+      { 2, 1, 0, 1, 108, 46, },
-+      { 1, 1, 0, 1, 108, 46, },
-+      { 0, 1, 0, 1, 112, 46, },
-+      { 2, 1, 0, 1, 112, 46, },
-+      { 1, 1, 0, 1, 112, 46, },
-+      { 0, 1, 0, 1, 116, 46, },
-+      { 2, 1, 0, 1, 116, 46, },
-+      { 1, 1, 0, 1, 116, 46, },
-+      { 0, 1, 0, 1, 120, 46, },
-+      { 2, 1, 0, 1, 120, 46, },
-+      { 1, 1, 0, 1, 120, 46, },
-+      { 0, 1, 0, 1, 124, 46, },
-+      { 2, 1, 0, 1, 124, 46, },
-+      { 1, 1, 0, 1, 124, 46, },
-+      { 0, 1, 0, 1, 128, 46, },
-+      { 2, 1, 0, 1, 128, 46, },
-+      { 1, 1, 0, 1, 128, 46, },
-+      { 0, 1, 0, 1, 132, 46, },
-+      { 2, 1, 0, 1, 132, 46, },
-+      { 1, 1, 0, 1, 132, 46, },
-+      { 0, 1, 0, 1, 136, 46, },
-+      { 2, 1, 0, 1, 136, 46, },
-+      { 1, 1, 0, 1, 136, 46, },
-+      { 0, 1, 0, 1, 140, 46, },
-+      { 2, 1, 0, 1, 140, 46, },
-+      { 1, 1, 0, 1, 140, 46, },
-+      { 0, 1, 0, 1, 149, 46, },
-+      { 2, 1, 0, 1, 149, 46, },
-+      { 1, 1, 0, 1, 149, 63, },
-+      { 0, 1, 0, 1, 153, 46, },
-+      { 2, 1, 0, 1, 153, 46, },
-+      { 1, 1, 0, 1, 153, 63, },
-+      { 0, 1, 0, 1, 157, 46, },
-+      { 2, 1, 0, 1, 157, 46, },
-+      { 1, 1, 0, 1, 157, 63, },
-+      { 0, 1, 0, 1, 161, 46, },
-+      { 2, 1, 0, 1, 161, 46, },
-+      { 1, 1, 0, 1, 161, 63, },
-+      { 0, 1, 0, 1, 165, 46, },
-+      { 2, 1, 0, 1, 165, 46, },
-+      { 1, 1, 0, 1, 165, 63, },
-+      { 0, 1, 0, 2, 36, 46, },
-+      { 2, 1, 0, 2, 36, 46, },
-+      { 1, 1, 0, 2, 36, 46, },
-+      { 0, 1, 0, 2, 40, 46, },
-+      { 2, 1, 0, 2, 40, 46, },
-+      { 1, 1, 0, 2, 40, 46, },
-+      { 0, 1, 0, 2, 44, 46, },
-+      { 2, 1, 0, 2, 44, 46, },
-+      { 1, 1, 0, 2, 44, 46, },
-+      { 0, 1, 0, 2, 48, 46, },
-+      { 2, 1, 0, 2, 48, 46, },
-+      { 1, 1, 0, 2, 48, 46, },
-+      { 0, 1, 0, 2, 52, 46, },
-+      { 2, 1, 0, 2, 52, 46, },
-+      { 1, 1, 0, 2, 52, 46, },
-+      { 0, 1, 0, 2, 56, 46, },
-+      { 2, 1, 0, 2, 56, 46, },
-+      { 1, 1, 0, 2, 56, 46, },
-+      { 0, 1, 0, 2, 60, 46, },
-+      { 2, 1, 0, 2, 60, 46, },
-+      { 1, 1, 0, 2, 60, 46, },
-+      { 0, 1, 0, 2, 64, 46, },
-+      { 2, 1, 0, 2, 64, 46, },
-+      { 1, 1, 0, 2, 64, 46, },
-+      { 0, 1, 0, 2, 100, 46, },
-+      { 2, 1, 0, 2, 100, 46, },
-+      { 1, 1, 0, 2, 100, 46, },
-+      { 0, 1, 0, 2, 104, 46, },
-+      { 2, 1, 0, 2, 104, 46, },
-+      { 1, 1, 0, 2, 104, 46, },
-+      { 0, 1, 0, 2, 108, 46, },
-+      { 2, 1, 0, 2, 108, 46, },
-+      { 1, 1, 0, 2, 108, 46, },
-+      { 0, 1, 0, 2, 112, 46, },
-+      { 2, 1, 0, 2, 112, 46, },
-+      { 1, 1, 0, 2, 112, 46, },
-+      { 0, 1, 0, 2, 116, 46, },
-+      { 2, 1, 0, 2, 116, 46, },
-+      { 1, 1, 0, 2, 116, 46, },
-+      { 0, 1, 0, 2, 120, 46, },
-+      { 2, 1, 0, 2, 120, 46, },
-+      { 1, 1, 0, 2, 120, 46, },
-+      { 0, 1, 0, 2, 124, 46, },
-+      { 2, 1, 0, 2, 124, 46, },
-+      { 1, 1, 0, 2, 124, 46, },
-+      { 0, 1, 0, 2, 128, 46, },
-+      { 2, 1, 0, 2, 128, 46, },
-+      { 1, 1, 0, 2, 128, 46, },
-+      { 0, 1, 0, 2, 132, 46, },
-+      { 2, 1, 0, 2, 132, 46, },
-+      { 1, 1, 0, 2, 132, 46, },
-+      { 0, 1, 0, 2, 136, 46, },
-+      { 2, 1, 0, 2, 136, 46, },
-+      { 1, 1, 0, 2, 136, 46, },
-+      { 0, 1, 0, 2, 140, 46, },
-+      { 2, 1, 0, 2, 140, 46, },
-+      { 1, 1, 0, 2, 140, 46, },
-+      { 0, 1, 0, 2, 149, 46, },
-+      { 2, 1, 0, 2, 149, 46, },
-+      { 1, 1, 0, 2, 149, 63, },
-+      { 0, 1, 0, 2, 153, 46, },
-+      { 2, 1, 0, 2, 153, 46, },
-+      { 1, 1, 0, 2, 153, 63, },
-+      { 0, 1, 0, 2, 157, 46, },
-+      { 2, 1, 0, 2, 157, 46, },
-+      { 1, 1, 0, 2, 157, 63, },
-+      { 0, 1, 0, 2, 161, 46, },
-+      { 2, 1, 0, 2, 161, 46, },
-+      { 1, 1, 0, 2, 161, 63, },
-+      { 0, 1, 0, 2, 165, 46, },
-+      { 2, 1, 0, 2, 165, 46, },
-+      { 1, 1, 0, 2, 165, 63, },
-+      { 0, 1, 0, 3, 36, 46, },
-+      { 2, 1, 0, 3, 36, 46, },
-+      { 1, 1, 0, 3, 36, 46, },
-+      { 0, 1, 0, 3, 40, 46, },
-+      { 2, 1, 0, 3, 40, 46, },
-+      { 1, 1, 0, 3, 40, 46, },
-+      { 0, 1, 0, 3, 44, 46, },
-+      { 2, 1, 0, 3, 44, 46, },
-+      { 1, 1, 0, 3, 44, 46, },
-+      { 0, 1, 0, 3, 48, 46, },
-+      { 2, 1, 0, 3, 48, 46, },
-+      { 1, 1, 0, 3, 48, 46, },
-+      { 0, 1, 0, 3, 52, 46, },
-+      { 2, 1, 0, 3, 52, 46, },
-+      { 1, 1, 0, 3, 52, 46, },
-+      { 0, 1, 0, 3, 56, 46, },
-+      { 2, 1, 0, 3, 56, 46, },
-+      { 1, 1, 0, 3, 56, 46, },
-+      { 0, 1, 0, 3, 60, 46, },
-+      { 2, 1, 0, 3, 60, 46, },
-+      { 1, 1, 0, 3, 60, 46, },
-+      { 0, 1, 0, 3, 64, 46, },
-+      { 2, 1, 0, 3, 64, 46, },
-+      { 1, 1, 0, 3, 64, 46, },
-+      { 0, 1, 0, 3, 100, 46, },
-+      { 2, 1, 0, 3, 100, 46, },
-+      { 1, 1, 0, 3, 100, 46, },
-+      { 0, 1, 0, 3, 104, 46, },
-+      { 2, 1, 0, 3, 104, 46, },
-+      { 1, 1, 0, 3, 104, 46, },
-+      { 0, 1, 0, 3, 108, 46, },
-+      { 2, 1, 0, 3, 108, 46, },
-+      { 1, 1, 0, 3, 108, 46, },
-+      { 0, 1, 0, 3, 112, 46, },
-+      { 2, 1, 0, 3, 112, 46, },
-+      { 1, 1, 0, 3, 112, 46, },
-+      { 0, 1, 0, 3, 116, 46, },
-+      { 2, 1, 0, 3, 116, 46, },
-+      { 1, 1, 0, 3, 116, 46, },
-+      { 0, 1, 0, 3, 120, 46, },
-+      { 2, 1, 0, 3, 120, 46, },
-+      { 1, 1, 0, 3, 120, 46, },
-+      { 0, 1, 0, 3, 124, 46, },
-+      { 2, 1, 0, 3, 124, 46, },
-+      { 1, 1, 0, 3, 124, 46, },
-+      { 0, 1, 0, 3, 128, 46, },
-+      { 2, 1, 0, 3, 128, 46, },
-+      { 1, 1, 0, 3, 128, 46, },
-+      { 0, 1, 0, 3, 132, 46, },
-+      { 2, 1, 0, 3, 132, 46, },
-+      { 1, 1, 0, 3, 132, 46, },
-+      { 0, 1, 0, 3, 136, 46, },
-+      { 2, 1, 0, 3, 136, 46, },
-+      { 1, 1, 0, 3, 136, 46, },
-+      { 0, 1, 0, 3, 140, 46, },
-+      { 2, 1, 0, 3, 140, 46, },
-+      { 1, 1, 0, 3, 140, 46, },
-+      { 0, 1, 0, 3, 149, 46, },
-+      { 2, 1, 0, 3, 149, 46, },
-+      { 1, 1, 0, 3, 149, 63, },
-+      { 0, 1, 0, 3, 153, 46, },
-+      { 2, 1, 0, 3, 153, 46, },
-+      { 1, 1, 0, 3, 153, 63, },
-+      { 0, 1, 0, 3, 157, 46, },
-+      { 2, 1, 0, 3, 157, 46, },
-+      { 1, 1, 0, 3, 157, 63, },
-+      { 0, 1, 0, 3, 161, 46, },
-+      { 2, 1, 0, 3, 161, 46, },
-+      { 1, 1, 0, 3, 161, 63, },
-+      { 0, 1, 0, 3, 165, 46, },
-+      { 2, 1, 0, 3, 165, 46, },
-+      { 1, 1, 0, 3, 165, 63, },
-+      { 0, 1, 0, 6, 36, 46, },
-+      { 2, 1, 0, 6, 36, 46, },
-+      { 1, 1, 0, 6, 36, 46, },
-+      { 0, 1, 0, 6, 40, 46, },
-+      { 2, 1, 0, 6, 40, 46, },
-+      { 1, 1, 0, 6, 40, 46, },
-+      { 0, 1, 0, 6, 44, 46, },
-+      { 2, 1, 0, 6, 44, 46, },
-+      { 1, 1, 0, 6, 44, 46, },
-+      { 0, 1, 0, 6, 48, 46, },
-+      { 2, 1, 0, 6, 48, 46, },
-+      { 1, 1, 0, 6, 48, 46, },
-+      { 0, 1, 0, 6, 52, 46, },
-+      { 2, 1, 0, 6, 52, 46, },
-+      { 1, 1, 0, 6, 52, 46, },
-+      { 0, 1, 0, 6, 56, 46, },
-+      { 2, 1, 0, 6, 56, 46, },
-+      { 1, 1, 0, 6, 56, 46, },
-+      { 0, 1, 0, 6, 60, 46, },
-+      { 2, 1, 0, 6, 60, 46, },
-+      { 1, 1, 0, 6, 60, 46, },
-+      { 0, 1, 0, 6, 64, 46, },
-+      { 2, 1, 0, 6, 64, 46, },
-+      { 1, 1, 0, 6, 64, 46, },
-+      { 0, 1, 0, 6, 100, 46, },
-+      { 2, 1, 0, 6, 100, 46, },
-+      { 1, 1, 0, 6, 100, 46, },
-+      { 0, 1, 0, 6, 104, 46, },
-+      { 2, 1, 0, 6, 104, 46, },
-+      { 1, 1, 0, 6, 104, 46, },
-+      { 0, 1, 0, 6, 108, 46, },
-+      { 2, 1, 0, 6, 108, 46, },
-+      { 1, 1, 0, 6, 108, 46, },
-+      { 0, 1, 0, 6, 112, 46, },
-+      { 2, 1, 0, 6, 112, 46, },
-+      { 1, 1, 0, 6, 112, 46, },
-+      { 0, 1, 0, 6, 116, 46, },
-+      { 2, 1, 0, 6, 116, 46, },
-+      { 1, 1, 0, 6, 116, 46, },
-+      { 0, 1, 0, 6, 120, 46, },
-+      { 2, 1, 0, 6, 120, 46, },
-+      { 1, 1, 0, 6, 120, 46, },
-+      { 0, 1, 0, 6, 124, 46, },
-+      { 2, 1, 0, 6, 124, 46, },
-+      { 1, 1, 0, 6, 124, 46, },
-+      { 0, 1, 0, 6, 128, 46, },
-+      { 2, 1, 0, 6, 128, 46, },
-+      { 1, 1, 0, 6, 128, 46, },
-+      { 0, 1, 0, 6, 132, 46, },
-+      { 2, 1, 0, 6, 132, 46, },
-+      { 1, 1, 0, 6, 132, 46, },
-+      { 0, 1, 0, 6, 136, 46, },
-+      { 2, 1, 0, 6, 136, 46, },
-+      { 1, 1, 0, 6, 136, 46, },
-+      { 0, 1, 0, 6, 140, 46, },
-+      { 2, 1, 0, 6, 140, 46, },
-+      { 1, 1, 0, 6, 140, 46, },
-+      { 0, 1, 0, 6, 149, 46, },
-+      { 2, 1, 0, 6, 149, 46, },
-+      { 1, 1, 0, 6, 149, 63, },
-+      { 0, 1, 0, 6, 153, 46, },
-+      { 2, 1, 0, 6, 153, 46, },
-+      { 1, 1, 0, 6, 153, 63, },
-+      { 0, 1, 0, 6, 157, 46, },
-+      { 2, 1, 0, 6, 157, 46, },
-+      { 1, 1, 0, 6, 157, 63, },
-+      { 0, 1, 0, 6, 161, 46, },
-+      { 2, 1, 0, 6, 161, 46, },
-+      { 1, 1, 0, 6, 161, 63, },
-+      { 0, 1, 0, 6, 165, 46, },
-+      { 2, 1, 0, 6, 165, 46, },
-+      { 1, 1, 0, 6, 165, 63, },
-+      { 0, 1, 0, 7, 36, 46, },
-+      { 2, 1, 0, 7, 36, 46, },
-+      { 1, 1, 0, 7, 36, 46, },
-+      { 0, 1, 0, 7, 40, 46, },
-+      { 2, 1, 0, 7, 40, 46, },
-+      { 1, 1, 0, 7, 40, 46, },
-+      { 0, 1, 0, 7, 44, 46, },
-+      { 2, 1, 0, 7, 44, 46, },
-+      { 1, 1, 0, 7, 44, 46, },
-+      { 0, 1, 0, 7, 48, 46, },
-+      { 2, 1, 0, 7, 48, 46, },
-+      { 1, 1, 0, 7, 48, 46, },
-+      { 0, 1, 0, 7, 52, 46, },
-+      { 2, 1, 0, 7, 52, 46, },
-+      { 1, 1, 0, 7, 52, 46, },
-+      { 0, 1, 0, 7, 56, 46, },
-+      { 2, 1, 0, 7, 56, 46, },
-+      { 1, 1, 0, 7, 56, 46, },
-+      { 0, 1, 0, 7, 60, 46, },
-+      { 2, 1, 0, 7, 60, 46, },
-+      { 1, 1, 0, 7, 60, 46, },
-+      { 0, 1, 0, 7, 64, 46, },
-+      { 2, 1, 0, 7, 64, 46, },
-+      { 1, 1, 0, 7, 64, 46, },
-+      { 0, 1, 0, 7, 100, 46, },
-+      { 2, 1, 0, 7, 100, 46, },
-+      { 1, 1, 0, 7, 100, 46, },
-+      { 0, 1, 0, 7, 104, 46, },
-+      { 2, 1, 0, 7, 104, 46, },
-+      { 1, 1, 0, 7, 104, 46, },
-+      { 0, 1, 0, 7, 108, 46, },
-+      { 2, 1, 0, 7, 108, 46, },
-+      { 1, 1, 0, 7, 108, 46, },
-+      { 0, 1, 0, 7, 112, 46, },
-+      { 2, 1, 0, 7, 112, 46, },
-+      { 1, 1, 0, 7, 112, 46, },
-+      { 0, 1, 0, 7, 116, 46, },
-+      { 2, 1, 0, 7, 116, 46, },
-+      { 1, 1, 0, 7, 116, 46, },
-+      { 0, 1, 0, 7, 120, 46, },
-+      { 2, 1, 0, 7, 120, 46, },
-+      { 1, 1, 0, 7, 120, 46, },
-+      { 0, 1, 0, 7, 124, 46, },
-+      { 2, 1, 0, 7, 124, 46, },
-+      { 1, 1, 0, 7, 124, 46, },
-+      { 0, 1, 0, 7, 128, 46, },
-+      { 2, 1, 0, 7, 128, 46, },
-+      { 1, 1, 0, 7, 128, 46, },
-+      { 0, 1, 0, 7, 132, 46, },
-+      { 2, 1, 0, 7, 132, 46, },
-+      { 1, 1, 0, 7, 132, 46, },
-+      { 0, 1, 0, 7, 136, 46, },
-+      { 2, 1, 0, 7, 136, 46, },
-+      { 1, 1, 0, 7, 136, 46, },
-+      { 0, 1, 0, 7, 140, 46, },
-+      { 2, 1, 0, 7, 140, 46, },
-+      { 1, 1, 0, 7, 140, 46, },
-+      { 0, 1, 0, 7, 149, 46, },
-+      { 2, 1, 0, 7, 149, 46, },
-+      { 1, 1, 0, 7, 149, 63, },
-+      { 0, 1, 0, 7, 153, 46, },
-+      { 2, 1, 0, 7, 153, 46, },
-+      { 1, 1, 0, 7, 153, 63, },
-+      { 0, 1, 0, 7, 157, 46, },
-+      { 2, 1, 0, 7, 157, 46, },
-+      { 1, 1, 0, 7, 157, 63, },
-+      { 0, 1, 0, 7, 161, 46, },
-+      { 2, 1, 0, 7, 161, 46, },
-+      { 1, 1, 0, 7, 161, 63, },
-+      { 0, 1, 0, 7, 165, 46, },
-+      { 2, 1, 0, 7, 165, 46, },
-+      { 1, 1, 0, 7, 165, 63, },
-+      { 0, 1, 1, 2, 38, 46, },
-+      { 2, 1, 1, 2, 38, 46, },
-+      { 1, 1, 1, 2, 38, 46, },
-+      { 0, 1, 1, 2, 46, 46, },
-+      { 2, 1, 1, 2, 46, 46, },
-+      { 1, 1, 1, 2, 46, 46, },
-+      { 0, 1, 1, 2, 54, 46, },
-+      { 2, 1, 1, 2, 54, 46, },
-+      { 1, 1, 1, 2, 54, 46, },
-+      { 0, 1, 1, 2, 62, 46, },
-+      { 2, 1, 1, 2, 62, 46, },
-+      { 1, 1, 1, 2, 62, 46, },
-+      { 0, 1, 1, 2, 102, 46, },
-+      { 2, 1, 1, 2, 102, 46, },
-+      { 1, 1, 1, 2, 102, 46, },
-+      { 0, 1, 1, 2, 110, 46, },
-+      { 2, 1, 1, 2, 110, 46, },
-+      { 1, 1, 1, 2, 110, 46, },
-+      { 0, 1, 1, 2, 118, 46, },
-+      { 2, 1, 1, 2, 118, 46, },
-+      { 1, 1, 1, 2, 118, 46, },
-+      { 0, 1, 1, 2, 126, 46, },
-+      { 2, 1, 1, 2, 126, 46, },
-+      { 1, 1, 1, 2, 126, 46, },
-+      { 0, 1, 1, 2, 134, 46, },
-+      { 2, 1, 1, 2, 134, 46, },
-+      { 1, 1, 1, 2, 134, 46, },
-+      { 0, 1, 1, 2, 151, 46, },
-+      { 2, 1, 1, 2, 151, 46, },
-+      { 1, 1, 1, 2, 151, 63, },
-+      { 0, 1, 1, 2, 159, 46, },
-+      { 2, 1, 1, 2, 159, 46, },
-+      { 1, 1, 1, 2, 159, 63, },
-+      { 0, 1, 1, 3, 38, 46, },
-+      { 2, 1, 1, 3, 38, 46, },
-+      { 1, 1, 1, 3, 38, 46, },
-+      { 0, 1, 1, 3, 46, 46, },
-+      { 2, 1, 1, 3, 46, 46, },
-+      { 1, 1, 1, 3, 46, 46, },
-+      { 0, 1, 1, 3, 54, 46, },
-+      { 2, 1, 1, 3, 54, 46, },
-+      { 1, 1, 1, 3, 54, 46, },
-+      { 0, 1, 1, 3, 62, 46, },
-+      { 2, 1, 1, 3, 62, 46, },
-+      { 1, 1, 1, 3, 62, 46, },
-+      { 0, 1, 1, 3, 102, 46, },
-+      { 2, 1, 1, 3, 102, 46, },
-+      { 1, 1, 1, 3, 102, 46, },
-+      { 0, 1, 1, 3, 110, 46, },
-+      { 2, 1, 1, 3, 110, 46, },
-+      { 1, 1, 1, 3, 110, 46, },
-+      { 0, 1, 1, 3, 118, 46, },
-+      { 2, 1, 1, 3, 118, 46, },
-+      { 1, 1, 1, 3, 118, 46, },
-+      { 0, 1, 1, 3, 126, 46, },
-+      { 2, 1, 1, 3, 126, 46, },
-+      { 1, 1, 1, 3, 126, 46, },
-+      { 0, 1, 1, 3, 134, 46, },
-+      { 2, 1, 1, 3, 134, 46, },
-+      { 1, 1, 1, 3, 134, 46, },
-+      { 0, 1, 1, 3, 151, 46, },
-+      { 2, 1, 1, 3, 151, 46, },
-+      { 1, 1, 1, 3, 151, 63, },
-+      { 0, 1, 1, 3, 159, 46, },
-+      { 2, 1, 1, 3, 159, 46, },
-+      { 1, 1, 1, 3, 159, 63, },
-+      { 0, 1, 1, 6, 38, 46, },
-+      { 2, 1, 1, 6, 38, 46, },
-+      { 1, 1, 1, 6, 38, 46, },
-+      { 0, 1, 1, 6, 46, 46, },
-+      { 2, 1, 1, 6, 46, 46, },
-+      { 1, 1, 1, 6, 46, 46, },
-+      { 0, 1, 1, 6, 54, 46, },
-+      { 2, 1, 1, 6, 54, 46, },
-+      { 1, 1, 1, 6, 54, 46, },
-+      { 0, 1, 1, 6, 62, 46, },
-+      { 2, 1, 1, 6, 62, 46, },
-+      { 1, 1, 1, 6, 62, 46, },
-+      { 0, 1, 1, 6, 102, 46, },
-+      { 2, 1, 1, 6, 102, 46, },
-+      { 1, 1, 1, 6, 102, 46, },
-+      { 0, 1, 1, 6, 110, 46, },
-+      { 2, 1, 1, 6, 110, 46, },
-+      { 1, 1, 1, 6, 110, 46, },
-+      { 0, 1, 1, 6, 118, 46, },
-+      { 2, 1, 1, 6, 118, 46, },
-+      { 1, 1, 1, 6, 118, 46, },
-+      { 0, 1, 1, 6, 126, 46, },
-+      { 2, 1, 1, 6, 126, 46, },
-+      { 1, 1, 1, 6, 126, 46, },
-+      { 0, 1, 1, 6, 134, 46, },
-+      { 2, 1, 1, 6, 134, 46, },
-+      { 1, 1, 1, 6, 134, 46, },
-+      { 0, 1, 1, 6, 151, 46, },
-+      { 2, 1, 1, 6, 151, 46, },
-+      { 1, 1, 1, 6, 151, 63, },
-+      { 0, 1, 1, 6, 159, 46, },
-+      { 2, 1, 1, 6, 159, 46, },
-+      { 1, 1, 1, 6, 159, 63, },
-+      { 0, 1, 1, 7, 38, 46, },
-+      { 2, 1, 1, 7, 38, 46, },
-+      { 1, 1, 1, 7, 38, 46, },
-+      { 0, 1, 1, 7, 46, 46, },
-+      { 2, 1, 1, 7, 46, 46, },
-+      { 1, 1, 1, 7, 46, 46, },
-+      { 0, 1, 1, 7, 54, 46, },
-+      { 2, 1, 1, 7, 54, 46, },
-+      { 1, 1, 1, 7, 54, 46, },
-+      { 0, 1, 1, 7, 62, 46, },
-+      { 2, 1, 1, 7, 62, 46, },
-+      { 1, 1, 1, 7, 62, 46, },
-+      { 0, 1, 1, 7, 102, 46, },
-+      { 2, 1, 1, 7, 102, 46, },
-+      { 1, 1, 1, 7, 102, 46, },
-+      { 0, 1, 1, 7, 110, 46, },
-+      { 2, 1, 1, 7, 110, 46, },
-+      { 1, 1, 1, 7, 110, 46, },
-+      { 0, 1, 1, 7, 118, 46, },
-+      { 2, 1, 1, 7, 118, 46, },
-+      { 1, 1, 1, 7, 118, 46, },
-+      { 0, 1, 1, 7, 126, 46, },
-+      { 2, 1, 1, 7, 126, 46, },
-+      { 1, 1, 1, 7, 126, 46, },
-+      { 0, 1, 1, 7, 134, 46, },
-+      { 2, 1, 1, 7, 134, 46, },
-+      { 1, 1, 1, 7, 134, 46, },
-+      { 0, 1, 1, 7, 151, 46, },
-+      { 2, 1, 1, 7, 151, 46, },
-+      { 1, 1, 1, 7, 151, 63, },
-+      { 0, 1, 1, 7, 159, 46, },
-+      { 2, 1, 1, 7, 159, 46, },
-+      { 1, 1, 1, 7, 159, 63, },
-+      { 0, 1, 2, 4, 42, 46, },
-+      { 2, 1, 2, 4, 42, 46, },
-+      { 1, 1, 2, 4, 42, 46, },
-+      { 0, 1, 2, 4, 58, 46, },
-+      { 2, 1, 2, 4, 58, 46, },
-+      { 1, 1, 2, 4, 58, 46, },
-+      { 0, 1, 2, 4, 106, 46, },
-+      { 2, 1, 2, 4, 106, 46, },
-+      { 1, 1, 2, 4, 106, 46, },
-+      { 0, 1, 2, 4, 122, 46, },
-+      { 2, 1, 2, 4, 122, 46, },
-+      { 1, 1, 2, 4, 122, 46, },
-+      { 0, 1, 2, 4, 155, 46, },
-+      { 2, 1, 2, 4, 155, 46, },
-+      { 1, 1, 2, 4, 155, 63, },
-+      { 0, 1, 2, 5, 42, 46, },
-+      { 2, 1, 2, 5, 42, 46, },
-+      { 1, 1, 2, 5, 42, 46, },
-+      { 0, 1, 2, 5, 58, 46, },
-+      { 2, 1, 2, 5, 58, 46, },
-+      { 1, 1, 2, 5, 58, 46, },
-+      { 0, 1, 2, 5, 106, 46, },
-+      { 2, 1, 2, 5, 106, 46, },
-+      { 1, 1, 2, 5, 106, 46, },
-+      { 0, 1, 2, 5, 122, 46, },
-+      { 2, 1, 2, 5, 122, 46, },
-+      { 1, 1, 2, 5, 122, 46, },
-+      { 0, 1, 2, 5, 155, 46, },
-+      { 2, 1, 2, 5, 155, 46, },
-+      { 1, 1, 2, 5, 155, 63, },
-+      { 0, 1, 2, 8, 42, 46, },
-+      { 2, 1, 2, 8, 42, 46, },
-+      { 1, 1, 2, 8, 42, 46, },
-+      { 0, 1, 2, 8, 58, 46, },
-+      { 2, 1, 2, 8, 58, 46, },
-+      { 1, 1, 2, 8, 58, 46, },
-+      { 0, 1, 2, 8, 106, 46, },
-+      { 2, 1, 2, 8, 106, 46, },
-+      { 1, 1, 2, 8, 106, 46, },
-+      { 0, 1, 2, 8, 122, 46, },
-+      { 2, 1, 2, 8, 122, 46, },
-+      { 1, 1, 2, 8, 122, 46, },
-+      { 0, 1, 2, 8, 155, 46, },
-+      { 2, 1, 2, 8, 155, 46, },
-+      { 1, 1, 2, 8, 155, 63, },
-+      { 0, 1, 2, 9, 42, 46, },
-+      { 2, 1, 2, 9, 42, 46, },
-+      { 1, 1, 2, 9, 42, 46, },
-+      { 0, 1, 2, 9, 58, 46, },
-+      { 2, 1, 2, 9, 58, 46, },
-+      { 1, 1, 2, 9, 58, 46, },
-+      { 0, 1, 2, 9, 106, 46, },
-+      { 2, 1, 2, 9, 106, 46, },
-+      { 1, 1, 2, 9, 106, 46, },
-+      { 0, 1, 2, 9, 122, 46, },
-+      { 2, 1, 2, 9, 122, 46, },
-+      { 1, 1, 2, 9, 122, 46, },
-+      { 0, 1, 2, 9, 155, 46, },
-+      { 2, 1, 2, 9, 155, 46, },
-+      { 1, 1, 2, 9, 155, 63, },
-+};
-+
-+RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type8);
-+
-+static const u8
-+rtw8814a_pwrtrk_5gd_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10, 11,
-+       11, 12, 13, 13, 14, 15, 15, 16, 17, 17, 18, 19, 19},
-+      {0, 1, 1, 2, 2, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 9, 10, 10,
-+       11, 12, 12, 13, 13, 14, 15, 15, 16, 17, 17, 18},
-+      {0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 12, 12, 13, 14, 14, 15, 16, 16, 17, 17, 18, 19},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_5gd_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-+       17, 18, 19, 20, 21, 22, 23, 24, 25, 25, 25, 25, 25},
-+      {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-+       17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 25, 25, 25},
-+      {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-+       17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 25, 25, 25},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_5gc_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 1, 2, 2, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 10,
-+       11, 12, 13, 14, 15, 15, 15, 15, 16, 16, 17, 18},
-+      {0, 1, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10, 11,
-+       12, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 19, 20},
-+      {0, 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 11,
-+       12, 13, 13, 14, 14, 15, 16, 17, 18, 18, 19, 20, 20},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_5gc_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-+       16, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 25},
-+      {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-+       17, 17, 18, 19, 20, 21, 22, 23, 24, 24, 25, 25, 25},
-+      {0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-+       16, 16, 17, 18, 19, 20, 21, 22, 23, 23, 24, 25, 25},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 1, 2, 2, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17, 17},
-+      {0, 1, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10, 11,
-+       12, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 19, 20},
-+      {0, 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 11,
-+       12, 13, 13, 14, 14, 15, 16, 17, 18, 18, 19, 20, 20},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 3, 3, 4, 5, 6, 7, 8, 8, 9, 10, 11, 12, 13, 14,
-+       15, 15, 16, 17, 18, 18, 19, 20, 21, 22, 23, 23, 24},
-+      {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-+       17, 18, 18, 19, 20, 21, 22, 23, 24, 25, 25, 25, 25},
-+      {0, 1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-+       16, 16, 17, 18, 19, 20, 20, 21, 22, 23, 24, 25, 25},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8,
-+       8, 9, 9, 10, 11, 11, 11, 11, 12, 12, 13, 13, 14},
-+      {0, 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 11,
-+       12, 13, 14, 14, 15, 16, 16, 17, 18, 19, 19, 20, 21},
-+      {0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 12, 12, 13, 14, 14, 15, 16, 16, 17, 17, 18, 19},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 12, 13,
-+       14, 15, 16, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24},
-+      {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-+       17, 18, 19, 20, 21, 22, 23, 23, 24, 25, 25, 25, 25},
-+      {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-+       17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 25, 25, 25},
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2gd_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7,
-+       7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2gd_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2gc_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7,
-+       7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2gc_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7,
-+       7, 8, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7,
-+       7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8,
-+       8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2g_cck_d_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7,
-+       7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2g_cck_d_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2g_cck_c_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 6,
-+       7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2g_cck_c_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7,
-+       7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6,
-+       6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7,
-+       7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7,
-+       7, 8, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
-+       0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 7,
-+       8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14
-+};
-+
-+const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_tbl = {
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5gd_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5gd_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5gd_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5gd_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5gd_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5gd_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5gc_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5gc_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5gc_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5gc_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5gc_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5gc_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5gb_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5gb_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5gb_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5gb_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5gb_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5gb_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5ga_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5ga_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5ga_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5ga_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5ga_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5ga_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_2gd_n = rtw8814a_pwrtrk_2gd_n,
-+      .pwrtrk_2gd_p = rtw8814a_pwrtrk_2gd_p,
-+      .pwrtrk_2gc_n = rtw8814a_pwrtrk_2gc_n,
-+      .pwrtrk_2gc_p = rtw8814a_pwrtrk_2gc_p,
-+      .pwrtrk_2gb_n = rtw8814a_pwrtrk_2gb_n,
-+      .pwrtrk_2gb_p = rtw8814a_pwrtrk_2gb_p,
-+      .pwrtrk_2ga_n = rtw8814a_pwrtrk_2ga_n,
-+      .pwrtrk_2ga_p = rtw8814a_pwrtrk_2ga_p,
-+      .pwrtrk_2g_cckd_n = rtw8814a_pwrtrk_2g_cck_d_n,
-+      .pwrtrk_2g_cckd_p = rtw8814a_pwrtrk_2g_cck_d_p,
-+      .pwrtrk_2g_cckc_n = rtw8814a_pwrtrk_2g_cck_c_n,
-+      .pwrtrk_2g_cckc_p = rtw8814a_pwrtrk_2g_cck_c_p,
-+      .pwrtrk_2g_cckb_n = rtw8814a_pwrtrk_2g_cck_b_n,
-+      .pwrtrk_2g_cckb_p = rtw8814a_pwrtrk_2g_cck_b_p,
-+      .pwrtrk_2g_ccka_n = rtw8814a_pwrtrk_2g_cck_a_n,
-+      .pwrtrk_2g_ccka_p = rtw8814a_pwrtrk_2g_cck_a_p,
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type0_5gd_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type0_5gd_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type0_5gc_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type0_5gc_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type0_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type0_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type0_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type0_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2gd_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2gd_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2gc_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2gc_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2g_cck_d_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2g_cck_d_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2g_cck_c_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2g_cck_c_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type0_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
-+       0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type0_tbl = {
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5gd_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5gd_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5gd_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5gd_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5gd_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5gd_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5gc_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5gc_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5gc_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5gc_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5gc_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5gc_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5gb_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5gb_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5gb_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5gb_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5gb_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5gb_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5ga_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5ga_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5ga_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5ga_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5ga_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5ga_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_2gd_n = rtw8814a_pwrtrk_type0_2gd_n,
-+      .pwrtrk_2gd_p = rtw8814a_pwrtrk_type0_2gd_p,
-+      .pwrtrk_2gc_n = rtw8814a_pwrtrk_type0_2gc_n,
-+      .pwrtrk_2gc_p = rtw8814a_pwrtrk_type0_2gc_p,
-+      .pwrtrk_2gb_n = rtw8814a_pwrtrk_type0_2gb_n,
-+      .pwrtrk_2gb_p = rtw8814a_pwrtrk_type0_2gb_p,
-+      .pwrtrk_2ga_n = rtw8814a_pwrtrk_type0_2ga_n,
-+      .pwrtrk_2ga_p = rtw8814a_pwrtrk_type0_2ga_p,
-+      .pwrtrk_2g_cckd_n = rtw8814a_pwrtrk_type0_2g_cck_d_n,
-+      .pwrtrk_2g_cckd_p = rtw8814a_pwrtrk_type0_2g_cck_d_p,
-+      .pwrtrk_2g_cckc_n = rtw8814a_pwrtrk_type0_2g_cck_c_n,
-+      .pwrtrk_2g_cckc_p = rtw8814a_pwrtrk_type0_2g_cck_c_p,
-+      .pwrtrk_2g_cckb_n = rtw8814a_pwrtrk_type0_2g_cck_b_n,
-+      .pwrtrk_2g_cckb_p = rtw8814a_pwrtrk_type0_2g_cck_b_p,
-+      .pwrtrk_2g_ccka_n = rtw8814a_pwrtrk_type0_2g_cck_a_n,
-+      .pwrtrk_2g_ccka_p = rtw8814a_pwrtrk_type0_2g_cck_a_p,
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type2_5gd_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10, 10, 11, 11, 12, 12,
-+       12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16},
-+      {0, 1, 2, 3, 4, 5, 5, 6, 6, 7, 8, 9, 9, 10, 10, 10, 10,
-+       11, 11, 12, 12, 13, 14, 15, 16, 16, 16, 16, 16, 16},
-+      {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 10, 10, 11, 11, 11, 12,
-+       12, 13, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type2_5gd_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10, 11, 12, 13, 14,
-+       15, 16, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 22},
-+      {0, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
-+       15, 16, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 22},
-+      {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-+       17, 18, 19, 20, 21, 22, 23, 23, 23, 23, 23, 23, 23},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type2_5gc_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 9, 10, 10, 11, 11, 12,
-+       12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
-+      {0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 9, 10, 10, 11, 11, 12,
-+       13, 13, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15},
-+      {0, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9, 10, 11, 11,
-+       12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type2_5gc_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14,
-+       15, 16, 17, 18, 19, 20, 21, 21, 21, 21, 21, 21, 21},
-+      {0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 12, 13, 14,
-+       15, 16, 17, 18, 19, 20, 20, 20, 21, 21, 21, 21, 21},
-+      {0, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
-+       15, 16, 17, 18, 19, 20, 21, 21, 21, 21, 21, 21, 21},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type2_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 11, 12, 13,
-+       13, 13, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15},
-+      {0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 9, 10, 10, 11, 11, 12,
-+       13, 13, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15},
-+      {0, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9, 10, 11, 11,
-+       12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type2_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 15,
-+       16, 17, 18, 19, 20, 21, 21, 21, 21, 21, 21, 21, 21},
-+      {0, 0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 10, 11, 12, 13,
-+       14, 15, 16, 17, 18, 19, 20, 20, 20, 20, 20, 20, 20},
-+      {0, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14,
-+       15, 16, 17, 18, 19, 20, 21, 21, 21, 21, 21, 21, 21},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type2_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 3, 4, 5, 5, 6, 7, 7, 8, 9, 10, 10, 11, 11, 11,
-+       12, 13, 13, 13, 13, 14, 15, 15, 15, 15, 15, 15, 15},
-+      {0, 1, 2, 3, 3, 4, 5, 6, 7, 8, 8, 9, 10, 10, 11, 12, 12,
-+       12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+      {0, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 11, 11, 12,
-+       12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type2_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14,
-+       15, 15, 16, 17, 18, 18, 19, 19, 20, 20, 20, 20, 20},
-+      {0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14,
-+       15, 16, 16, 17, 18, 19, 20, 20, 20, 20, 20, 20, 20},
-+      {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 15,
-+       15, 16, 17, 18, 19, 19, 20, 20, 20, 20, 20, 20, 20},
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2gd_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5,
-+       6, 6, 7, 8, 9, 10, 11, 11, 11, 11, 11, 11, 11
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2gd_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 9, 10,
-+       10, 11, 12, 12, 13, 14, 14, 14, 14, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2gc_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 3, 3, 4, 5, 6, 6, 6, 7, 7, 8, 8, 9, 10,
-+       10, 11, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2gc_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 3, 3, 4, 4, 4, 5, 5, 6, 7, 8, 8, 9, 10, 10,
-+       11, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 8,
-+       9, 9, 10, 10, 11, 11, 12, 12, 12, 13, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9, 10,
-+       10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 9, 9,
-+       10, 11, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 3, 3, 4, 4, 4, 5, 6, 6, 7, 7, 8, 8, 9, 10,
-+       11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2g_cck_d_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 8,
-+       9, 9, 9, 9, 9, 9, 10, 10, 11, 11, 12, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2g_cck_d_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       10, 11, 12, 12, 13, 14, 14, 14, 14, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2g_cck_c_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 2, 2, 3, 4, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9, 10,
-+       10, 11, 11, 11, 12, 13, 13, 13, 13, 13, 13, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2g_cck_c_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10,
-+       10, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 10,
-+       10, 10, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 8, 9, 9, 10,
-+       10, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 7, 8, 9, 9, 9, 9,
-+       10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type2_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
-+       0, 0, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 9, 10, 10,
-+       11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13
-+};
-+
-+const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type2_tbl = {
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5gd_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5gd_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5gd_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5gd_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5gd_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5gd_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5gc_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5gc_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5gc_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5gc_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5gc_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5gc_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5gb_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5gb_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5gb_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5gb_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5gb_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5gb_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5ga_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5ga_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5ga_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5ga_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5ga_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5ga_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_2gd_n = rtw8814a_pwrtrk_type2_2gd_n,
-+      .pwrtrk_2gd_p = rtw8814a_pwrtrk_type2_2gd_p,
-+      .pwrtrk_2gc_n = rtw8814a_pwrtrk_type2_2gc_n,
-+      .pwrtrk_2gc_p = rtw8814a_pwrtrk_type2_2gc_p,
-+      .pwrtrk_2gb_n = rtw8814a_pwrtrk_type2_2gb_n,
-+      .pwrtrk_2gb_p = rtw8814a_pwrtrk_type2_2gb_p,
-+      .pwrtrk_2ga_n = rtw8814a_pwrtrk_type2_2ga_n,
-+      .pwrtrk_2ga_p = rtw8814a_pwrtrk_type2_2ga_p,
-+      .pwrtrk_2g_cckd_n = rtw8814a_pwrtrk_type2_2g_cck_d_n,
-+      .pwrtrk_2g_cckd_p = rtw8814a_pwrtrk_type2_2g_cck_d_p,
-+      .pwrtrk_2g_cckc_n = rtw8814a_pwrtrk_type2_2g_cck_c_n,
-+      .pwrtrk_2g_cckc_p = rtw8814a_pwrtrk_type2_2g_cck_c_p,
-+      .pwrtrk_2g_cckb_n = rtw8814a_pwrtrk_type2_2g_cck_b_n,
-+      .pwrtrk_2g_cckb_p = rtw8814a_pwrtrk_type2_2g_cck_b_p,
-+      .pwrtrk_2g_ccka_n = rtw8814a_pwrtrk_type2_2g_cck_a_n,
-+      .pwrtrk_2g_ccka_p = rtw8814a_pwrtrk_type2_2g_cck_a_p,
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type5_5gd_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 3, 3, 3, 4, 6, 6, 7, 7, 8, 9, 10, 11, 12, 13, 13, 14,
-+       14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15},
-+      {0, 4, 5, 6, 7, 7, 8, 7, 8, 10, 11, 12, 12, 13, 13, 14, 14,
-+       15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
-+      {0, 5, 5, 6, 7, 8, 9, 9, 10, 11, 12, 13, 13, 14, 15, 15, 16,
-+       16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type5_5gd_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 0, 1, 2, 2, 3, 4, 5, 5, 6, 7, 9, 10, 10, 11, 12,
-+       12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
-+      {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 11, 12,
-+       12, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14},
-+      {0, 0, 0, 1, 1, 2, 2, 3, 5, 7, 8, 9, 10, 11, 12, 13, 13,
-+       13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type5_5gc_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 1, 2, 3, 3, 4, 6, 7, 7, 8, 9, 9, 9, 10, 10, 10,
-+       10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 1, 2, 3, 3, 7, 7, 8, 8, 9, 11, 12, 12, 13, 14, 14, 15,
-+       15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
-+      {0, 0, 1, 2, 3, 4, 5, 7, 8, 8, 10, 11, 12, 12, 13, 13, 14,
-+       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type5_5gc_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 9, 11, 11,
-+       11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13},
-+      {0, 0, 1, 2, 3, 3, 5, 5, 6, 8, 8, 9, 10, 11, 13, 13, 13,
-+       13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+      {0, 0, 1, 2, 3, 4, 4, 5, 7, 8, 9, 9, 10, 11, 12, 12, 12,
-+       12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type5_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 1, 2, 2, 2, 3, 4, 5, 6, 7, 9, 10, 10, 10, 10, 10,
-+       10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 1, 2, 3, 3, 7, 7, 8, 8, 9, 11, 12, 12, 13, 14, 14, 15,
-+       15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
-+      {0, 0, 1, 2, 3, 4, 5, 7, 8, 8, 10, 11, 12, 12, 13, 13, 14,
-+       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type5_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 1, 1, 2, 2, 4, 5, 6, 6, 7, 8, 9, 10, 11, 11, 11,
-+       12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 0, 2, 3, 4, 5, 6, 8, 8, 9, 9, 11, 12, 13, 13, 13,
-+       13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+      {0, 0, 0, 1, 2, 3, 3, 4, 6, 7, 8, 9, 10, 11, 12, 12, 12,
-+       12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type5_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 0, 1, 2, 3, 3, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12},
-+      {0, 2, 3, 4, 5, 7, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 17,
-+       17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18},
-+      {0, 1, 2, 3, 3, 4, 6, 7, 8, 8, 10, 11, 11, 12, 13, 13, 13,
-+       13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type5_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 1, 3, 3, 3, 5, 5, 6, 6, 8, 8, 9, 10, 11, 11, 11,
-+       12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 1, 2, 3, 4, 4, 5, 6, 7, 8, 8, 9, 11, 12, 13, 14, 15,
-+       15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
-+      {0, 0, 1, 3, 3, 4, 5, 5, 6, 7, 7, 8, 10, 10, 11, 11, 11,
-+       11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13},
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2gd_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 2, 2, 3, 4, 4, 5, 6, 6, 7, 7, 7, 8, 9, 9, 9,
-+       9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2gd_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 2, 3, 4, 4, 5, 6, 6, 7, 7, 8, 8,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2gc_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 2, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10, 10,
-+       10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2gc_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 8, 8, 9, 9, 9,
-+       9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 2, 2, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 10, 10, 10,
-+       10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 8, 9, 9, 9, 9,
-+       9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 10, 10,
-+       10, 11, 11, 11, 11, 111, 12, 12, 12, 12, 12, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 8, 9, 9, 9,
-+       9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2g_cck_d_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 8, 9, 9, 9, 9,
-+       10, 10, 10, 10, 10, 11, 11, 10, 11, 11, 11, 11
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2g_cck_d_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 8,
-+       9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2g_cck_c_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 8, 8, 9, 10, 10, 10,
-+       10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2g_cck_c_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 8,
-+       9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 2, 3, 4, 4, 5, 6, 6, 6, 7, 7, 8, 8, 9, 10, 10, 10,
-+       10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 8,
-+       9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 9, 9, 10,
-+       10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type5_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
-+       0, 1, 1, 2, 2, 2, 3, 4, 4, 5, 6, 7, 8, 8, 9, 9, 9,
-+       9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10
-+};
-+
-+const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type5_tbl = {
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5gd_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5gd_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5gd_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5gd_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5gd_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5gd_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5gc_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5gc_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5gc_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5gc_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5gc_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5gc_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5gb_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5gb_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5gb_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5gb_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5gb_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5gb_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5ga_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5ga_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5ga_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5ga_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5ga_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5ga_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_2gd_n = rtw8814a_pwrtrk_type5_2gd_n,
-+      .pwrtrk_2gd_p = rtw8814a_pwrtrk_type5_2gd_p,
-+      .pwrtrk_2gc_n = rtw8814a_pwrtrk_type5_2gc_n,
-+      .pwrtrk_2gc_p = rtw8814a_pwrtrk_type5_2gc_p,
-+      .pwrtrk_2gb_n = rtw8814a_pwrtrk_type5_2gb_n,
-+      .pwrtrk_2gb_p = rtw8814a_pwrtrk_type5_2gb_p,
-+      .pwrtrk_2ga_n = rtw8814a_pwrtrk_type5_2ga_n,
-+      .pwrtrk_2ga_p = rtw8814a_pwrtrk_type5_2ga_p,
-+      .pwrtrk_2g_cckd_n = rtw8814a_pwrtrk_type5_2g_cck_d_n,
-+      .pwrtrk_2g_cckd_p = rtw8814a_pwrtrk_type5_2g_cck_d_p,
-+      .pwrtrk_2g_cckc_n = rtw8814a_pwrtrk_type5_2g_cck_c_n,
-+      .pwrtrk_2g_cckc_p = rtw8814a_pwrtrk_type5_2g_cck_c_p,
-+      .pwrtrk_2g_cckb_n = rtw8814a_pwrtrk_type5_2g_cck_b_n,
-+      .pwrtrk_2g_cckb_p = rtw8814a_pwrtrk_type5_2g_cck_b_p,
-+      .pwrtrk_2g_ccka_n = rtw8814a_pwrtrk_type5_2g_cck_a_n,
-+      .pwrtrk_2g_ccka_p = rtw8814a_pwrtrk_type5_2g_cck_a_p,
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type7_5gd_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type7_5gd_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type7_5gc_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type7_5gc_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type7_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type7_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type7_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+      {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
-+       8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type7_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2gd_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2gd_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2gc_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2gc_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2g_cck_d_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2g_cck_d_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2g_cck_c_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2g_cck_c_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
-+       7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type7_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
-+       0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
-+       8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
-+};
-+
-+const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type7_tbl = {
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5gd_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5gd_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5gd_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5gd_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5gd_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5gd_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5gc_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5gc_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5gc_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5gc_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5gc_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5gc_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5gb_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5gb_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5gb_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5gb_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5gb_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5gb_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5ga_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5ga_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5ga_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5ga_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5ga_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5ga_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_2gd_n = rtw8814a_pwrtrk_type7_2gd_n,
-+      .pwrtrk_2gd_p = rtw8814a_pwrtrk_type7_2gd_p,
-+      .pwrtrk_2gc_n = rtw8814a_pwrtrk_type7_2gc_n,
-+      .pwrtrk_2gc_p = rtw8814a_pwrtrk_type7_2gc_p,
-+      .pwrtrk_2gb_n = rtw8814a_pwrtrk_type7_2gb_n,
-+      .pwrtrk_2gb_p = rtw8814a_pwrtrk_type7_2gb_p,
-+      .pwrtrk_2ga_n = rtw8814a_pwrtrk_type7_2ga_n,
-+      .pwrtrk_2ga_p = rtw8814a_pwrtrk_type7_2ga_p,
-+      .pwrtrk_2g_cckd_n = rtw8814a_pwrtrk_type7_2g_cck_d_n,
-+      .pwrtrk_2g_cckd_p = rtw8814a_pwrtrk_type7_2g_cck_d_p,
-+      .pwrtrk_2g_cckc_n = rtw8814a_pwrtrk_type7_2g_cck_c_n,
-+      .pwrtrk_2g_cckc_p = rtw8814a_pwrtrk_type7_2g_cck_c_p,
-+      .pwrtrk_2g_cckb_n = rtw8814a_pwrtrk_type7_2g_cck_b_n,
-+      .pwrtrk_2g_cckb_p = rtw8814a_pwrtrk_type7_2g_cck_b_p,
-+      .pwrtrk_2g_ccka_n = rtw8814a_pwrtrk_type7_2g_cck_a_n,
-+      .pwrtrk_2g_ccka_p = rtw8814a_pwrtrk_type7_2g_cck_a_p,
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type8_5gd_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 3, 4, 4, 6, 7, 7, 8, 8, 9, 10, 10, 11, 11, 12,
-+       13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
-+      {0, 1, 2, 3, 4, 4, 6, 7, 7, 8, 9, 9, 10, 10, 11, 11, 12,
-+       12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
-+      {0, 1, 2, 3, 4, 4, 5, 6, 6, 7, 7, 8, 8, 8, 9, 10, 10,
-+       10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type8_5gd_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 2, 4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 14,
-+       15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
-+      {0, 0, 1, 2, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-+       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+      {0, 0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-+       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type8_5gc_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 4, 4, 5, 6, 7, 7, 8, 8, 9, 9, 10, 11, 11, 12,
-+       12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
-+      {0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11,
-+       12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
-+      {0, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 8, 9, 10, 10, 11, 11,
-+       11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type8_5gc_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 2, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
-+       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+      {0, 0, 1, 3, 4, 4, 5, 6, 7, 7, 8, 10, 11, 12, 13, 14,
-+       15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
-+      {0, 0, 1, 2, 4, 5, 5, 6, 6, 7, 7, 9, 10, 11, 12, 13, 14,
-+       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type8_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 8, 9, 9, 10, 11, 11,
-+       12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11,
-+       12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
-+      {0, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 8, 9, 10, 10, 11, 11,
-+       11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type8_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-+       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+      {0, 0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 10, 11, 11, 13, 13,
-+       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+      {0, 0, 1, 2, 3, 4, 4, 5, 6, 7, 8, 10, 10, 11, 13, 13,
-+       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type8_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9, 10, 11, 11,
-+       12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
-+      {0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 9, 10, 10, 10, 11, 11,
-+       12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
-+      {0, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 10, 10, 11, 12,
-+       12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
-+};
-+
-+static const u8
-+rtw8814a_pwrtrk_type8_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
-+      {0, 0, 1, 2, 3, 3, 4, 5, 6, 7, 7, 9, 10, 11, 12, 13, 14,
-+       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+      {0, 0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 13,
-+       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+      {0, 0, 1, 2, 3, 3, 4, 4, 6, 7, 7, 9, 10, 11, 12, 13, 14,
-+       14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2gd_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5,
-+       6, 6, 7, 8, 9, 10, 11, 11, 11, 11, 11, 11, 11
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2gd_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 9, 10,
-+       10, 11, 12, 12, 13, 14, 14, 14, 14, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2gc_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 3, 3, 4, 5, 6, 6, 6, 7, 7, 8, 8, 9, 10,
-+       10, 11, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2gc_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 3, 3, 4, 4, 4, 5, 5, 6, 7, 8, 8, 9, 10, 10,
-+       11, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 8,
-+       9, 9, 10, 10, 11, 11, 12, 12, 12, 13, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9, 10,
-+       10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 9, 9,
-+       10, 11, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 3, 3, 4, 4, 4, 5, 6, 6, 7, 7, 8, 8, 9, 10,
-+       11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2g_cck_d_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 8,
-+       9, 9, 9, 9, 9, 9, 10, 10, 11, 11, 12, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2g_cck_d_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10,
-+       10, 11, 12, 12, 13, 14, 14, 14, 14, 14, 14, 14
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2g_cck_c_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 2, 2, 3, 4, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9, 10,
-+       10, 11, 11, 11, 12, 13, 13, 13, 13, 13, 13, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2g_cck_c_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 0, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10,
-+       10, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 10,
-+       10, 10, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 8, 9, 9, 10,
-+       10, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
-+      0, 1, 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 7, 8, 9, 9, 9, 9,
-+       10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12
-+};
-+
-+static const u8 rtw8814a_pwrtrk_type8_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
-+       0, 0, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 9, 10, 10,
-+       11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13
-+};
-+
-+const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type8_tbl = {
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5gd_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5gd_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gd_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5gd_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5gd_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5gd_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gd_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5gd_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5gc_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5gc_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gc_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5gc_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5gc_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5gc_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gc_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5gc_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5gb_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5gb_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5gb_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5gb_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5gb_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5gb_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5ga_n[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5ga_n[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5ga_n[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5ga_p[RTW_PWR_TRK_5G_1],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5ga_p[RTW_PWR_TRK_5G_2],
-+      .pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5ga_p[RTW_PWR_TRK_5G_3],
-+      .pwrtrk_2gd_n = rtw8814a_pwrtrk_type8_2gd_n,
-+      .pwrtrk_2gd_p = rtw8814a_pwrtrk_type8_2gd_p,
-+      .pwrtrk_2gc_n = rtw8814a_pwrtrk_type8_2gc_n,
-+      .pwrtrk_2gc_p = rtw8814a_pwrtrk_type8_2gc_p,
-+      .pwrtrk_2gb_n = rtw8814a_pwrtrk_type8_2gb_n,
-+      .pwrtrk_2gb_p = rtw8814a_pwrtrk_type8_2gb_p,
-+      .pwrtrk_2ga_n = rtw8814a_pwrtrk_type8_2ga_n,
-+      .pwrtrk_2ga_p = rtw8814a_pwrtrk_type8_2ga_p,
-+      .pwrtrk_2g_cckd_n = rtw8814a_pwrtrk_type8_2g_cck_d_n,
-+      .pwrtrk_2g_cckd_p = rtw8814a_pwrtrk_type8_2g_cck_d_p,
-+      .pwrtrk_2g_cckc_n = rtw8814a_pwrtrk_type8_2g_cck_c_n,
-+      .pwrtrk_2g_cckc_p = rtw8814a_pwrtrk_type8_2g_cck_c_p,
-+      .pwrtrk_2g_cckb_n = rtw8814a_pwrtrk_type8_2g_cck_b_n,
-+      .pwrtrk_2g_cckb_p = rtw8814a_pwrtrk_type8_2g_cck_b_p,
-+      .pwrtrk_2g_ccka_n = rtw8814a_pwrtrk_type8_2g_cck_a_n,
-+      .pwrtrk_2g_ccka_p = rtw8814a_pwrtrk_type8_2g_cck_a_p,
-+};
-+
-+static const struct rtw_pwr_seq_cmd init_power_on_8814a[] = {
-+      {0x10c2,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_USB_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(1), BIT(1)},
-+      {0xFFFF,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       0,
-+       RTW_PWR_CMD_END, 0, 0},
-+};
-+
-+static const struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8814a[] = {
-+      {0x0012,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(6), BIT(6)},
-+      {0x0015,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(5), 0},
-+      {0x0015,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(6), 0},
-+      {0x0023,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(4), 0},
-+      {0x0046,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xFF, 0x00},
-+      {0x0062,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xFF, 0x00},
-+      {0x0005,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_PCI_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(2), 0},
-+      {0x0005,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(3), 0},
-+      {0x0301,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_PCI_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xFF, 0},
-+      {0x0071,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_PCI_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(2), 0},
-+      {0xFFFF,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       0,
-+       RTW_PWR_CMD_END, 0, 0},
-+};
-+
-+static const struct rtw_pwr_seq_cmd trans_cardemu_to_act_8814a[] = {
-+      {0x0005,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(2), 0},
-+      {0x0006,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_POLLING, BIT(1), BIT(1)},
-+      {0x0005,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(3), 0},
-+      {0x00F0,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(7), 0},
-+      {0x0081,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0x30, 0x20},
-+      {0x0005,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
-+      {0x0005,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_POLLING, BIT(0), 0},
-+      {0xFFFF,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       0,
-+       RTW_PWR_CMD_END, 0, 0},
-+};
-+
-+static const struct rtw_pwr_seq_cmd trans_act_to_cardemu_8814a[] = {
-+      {0x0c00,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xFF, 0x04},
-+      {0x0e00,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xFF, 0x04},
-+      {0x1002,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(0), 0},
-+      {0x0002,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_DELAY, 1, RTW_PWR_DELAY_US},
-+      {0x1002,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_PCI_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(1), 0},
-+      {0x001F,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xFF, 0},
-+      {0x0007,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xFF, 0x28},
-+      {0x0008,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_USB_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0x02, 0},
-+      {0x0066,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_USB_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(7), 0},
-+      {0x0041,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_USB_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(4), 0},
-+      {0x0042,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_USB_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(1), 0},
-+      {0x004e,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_USB_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(5), BIT(5)},
-+      {0x0041,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_USB_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(0), 0},
-+      {0x0005,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(1), BIT(1)},
-+      {0x0005,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_POLLING, BIT(1), 0},
-+      {0xFFFF,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       0,
-+       RTW_PWR_CMD_END, 0, 0},
-+};
-+
-+static const struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8814a[] = {
-+      {0x0003,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(2), 0},
-+      {0x0080,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xFF, 0x01},
-+      {0x0081,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xFF, 0x30},
-+      {0x0045,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xFF, 0x00},
-+      {0x0046,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xFF, 0xff},
-+      {0x0047,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xFF, 0},
-+      {0x0015,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(6), BIT(6)},
-+      {0x0015,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(5), BIT(5)},
-+      {0x0012,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(6), 0},
-+      {0x0023,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(4), BIT(4)},
-+      {0x0008,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(1), 0},
-+      {0x0007,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xFF, 0x20},
-+      {0x001f,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(1), 0},
-+      {0x0020,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(1), 0},
-+      {0x0021,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(1), 0},
-+      {0x0076,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(1), 0},
-+      {0x0091,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, 0xA0, 0xA0},
-+      {0x0070,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(3), BIT(3)},
-+      {0x0005,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       RTW_PWR_ADDR_MAC,
-+       RTW_PWR_CMD_WRITE, BIT(3), BIT(3)},
-+      {0xFFFF,
-+       RTW_PWR_CUT_ALL_MSK,
-+       RTW_PWR_INTF_ALL_MSK,
-+       0,
-+       RTW_PWR_CMD_END, 0, 0},
-+};
-+
-+const struct rtw_pwr_seq_cmd * const card_enable_flow_8814a[] = {
-+      init_power_on_8814a,
-+      trans_carddis_to_cardemu_8814a,
-+      trans_cardemu_to_act_8814a,
-+      NULL
-+};
-+
-+const struct rtw_pwr_seq_cmd * const card_disable_flow_8814a[] = {
-+      trans_act_to_cardemu_8814a,
-+      trans_cardemu_to_carddis_8814a,
-+      NULL
-+};
---- /dev/null
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8814a_table.h
-@@ -0,0 +1,40 @@
-+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
-+/* Copyright(c) 2025  Realtek Corporation
-+ */
-+
-+#ifndef __RTW8814A_TABLE_H__
-+#define __RTW8814A_TABLE_H__
-+
-+extern const struct rtw_table rtw8814a_mac_tbl;
-+extern const struct rtw_table rtw8814a_agc_tbl;
-+extern const struct rtw_table rtw8814a_bb_tbl;
-+extern const struct rtw_table rtw8814a_bb_pg_tbl;
-+extern const struct rtw_table rtw8814a_bb_pg_type0_tbl;
-+extern const struct rtw_table rtw8814a_bb_pg_type2_tbl;
-+extern const struct rtw_table rtw8814a_bb_pg_type3_tbl;
-+extern const struct rtw_table rtw8814a_bb_pg_type4_tbl;
-+extern const struct rtw_table rtw8814a_bb_pg_type5_tbl;
-+extern const struct rtw_table rtw8814a_bb_pg_type7_tbl;
-+extern const struct rtw_table rtw8814a_bb_pg_type8_tbl;
-+extern const struct rtw_table rtw8814a_rf_a_tbl;
-+extern const struct rtw_table rtw8814a_rf_b_tbl;
-+extern const struct rtw_table rtw8814a_rf_c_tbl;
-+extern const struct rtw_table rtw8814a_rf_d_tbl;
-+extern const struct rtw_table rtw8814a_txpwr_lmt_tbl;
-+extern const struct rtw_table rtw8814a_txpwr_lmt_type0_tbl;
-+extern const struct rtw_table rtw8814a_txpwr_lmt_type1_tbl;
-+extern const struct rtw_table rtw8814a_txpwr_lmt_type2_tbl;
-+extern const struct rtw_table rtw8814a_txpwr_lmt_type3_tbl;
-+extern const struct rtw_table rtw8814a_txpwr_lmt_type5_tbl;
-+extern const struct rtw_table rtw8814a_txpwr_lmt_type7_tbl;
-+extern const struct rtw_table rtw8814a_txpwr_lmt_type8_tbl;
-+extern const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_tbl;
-+extern const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type0_tbl;
-+extern const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type2_tbl;
-+extern const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type5_tbl;
-+extern const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type7_tbl;
-+extern const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type8_tbl;
-+extern const struct rtw_pwr_seq_cmd * const card_disable_flow_8814a[];
-+extern const struct rtw_pwr_seq_cmd * const card_enable_flow_8814a[];
-+
-+#endif
diff --git a/package/kernel/mac80211/patches/rtl/088-v6.15-wifi-rtw88-Add-rtw8814a.-c-h.patch b/package/kernel/mac80211/patches/rtl/088-v6.15-wifi-rtw88-Add-rtw8814a.-c-h.patch
deleted file mode 100644 (file)
index 3d8ccd8..0000000
+++ /dev/null
@@ -1,2343 +0,0 @@
-From 1a75457846424b77978d0ba1feb836913ed60637 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Fri, 7 Mar 2025 02:24:40 +0200
-Subject: [PATCH] wifi: rtw88: Add rtw8814a.{c,h}
-
-These contain all the logic for the RTL8814A chip.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/rtw8814a.c | 2257 +++++++++++++++++
- drivers/net/wireless/realtek/rtw88/rtw8814a.h |   62 +
- 2 files changed, 2319 insertions(+)
- create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8814a.c
- create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8814a.h
-
---- /dev/null
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8814a.c
-@@ -0,0 +1,2257 @@
-+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
-+/* Copyright(c) 2025  Realtek Corporation
-+ */
-+
-+#include <linux/usb.h>
-+#include "main.h"
-+#include "coex.h"
-+#include "tx.h"
-+#include "phy.h"
-+#include "rtw8814a.h"
-+#include "rtw8814a_table.h"
-+#include "rtw88xxa.h"
-+#include "reg.h"
-+#include "debug.h"
-+#include "efuse.h"
-+#include "regd.h"
-+#include "usb.h"
-+
-+static void rtw8814a_efuse_grant(struct rtw_dev *rtwdev, bool on)
-+{
-+      if (on) {
-+              rtw_write8(rtwdev, REG_EFUSE_ACCESS, EFUSE_ACCESS_ON);
-+
-+              rtw_write16_set(rtwdev, REG_SYS_FUNC_EN, BIT_FEN_ELDR);
-+              rtw_write16_set(rtwdev, REG_SYS_CLKR,
-+                              BIT_LOADER_CLK_EN | BIT_ANA8M);
-+      } else {
-+              rtw_write8(rtwdev, REG_EFUSE_ACCESS, EFUSE_ACCESS_OFF);
-+      }
-+}
-+
-+static void rtw8814a_read_rfe_type(struct rtw_dev *rtwdev)
-+{
-+      struct rtw_efuse *efuse = &rtwdev->efuse;
-+
-+      if (!(efuse->rfe_option & BIT(7)))
-+              return;
-+
-+      if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE)
-+              efuse->rfe_option = 0;
-+      else if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB)
-+              efuse->rfe_option = 1;
-+}
-+
-+static void rtw8814a_read_amplifier_type(struct rtw_dev *rtwdev)
-+{
-+      struct rtw_efuse *efuse = &rtwdev->efuse;
-+
-+      switch (efuse->rfe_option) {
-+      case 1:
-+              /* Internal 2G */
-+              efuse->pa_type_2g = 0;
-+              efuse->lna_type_2g = 0;
-+              /* External 5G */
-+              efuse->pa_type_5g = BIT(0);
-+              efuse->lna_type_5g = BIT(3);
-+              break;
-+      case 2 ... 5:
-+              /* External everything */
-+              efuse->pa_type_2g = BIT(4);
-+              efuse->lna_type_2g = BIT(3);
-+              efuse->pa_type_5g = BIT(0);
-+              efuse->lna_type_5g = BIT(3);
-+              break;
-+      case 6:
-+              efuse->lna_type_5g = BIT(3);
-+              break;
-+      default:
-+              break;
-+      }
-+}
-+
-+static void rtw8814a_read_rf_type(struct rtw_dev *rtwdev,
-+                                struct rtw8814a_efuse *map)
-+{
-+      struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
-+      struct rtw_hal *hal = &rtwdev->hal;
-+
-+      switch (map->trx_antenna_option) {
-+      case 0xff: /* 4T4R */
-+      case 0xee: /* 3T3R */
-+              if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB &&
-+                  rtwusb->udev->speed != USB_SPEED_SUPER)
-+                      hal->rf_type = RF_2T2R;
-+              else
-+                      hal->rf_type = RF_3T3R;
-+
-+              break;
-+      case 0x66: /* 2T2R */
-+      case 0x6f: /* 2T4R */
-+      default:
-+              hal->rf_type = RF_2T2R;
-+              break;
-+      }
-+
-+      hal->rf_path_num = 4;
-+      hal->rf_phy_num = 4;
-+
-+      if (hal->rf_type == RF_3T3R) {
-+              hal->antenna_rx = BB_PATH_ABC;
-+              hal->antenna_tx = BB_PATH_ABC;
-+      } else {
-+              hal->antenna_rx = BB_PATH_AB;
-+              hal->antenna_tx = BB_PATH_AB;
-+      }
-+}
-+
-+static void rtw8814a_init_hwcap(struct rtw_dev *rtwdev)
-+{
-+      struct rtw_efuse *efuse = &rtwdev->efuse;
-+      struct rtw_hal *hal = &rtwdev->hal;
-+
-+      efuse->hw_cap.bw = BIT(RTW_CHANNEL_WIDTH_20) |
-+                         BIT(RTW_CHANNEL_WIDTH_40) |
-+                         BIT(RTW_CHANNEL_WIDTH_80);
-+      efuse->hw_cap.ptcl = EFUSE_HW_CAP_PTCL_VHT;
-+
-+      if (hal->rf_type == RF_3T3R)
-+              efuse->hw_cap.nss = 3;
-+      else
-+              efuse->hw_cap.nss = 2;
-+
-+      rtw_dbg(rtwdev, RTW_DBG_EFUSE,
-+              "hw cap: hci=0x%02x, bw=0x%02x, ptcl=0x%02x, ant_num=%d, nss=%d\n",
-+              efuse->hw_cap.hci, efuse->hw_cap.bw, efuse->hw_cap.ptcl,
-+              efuse->hw_cap.ant_num, efuse->hw_cap.nss);
-+}
-+
-+static int rtw8814a_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
-+{
-+      struct rtw_efuse *efuse = &rtwdev->efuse;
-+      struct rtw8814a_efuse *map;
-+      int i;
-+
-+      if (rtw_dbg_is_enabled(rtwdev, RTW_DBG_EFUSE))
-+              print_hex_dump(KERN_INFO, "", DUMP_PREFIX_OFFSET, 16, 1,
-+                             log_map, rtwdev->chip->log_efuse_size, true);
-+
-+      map = (struct rtw8814a_efuse *)log_map;
-+
-+      efuse->usb_mode_switch = u8_get_bits(map->usb_mode, BIT(4));
-+      efuse->rfe_option = map->rfe_option;
-+      efuse->rf_board_option = map->rf_board_option;
-+      efuse->crystal_cap = map->xtal_k;
-+      efuse->channel_plan = map->channel_plan;
-+      efuse->country_code[0] = map->country_code[0];
-+      efuse->country_code[1] = map->country_code[1];
-+      efuse->bt_setting = map->rf_bt_setting;
-+      efuse->regd = map->rf_board_option & 0x7;
-+      efuse->thermal_meter[RF_PATH_A] = map->thermal_meter;
-+      efuse->thermal_meter_k = map->thermal_meter;
-+      efuse->tx_bb_swing_setting_2g = map->tx_bb_swing_setting_2g;
-+      efuse->tx_bb_swing_setting_5g = map->tx_bb_swing_setting_5g;
-+
-+      rtw8814a_read_rfe_type(rtwdev);
-+      rtw8814a_read_amplifier_type(rtwdev);
-+
-+      /* Override rtw_chip_parameter_setup() */
-+      rtw8814a_read_rf_type(rtwdev, map);
-+
-+      rtw8814a_init_hwcap(rtwdev);
-+
-+      for (i = 0; i < 4; i++)
-+              efuse->txpwr_idx_table[i] = map->txpwr_idx_table[i];
-+
-+      switch (rtw_hci_type(rtwdev)) {
-+      case RTW_HCI_TYPE_USB:
-+              ether_addr_copy(efuse->addr, map->u.mac_addr);
-+              break;
-+      case RTW_HCI_TYPE_PCIE:
-+              ether_addr_copy(efuse->addr, map->e.mac_addr);
-+              break;
-+      case RTW_HCI_TYPE_SDIO:
-+      default:
-+              /* unsupported now */
-+              return -EOPNOTSUPP;
-+      }
-+
-+      return 0;
-+}
-+
-+static void rtw8814a_init_rfe_reg(struct rtw_dev *rtwdev)
-+{
-+      u8 rfe_option = rtwdev->efuse.rfe_option;
-+
-+      if (rfe_option == 2 || rfe_option == 1) {
-+              rtw_write32_mask(rtwdev, 0x1994, 0xf, 0xf);
-+              rtw_write8_set(rtwdev, REG_GPIO_MUXCFG + 2, 0xf0);
-+      } else if (rfe_option == 0) {
-+              rtw_write32_mask(rtwdev, 0x1994, 0xf, 0xf);
-+              rtw_write8_set(rtwdev, REG_GPIO_MUXCFG + 2, 0xc0);
-+      }
-+}
-+
-+#define RTW_TXSCALE_SIZE 37
-+static const u32 rtw8814a_txscale_tbl[RTW_TXSCALE_SIZE] = {
-+      0x081, 0x088, 0x090, 0x099, 0x0a2, 0x0ac, 0x0b6, 0x0c0, 0x0cc, 0x0d8,
-+      0x0e5, 0x0f2, 0x101, 0x110, 0x120, 0x131, 0x143, 0x156, 0x16a, 0x180,
-+      0x197, 0x1af, 0x1c8, 0x1e3, 0x200, 0x21e, 0x23e, 0x261, 0x285, 0x2ab,
-+      0x2d3, 0x2fe, 0x32b, 0x35c, 0x38e, 0x3c4, 0x3fe
-+};
-+
-+static u32 rtw8814a_get_bb_swing(struct rtw_dev *rtwdev, u8 band, u8 rf_path)
-+{
-+      static const u32 swing2setting[4] = {0x200, 0x16a, 0x101, 0x0b6};
-+      struct rtw_efuse *efuse = &rtwdev->efuse;
-+      u8 tx_bb_swing;
-+
-+      if (band == RTW_BAND_2G)
-+              tx_bb_swing = efuse->tx_bb_swing_setting_2g;
-+      else
-+              tx_bb_swing = efuse->tx_bb_swing_setting_5g;
-+
-+      tx_bb_swing >>= 2 * rf_path;
-+      tx_bb_swing &= 0x3;
-+
-+      return swing2setting[tx_bb_swing];
-+}
-+
-+static u8 rtw8814a_get_swing_index(struct rtw_dev *rtwdev)
-+{
-+      u32 swing, table_value;
-+      u8 i;
-+
-+      swing = rtw8814a_get_bb_swing(rtwdev, rtwdev->hal.current_band_type,
-+                                    RF_PATH_A);
-+
-+      for (i = 0; i < ARRAY_SIZE(rtw8814a_txscale_tbl); i++) {
-+              table_value = rtw8814a_txscale_tbl[i];
-+              if (swing == table_value)
-+                      return i;
-+      }
-+
-+      return 24;
-+}
-+
-+static void rtw8814a_pwrtrack_init(struct rtw_dev *rtwdev)
-+{
-+      struct rtw_dm_info *dm_info = &rtwdev->dm_info;
-+      u8 path;
-+
-+      dm_info->default_ofdm_index = rtw8814a_get_swing_index(rtwdev);
-+
-+      for (path = RF_PATH_A; path < rtwdev->hal.rf_path_num; path++) {
-+              ewma_thermal_init(&dm_info->avg_thermal[path]);
-+              dm_info->delta_power_index[path] = 0;
-+              dm_info->delta_power_index_last[path] = 0;
-+      }
-+      dm_info->pwr_trk_triggered = false;
-+      dm_info->pwr_trk_init_trigger = true;
-+      dm_info->thermal_meter_k = rtwdev->efuse.thermal_meter_k;
-+}
-+
-+static void rtw8814a_config_trx_path(struct rtw_dev *rtwdev)
-+{
-+      /* RX CCK disable 2R CCA */
-+      rtw_write32_clr(rtwdev, REG_CCK0_FAREPORT,
-+                      BIT_CCK0_2RX | BIT_CCK0_MRC);
-+      /* pathB tx on, path A/C/D tx off */
-+      rtw_write32_mask(rtwdev, REG_CCK_RX, 0xf0000000, 0x4);
-+      /* pathB rx */
-+      rtw_write32_mask(rtwdev, REG_CCK_RX, 0x0f000000, 0x5);
-+}
-+
-+static void rtw8814a_config_cck_rx_antenna_init(struct rtw_dev *rtwdev)
-+{
-+      /* CCK 2R CCA parameters */
-+
-+      /* Disable Ant diversity */
-+      rtw_write32_mask(rtwdev, REG_RXSB, BIT_RXSB_ANA_DIV, 0x0);
-+      /* Concurrent CCA at LSB & USB */
-+      rtw_write32_mask(rtwdev, REG_CCA, BIT_CCA_CO, 0);
-+      /* RX path diversity enable */
-+      rtw_write32_mask(rtwdev, REG_ANTSEL, BIT_ANT_BYCO, 0);
-+      /* r_en_mrc_antsel */
-+      rtw_write32_mask(rtwdev, REG_PRECTRL, BIT_DIS_CO_PATHSEL, 0);
-+      /* MBC weighting */
-+      rtw_write32_mask(rtwdev, REG_CCA_MF, BIT_MBC_WIN, 1);
-+      /* 2R CCA only */
-+      rtw_write32_mask(rtwdev, REG_CCKTX, BIT_CMB_CCA_2R, 1);
-+}
-+
-+static void rtw8814a_phy_set_param(struct rtw_dev *rtwdev)
-+{
-+      u32 crystal_cap, val32;
-+      u8 val8, rf_path;
-+
-+      /* power on BB/RF domain */
-+      if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB)
-+              rtw_write8_set(rtwdev, REG_SYS_FUNC_EN, BIT_FEN_USBA);
-+      else if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE)
-+              rtw_write8_set(rtwdev, REG_SYS_FUNC_EN, BIT_FEN_PCIEA);
-+
-+      rtw_write8_set(rtwdev, REG_SYS_CFG3_8814A + 2,
-+                     BIT_FEN_BB_GLB_RST | BIT_FEN_BB_RSTB);
-+
-+      /* Power on RF paths A..D */
-+      val8 = BIT_RF_EN | BIT_RF_RSTB | BIT_RF_SDM_RSTB;
-+      rtw_write8(rtwdev, REG_RF_CTRL, val8);
-+      rtw_write8(rtwdev, REG_RF_CTRL1, val8);
-+      rtw_write8(rtwdev, REG_RF_CTRL2, val8);
-+      rtw_write8(rtwdev, REG_RF_CTRL3, val8);
-+
-+      rtw_load_table(rtwdev, rtwdev->chip->bb_tbl);
-+      rtw_load_table(rtwdev, rtwdev->chip->agc_tbl);
-+
-+      crystal_cap = rtwdev->efuse.crystal_cap & 0x3F;
-+      crystal_cap |= crystal_cap << 6;
-+      rtw_write32_mask(rtwdev, REG_AFE_CTRL3, 0x07ff8000, crystal_cap);
-+
-+      rtw8814a_config_trx_path(rtwdev);
-+
-+      for (rf_path = 0; rf_path < rtwdev->hal.rf_path_num; rf_path++)
-+              rtw_load_table(rtwdev, rtwdev->chip->rf_tbl[rf_path]);
-+
-+      val32 = rtw_read_rf(rtwdev, RF_PATH_A, RF_RCK1_V1, RFREG_MASK);
-+      rtw_write_rf(rtwdev, RF_PATH_B, RF_RCK1_V1, RFREG_MASK, val32);
-+      rtw_write_rf(rtwdev, RF_PATH_C, RF_RCK1_V1, RFREG_MASK, val32);
-+      rtw_write_rf(rtwdev, RF_PATH_D, RF_RCK1_V1, RFREG_MASK, val32);
-+
-+      rtw_write32_set(rtwdev, REG_RXPSEL, BIT_RX_PSEL_RST);
-+
-+      rtw_write8(rtwdev, REG_HWSEQ_CTRL, 0xFF);
-+
-+      rtw_write32(rtwdev, REG_BAR_MODE_CTRL, 0x0201ffff);
-+
-+      rtw_write8(rtwdev, REG_MISC_CTRL, BIT_DIS_SECOND_CCA);
-+
-+      rtw_write8(rtwdev, REG_NAV_CTRL + 2, 0);
-+
-+      rtw_write8_clr(rtwdev, REG_GPIO_MUXCFG, BIT(5));
-+
-+      rtw8814a_config_cck_rx_antenna_init(rtwdev);
-+
-+      rtw_phy_init(rtwdev);
-+      rtw8814a_pwrtrack_init(rtwdev);
-+
-+      rtw8814a_init_rfe_reg(rtwdev);
-+
-+      rtw_write8_clr(rtwdev, REG_QUEUE_CTRL, BIT(3));
-+
-+      rtw_write8(rtwdev, REG_NAV_CTRL + 2, 235);
-+
-+      /* enable Tx report. */
-+      rtw_write8(rtwdev,  REG_FWHW_TXQ_CTRL + 1, 0x1F);
-+
-+      if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB) {
-+              /* Reset USB mode switch setting */
-+              rtw_write8(rtwdev, REG_SYS_SDIO_CTRL, 0x0);
-+              rtw_write8(rtwdev, REG_ACLK_MON, 0x0);
-+      }
-+}
-+
-+static void rtw8814ae_enable_rf_1_2v(struct rtw_dev *rtwdev)
-+{
-+      /* This is for fullsize card, because GPIO7 there is floating.
-+       * We should pull GPIO7 high to enable RF 1.2V Switch Power Supply
-+       */
-+
-+      /* 1. set 0x40[1:0] to 0, BIT_GPIOSEL=0, select pin as GPIO */
-+      rtw_write8_clr(rtwdev, REG_GPIO_MUXCFG, BIT(1) | BIT(0));
-+
-+      /* 2. set 0x44[31] to 0
-+       * mode=0: data port;
-+       * mode=1 and BIT_GPIO_IO_SEL=0: interrupt mode;
-+       */
-+      rtw_write8_clr(rtwdev, REG_GPIO_PIN_CTRL + 3, BIT(7));
-+
-+      /* 3. data mode
-+       * 3.1 set 0x44[23] to 1
-+       * sel=0: input;
-+       * sel=1: output;
-+       */
-+      rtw_write8_set(rtwdev, REG_GPIO_PIN_CTRL + 2, BIT(7));
-+
-+      /* 3.2 set 0x44[15] to 1
-+       * output high value;
-+       */
-+      rtw_write8_set(rtwdev, REG_GPIO_PIN_CTRL + 1, BIT(7));
-+}
-+
-+static int rtw8814a_mac_init(struct rtw_dev *rtwdev)
-+{
-+      struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
-+
-+      rtw_write16(rtwdev, REG_CR,
-+                  MAC_TRX_ENABLE | BIT_MAC_SEC_EN | BIT_32K_CAL_TMR_EN);
-+
-+      rtw_load_table(rtwdev, rtwdev->chip->mac_tbl);
-+
-+      if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB)
-+              rtw_write8(rtwdev, REG_AUTO_LLT_V1 + 3,
-+                         rtwdev->chip->usb_tx_agg_desc_num << 1);
-+
-+      rtw_write32(rtwdev, REG_HIMR0, 0);
-+      rtw_write32(rtwdev, REG_HIMR1, 0);
-+
-+      rtw_write32_mask(rtwdev, REG_RRSR, 0xfffff, 0xfffff);
-+
-+      rtw_write16(rtwdev, REG_RETRY_LIMIT, 0x3030);
-+
-+      rtw_write16(rtwdev, REG_RXFLTMAP0, 0xffff);
-+      rtw_write16(rtwdev, REG_RXFLTMAP1, 0x0400);
-+      rtw_write16(rtwdev, REG_RXFLTMAP2, 0xffff);
-+
-+      rtw_write8(rtwdev, REG_MAX_AGGR_NUM, 0x36);
-+      rtw_write8(rtwdev, REG_MAX_AGGR_NUM + 1, 0x36);
-+
-+      /* Set Spec SIFS (used in NAV) */
-+      rtw_write16(rtwdev, REG_SPEC_SIFS, 0x100a);
-+      rtw_write16(rtwdev, REG_MAC_SPEC_SIFS, 0x100a);
-+
-+      /* Set SIFS for CCK */
-+      rtw_write16(rtwdev, REG_SIFS, 0x100a);
-+
-+      /* Set SIFS for OFDM */
-+      rtw_write16(rtwdev, REG_SIFS + 2, 0x100a);
-+
-+      /* TXOP */
-+      rtw_write32(rtwdev, REG_EDCA_BE_PARAM, 0x005EA42B);
-+      rtw_write32(rtwdev, REG_EDCA_BK_PARAM, 0x0000A44F);
-+      rtw_write32(rtwdev, REG_EDCA_VI_PARAM, 0x005EA324);
-+      rtw_write32(rtwdev, REG_EDCA_VO_PARAM, 0x002FA226);
-+
-+      rtw_write8_set(rtwdev, REG_FWHW_TXQ_CTRL, BIT(7));
-+
-+      rtw_write8(rtwdev, REG_ACKTO, 0x80);
-+
-+      rtw_write16(rtwdev, REG_BCN_CTRL,
-+                  BIT_DIS_TSF_UDT | (BIT_DIS_TSF_UDT << 8));
-+      rtw_write32_mask(rtwdev, REG_TBTT_PROHIBIT, 0xfffff, WLAN_TBTT_TIME);
-+      rtw_write8(rtwdev, REG_DRVERLYINT, 0x05);
-+      rtw_write8(rtwdev, REG_BCNDMATIM, WLAN_BCN_DMA_TIME);
-+      rtw_write16(rtwdev, REG_BCNTCFG, 0x4413);
-+      rtw_write8(rtwdev, REG_BCN_MAX_ERR, 0xFF);
-+
-+      rtw_write32(rtwdev, REG_FAST_EDCA_VOVI_SETTING, 0x08070807);
-+      rtw_write32(rtwdev, REG_FAST_EDCA_BEBK_SETTING, 0x08070807);
-+
-+      if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB &&
-+          rtwusb->udev->speed == USB_SPEED_SUPER) {
-+              /* Disable U1/U2 Mode to avoid 2.5G spur in USB3.0. */
-+              rtw_write8_clr(rtwdev, REG_USB_MOD, BIT(4) | BIT(3));
-+              /* To avoid usb 3.0 H2C fail. */
-+              rtw_write16(rtwdev, 0xf002, 0);
-+
-+              rtw_write8_clr(rtwdev, REG_SW_AMPDU_BURST_MODE_CTRL,
-+                             BIT_PRE_TX_CMD);
-+      } else if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE) {
-+              rtw8814ae_enable_rf_1_2v(rtwdev);
-+
-+              /* Force the antenna b to wifi. */
-+              rtw_write8_set(rtwdev, REG_PAD_CTRL1, BIT(2));
-+              rtw_write8_set(rtwdev, REG_PAD_CTRL1 + 1, BIT(0));
-+              rtw_write8_set(rtwdev, REG_LED_CFG + 3,
-+                             (BIT(27) | BIT_DPDT_WL_SEL) >> 24);
-+      }
-+
-+      return 0;
-+}
-+
-+static void rtw8814a_set_rfe_reg_24g(struct rtw_dev *rtwdev)
-+{
-+      switch (rtwdev->efuse.rfe_option) {
-+      case 2:
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x72707270);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x72707270);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x72707270);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_D, 0x77707770);
-+
-+              rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D,
-+                               BIT_RFE_SELSW0_D, 0x72);
-+
-+              break;
-+      case 1:
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x77777777);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x77777777);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x77777777);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_D, 0x77777777);
-+
-+              rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D,
-+                               BIT_RFE_SELSW0_D, 0x77);
-+
-+              break;
-+      case 0:
-+      default:
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x77777777);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x77777777);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x77777777);
-+              /* Is it not necessary to set REG_RFE_PINMUX_D ? */
-+
-+              rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D,
-+                               BIT_RFE_SELSW0_D, 0x77);
-+
-+              break;
-+      }
-+}
-+
-+static void rtw8814a_set_rfe_reg_5g(struct rtw_dev *rtwdev)
-+{
-+      switch (rtwdev->efuse.rfe_option) {
-+      case 2:
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x37173717);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x37173717);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x37173717);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_D, 0x77177717);
-+
-+              rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D,
-+                               BIT_RFE_SELSW0_D, 0x37);
-+
-+              break;
-+      case 1:
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x33173317);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x33173317);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x33173317);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_D, 0x77177717);
-+
-+              rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D,
-+                               BIT_RFE_SELSW0_D, 0x33);
-+
-+              break;
-+      case 0:
-+      default:
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x54775477);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x54775477);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x54775477);
-+              rtw_write32(rtwdev, REG_RFE_PINMUX_D, 0x54775477);
-+
-+              rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D,
-+                               BIT_RFE_SELSW0_D, 0x54);
-+
-+              break;
-+      }
-+}
-+
-+static void rtw8814a_set_channel_bb_swing(struct rtw_dev *rtwdev, u8 band)
-+{
-+      rtw_write32_mask(rtwdev, REG_TXSCALE_A, BB_SWING_MASK,
-+                       rtw8814a_get_bb_swing(rtwdev, band, RF_PATH_A));
-+      rtw_write32_mask(rtwdev, REG_TXSCALE_B, BB_SWING_MASK,
-+                       rtw8814a_get_bb_swing(rtwdev, band, RF_PATH_B));
-+      rtw_write32_mask(rtwdev, REG_TXSCALE_C, BB_SWING_MASK,
-+                       rtw8814a_get_bb_swing(rtwdev, band, RF_PATH_C));
-+      rtw_write32_mask(rtwdev, REG_TXSCALE_D, BB_SWING_MASK,
-+                       rtw8814a_get_bb_swing(rtwdev, band, RF_PATH_D));
-+      rtw8814a_pwrtrack_init(rtwdev);
-+}
-+
-+static void rtw8814a_set_bw_reg_adc(struct rtw_dev *rtwdev, u8 bw)
-+{
-+      u32 adc = 0;
-+
-+      if (bw == RTW_CHANNEL_WIDTH_20)
-+              adc = 0;
-+      else if (bw == RTW_CHANNEL_WIDTH_40)
-+              adc = 1;
-+      else if (bw == RTW_CHANNEL_WIDTH_80)
-+              adc = 2;
-+
-+      rtw_write32_mask(rtwdev, REG_ADCCLK, BIT(1) | BIT(0), adc);
-+}
-+
-+static void rtw8814a_set_bw_reg_agc(struct rtw_dev *rtwdev, u8 new_band, u8 bw)
-+{
-+      u32 agc = 7;
-+
-+      if (bw == RTW_CHANNEL_WIDTH_20) {
-+              agc = 6;
-+      } else if (bw == RTW_CHANNEL_WIDTH_40) {
-+              if (new_band == RTW_BAND_5G)
-+                      agc = 8;
-+              else
-+                      agc = 7;
-+      } else if (bw == RTW_CHANNEL_WIDTH_80) {
-+              agc = 3;
-+      }
-+
-+      rtw_write32_mask(rtwdev, REG_CCASEL, 0xf000, agc);
-+}
-+
-+static void rtw8814a_switch_band(struct rtw_dev *rtwdev, u8 new_band, u8 bw)
-+{
-+      /* Clear 0x1000[16], When this bit is set to 0, CCK and OFDM
-+       * are disabled, and clock are gated. Otherwise, CCK and OFDM
-+       * are enabled.
-+       */
-+      rtw_write8_clr(rtwdev, REG_SYS_CFG3_8814A + 2, BIT_FEN_BB_RSTB);
-+
-+      if (new_band == RTW_BAND_2G) {
-+              rtw_write32_mask(rtwdev, REG_AGC_TABLE, 0x1f, 0);
-+
-+              rtw8814a_set_rfe_reg_24g(rtwdev);
-+
-+              rtw_write32_mask(rtwdev, REG_TXPSEL, 0xf0, 0x2);
-+              rtw_write32_mask(rtwdev, REG_CCK_RX, 0x0f000000, 0x5);
-+
-+              rtw_write32_mask(rtwdev, REG_RXPSEL, BIT_RX_PSEL_RST, 0x3);
-+
-+              rtw_write8(rtwdev, REG_CCK_CHECK, 0);
-+
-+              rtw_write32_mask(rtwdev, 0xa80, BIT(18), 0);
-+      } else {
-+              rtw_write8(rtwdev, REG_CCK_CHECK, BIT_CHECK_CCK_EN);
-+
-+              /* Enable CCK Tx function, even when CCK is off */
-+              rtw_write32_mask(rtwdev, 0xa80, BIT(18), 1);
-+
-+              rtw8814a_set_rfe_reg_5g(rtwdev);
-+
-+              rtw_write32_mask(rtwdev, REG_TXPSEL, 0xf0, 0x0);
-+              rtw_write32_mask(rtwdev, REG_CCK_RX, 0x0f000000, 0xf);
-+
-+              rtw_write32_mask(rtwdev, REG_RXPSEL, BIT_RX_PSEL_RST, 0x2);
-+      }
-+
-+      rtw8814a_set_channel_bb_swing(rtwdev, new_band);
-+
-+      rtw8814a_set_bw_reg_adc(rtwdev, bw);
-+      rtw8814a_set_bw_reg_agc(rtwdev, new_band, bw);
-+
-+      rtw_write8_set(rtwdev, REG_SYS_CFG3_8814A + 2, BIT_FEN_BB_RSTB);
-+}
-+
-+static void rtw8814a_switch_channel(struct rtw_dev *rtwdev, u8 channel)
-+{
-+      struct rtw_hal *hal = &rtwdev->hal;
-+      u32 fc_area, rf_mod_ag, cfgch;
-+      u8 path;
-+
-+      switch (channel) {
-+      case 36 ... 48:
-+              fc_area = 0x494;
-+              break;
-+      case 50 ... 64:
-+              fc_area = 0x453;
-+              break;
-+      case 100 ... 116:
-+              fc_area = 0x452;
-+              break;
-+      default:
-+              if (channel >= 118)
-+                      fc_area = 0x412;
-+              else
-+                      fc_area = 0x96a;
-+              break;
-+      }
-+
-+      rtw_write32_mask(rtwdev, REG_CLKTRK, 0x1ffe0000, fc_area);
-+
-+      for (path = 0; path < hal->rf_path_num; path++) {
-+              switch (channel) {
-+              case 36 ... 64:
-+                      rf_mod_ag = 0x101;
-+                      break;
-+              case 100 ... 140:
-+                      rf_mod_ag = 0x301;
-+                      break;
-+              default:
-+                      if (channel > 140)
-+                              rf_mod_ag = 0x501;
-+                      else
-+                              rf_mod_ag = 0x000;
-+                      break;
-+              }
-+
-+              cfgch = (rf_mod_ag << 8) | channel;
-+
-+              rtw_write_rf(rtwdev, path, RF_CFGCH,
-+                           RF18_RFSI_MASK | RF18_BAND_MASK | RF18_CHANNEL_MASK, cfgch);
-+      }
-+
-+      switch (channel) {
-+      case 36 ... 64:
-+              rtw_write32_mask(rtwdev, REG_AGC_TABLE, 0x1f, 1);
-+              break;
-+      case 100 ... 144:
-+              rtw_write32_mask(rtwdev, REG_AGC_TABLE, 0x1f, 2);
-+              break;
-+      default:
-+              if (channel >= 149)
-+                      rtw_write32_mask(rtwdev, REG_AGC_TABLE, 0x1f, 3);
-+
-+              break;
-+      }
-+}
-+
-+static void rtw8814a_24g_cck_tx_dfir(struct rtw_dev *rtwdev, u8 channel)
-+{
-+      if (channel >= 1 && channel <= 11) {
-+              rtw_write32(rtwdev, REG_CCK0_TX_FILTER1, 0x1a1b0030);
-+              rtw_write32(rtwdev, REG_CCK0_TX_FILTER2, 0x090e1317);
-+              rtw_write32(rtwdev, REG_CCK0_DEBUG_PORT, 0x00000204);
-+      } else if (channel >= 12 && channel <= 13) {
-+              rtw_write32(rtwdev, REG_CCK0_TX_FILTER1, 0x1a1b0030);
-+              rtw_write32(rtwdev, REG_CCK0_TX_FILTER2, 0x090e1217);
-+              rtw_write32(rtwdev, REG_CCK0_DEBUG_PORT, 0x00000305);
-+      } else if (channel == 14) {
-+              rtw_write32(rtwdev, REG_CCK0_TX_FILTER1, 0x1a1b0030);
-+              rtw_write32(rtwdev, REG_CCK0_TX_FILTER2, 0x00000E17);
-+              rtw_write32(rtwdev, REG_CCK0_DEBUG_PORT, 0x00000000);
-+      }
-+}
-+
-+static void rtw8814a_set_bw_reg_mac(struct rtw_dev *rtwdev, u8 bw)
-+{
-+      u16 val16 = rtw_read16(rtwdev, REG_WMAC_TRXPTCL_CTL);
-+
-+      val16 &= ~BIT_RFMOD;
-+      if (bw == RTW_CHANNEL_WIDTH_80)
-+              val16 |= BIT_RFMOD_80M;
-+      else if (bw == RTW_CHANNEL_WIDTH_40)
-+              val16 |= BIT_RFMOD_40M;
-+
-+      rtw_write16(rtwdev, REG_WMAC_TRXPTCL_CTL, val16);
-+}
-+
-+static void rtw8814a_set_bw_rf(struct rtw_dev *rtwdev, u8 bw)
-+{
-+      u8 path;
-+
-+      for (path = RF_PATH_A; path < rtwdev->hal.rf_path_num; path++) {
-+              switch (bw) {
-+              case RTW_CHANNEL_WIDTH_5:
-+              case RTW_CHANNEL_WIDTH_10:
-+              case RTW_CHANNEL_WIDTH_20:
-+              default:
-+                      rtw_write_rf(rtwdev, path, RF_CFGCH, RF18_BW_MASK, 3);
-+                      break;
-+              case RTW_CHANNEL_WIDTH_40:
-+                      rtw_write_rf(rtwdev, path, RF_CFGCH, RF18_BW_MASK, 1);
-+                      break;
-+              case RTW_CHANNEL_WIDTH_80:
-+                      rtw_write_rf(rtwdev, path, RF_CFGCH, RF18_BW_MASK, 0);
-+                      break;
-+              }
-+      }
-+}
-+
-+static void rtw8814a_adc_clk(struct rtw_dev *rtwdev)
-+{
-+      static const u32 rxiqc_reg[2][4] = {
-+              { REG_RX_IQC_AB_A, REG_RX_IQC_AB_B,
-+                REG_RX_IQC_AB_C, REG_RX_IQC_AB_D },
-+              { REG_RX_IQC_CD_A, REG_RX_IQC_CD_B,
-+                REG_RX_IQC_CD_C, REG_RX_IQC_CD_D }
-+      };
-+      u32 bb_reg_8fc, bb_reg_808, rxiqc[4];
-+      u32 i = 0, mac_active = 1;
-+      u8 mac_reg_522;
-+
-+      if (rtwdev->hal.cut_version != RTW_CHIP_VER_CUT_A)
-+              return;
-+
-+      /* 1 Step1. MAC TX pause */
-+      mac_reg_522 = rtw_read8(rtwdev, REG_TXPAUSE);
-+      bb_reg_8fc = rtw_read32(rtwdev, REG_DBGSEL);
-+      bb_reg_808 = rtw_read32(rtwdev, REG_RXPSEL);
-+      rtw_write8(rtwdev, REG_TXPAUSE, 0x3f);
-+
-+      /* 1 Step 2. Backup rxiqc & rxiqc = 0 */
-+      for (i = 0; i < 4; i++) {
-+              rxiqc[i] = rtw_read32(rtwdev, rxiqc_reg[0][i]);
-+              rtw_write32(rtwdev, rxiqc_reg[0][i], 0x0);
-+              rtw_write32(rtwdev, rxiqc_reg[1][i], 0x0);
-+      }
-+      rtw_write32_mask(rtwdev, REG_PRECTRL, BIT_IQ_WGT, 0x3);
-+      i = 0;
-+
-+      /* 1 Step 3. Monitor MAC IDLE */
-+      rtw_write32(rtwdev, REG_DBGSEL, 0x0);
-+      while (mac_active) {
-+              mac_active = rtw_read32(rtwdev, REG_DBGRPT) & 0x803e0008;
-+              i++;
-+              if (i > 1000)
-+                      break;
-+      }
-+
-+      /* 1 Step 4. ADC clk flow */
-+      rtw_write8(rtwdev, REG_RXPSEL, 0x11);
-+      rtw_write32_mask(rtwdev, REG_DAC_RSTB, BIT(13), 0x1);
-+      rtw_write8_mask(rtwdev, REG_GNT_BT, BIT(2) | BIT(1), 0x3);
-+      rtw_write32_mask(rtwdev, REG_CCK_RPT_FORMAT, BIT(2), 0x1);
-+
-+      /* 0xc1c/0xe1c/0x181c/0x1a1c[4] must=1 to ensure table can be
-+       * written when bbrstb=0
-+       * 0xc60/0xe60/0x1860/0x1a60[15] always = 1 after this line
-+       * 0xc60/0xe60/0x1860/0x1a60[14] always = 0 bcz its error in A-cut
-+       */
-+
-+      /* power_off/clk_off @ anapar_state=idle mode */
-+      rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x15800002);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x01808003);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x15800002);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x01808003);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x15800002);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x01808003);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x15800002);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x01808003);
-+
-+      rtw_write8_mask(rtwdev, REG_GNT_BT, BIT(2), 0x0);
-+      rtw_write32_mask(rtwdev, REG_CCK_RPT_FORMAT, BIT(2), 0x0);
-+      /* [19] = 1 to turn off ADC */
-+      rtw_write32(rtwdev, REG_CK_MONHA, 0x0D080058);
-+      rtw_write32(rtwdev, REG_CK_MONHB, 0x0D080058);
-+      rtw_write32(rtwdev, REG_CK_MONHC, 0x0D080058);
-+      rtw_write32(rtwdev, REG_CK_MONHD, 0x0D080058);
-+
-+      /* power_on/clk_off */
-+      /* [19] = 0 to turn on ADC */
-+      rtw_write32(rtwdev, REG_CK_MONHA, 0x0D000058);
-+      rtw_write32(rtwdev, REG_CK_MONHB, 0x0D000058);
-+      rtw_write32(rtwdev, REG_CK_MONHC, 0x0D000058);
-+      rtw_write32(rtwdev, REG_CK_MONHD, 0x0D000058);
-+
-+      /* power_on/clk_on @ anapar_state=BT mode */
-+      rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x05808032);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x05808032);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x05808032);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x05808032);
-+      rtw_write8_mask(rtwdev, REG_GNT_BT, BIT(2), 0x1);
-+      rtw_write32_mask(rtwdev, REG_CCK_RPT_FORMAT, BIT(2), 0x1);
-+
-+      /* recover original setting @ anapar_state=BT mode */
-+      rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x05808032);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x05808032);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x05808032);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x05808032);
-+
-+      rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x05800002);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x07808003);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x05800002);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x07808003);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x05800002);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x07808003);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x05800002);
-+      rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x07808003);
-+
-+      rtw_write8_mask(rtwdev, REG_GNT_BT, BIT(2) | BIT(1), 0x0);
-+      rtw_write32_mask(rtwdev, REG_CCK_RPT_FORMAT, BIT(2), 0x0);
-+      rtw_write32_mask(rtwdev, REG_DAC_RSTB, BIT(13), 0x0);
-+
-+      /* 1 Step 5. Recover MAC TX & IQC */
-+      rtw_write8(rtwdev, REG_TXPAUSE, mac_reg_522);
-+      rtw_write32(rtwdev, REG_DBGSEL, bb_reg_8fc);
-+      rtw_write32(rtwdev, REG_RXPSEL, bb_reg_808);
-+      for (i = 0; i < 4; i++) {
-+              rtw_write32(rtwdev, rxiqc_reg[0][i], rxiqc[i]);
-+              rtw_write32(rtwdev, rxiqc_reg[1][i], 0x01000000);
-+      }
-+      rtw_write32_mask(rtwdev, REG_PRECTRL, BIT_IQ_WGT, 0x0);
-+}
-+
-+static void rtw8814a_spur_calibration_ch140(struct rtw_dev *rtwdev, u8 channel)
-+{
-+      struct rtw_hal *hal = &rtwdev->hal;
-+
-+      /* Add for 8814AE module ch140 MP Rx */
-+      if (channel == 140) {
-+              if (hal->ch_param[0] == 0)
-+                      hal->ch_param[0] = rtw_read32(rtwdev, REG_CCASEL);
-+              if (hal->ch_param[1] == 0)
-+                      hal->ch_param[1] = rtw_read32(rtwdev, REG_PDMFTH);
-+
-+              rtw_write32(rtwdev, REG_CCASEL, 0x75438170);
-+              rtw_write32(rtwdev, REG_PDMFTH, 0x79a18a0a);
-+      } else {
-+              if (rtw_read32(rtwdev, REG_CCASEL) == 0x75438170 &&
-+                  hal->ch_param[0] != 0)
-+                      rtw_write32(rtwdev, REG_CCASEL, hal->ch_param[0]);
-+
-+              if (rtw_read32(rtwdev, REG_PDMFTH) == 0x79a18a0a &&
-+                  hal->ch_param[1] != 0)
-+                      rtw_write32(rtwdev, REG_PDMFTH, hal->ch_param[1]);
-+
-+              hal->ch_param[0] = rtw_read32(rtwdev, REG_CCASEL);
-+              hal->ch_param[1] = rtw_read32(rtwdev, REG_PDMFTH);
-+      }
-+}
-+
-+static void rtw8814a_set_nbi_reg(struct rtw_dev *rtwdev, u32 tone_idx)
-+{
-+      /* tone_idx X 10 */
-+      static const u32 nbi_128[] = {
-+              25, 55, 85, 115, 135,
-+              155, 185, 205, 225, 245,
-+              265, 285, 305, 335, 355,
-+              375, 395, 415, 435, 455,
-+              485, 505, 525, 555, 585, 615, 635
-+      };
-+      u32 reg_idx = 0;
-+      u32 i;
-+
-+      for (i = 0; i < ARRAY_SIZE(nbi_128); i++) {
-+              if (tone_idx < nbi_128[i]) {
-+                      reg_idx = i + 1;
-+                      break;
-+              }
-+      }
-+
-+      rtw_write32_mask(rtwdev, REG_NBI_SETTING, 0xfc000, reg_idx);
-+}
-+
-+static void rtw8814a_nbi_setting(struct rtw_dev *rtwdev, u32 ch, u32 f_intf)
-+{
-+      u32 fc, int_distance, tone_idx;
-+
-+      fc = 2412 + (ch - 1) * 5;
-+      int_distance = abs_diff(fc, f_intf);
-+
-+      /* 10 * (int_distance / 0.3125) */
-+      tone_idx = int_distance << 5;
-+
-+      rtw8814a_set_nbi_reg(rtwdev, tone_idx);
-+
-+      rtw_write32_mask(rtwdev, REG_NBI_SETTING, BIT_NBI_ENABLE, 1);
-+}
-+
-+static void rtw8814a_spur_nbi_setting(struct rtw_dev *rtwdev)
-+{
-+      u8 primary_channel = rtwdev->hal.primary_channel;
-+      u8 rfe_type = rtwdev->efuse.rfe_option;
-+
-+      if (rfe_type != 0 && rfe_type != 1 && rfe_type != 6 && rfe_type != 7)
-+              return;
-+
-+      if (primary_channel == 14)
-+              rtw8814a_nbi_setting(rtwdev, primary_channel, 2480);
-+      else if (primary_channel >= 4 && primary_channel <= 8)
-+              rtw8814a_nbi_setting(rtwdev, primary_channel, 2440);
-+      else
-+              rtw_write32_mask(rtwdev, REG_NBI_SETTING, BIT_NBI_ENABLE, 0);
-+}
-+
-+/* A workaround to eliminate the 5280 MHz & 5600 MHz & 5760 MHz spur of 8814A */
-+static void rtw8814a_spur_calibration(struct rtw_dev *rtwdev, u8 channel, u8 bw)
-+{
-+      u8 rfe_type = rtwdev->efuse.rfe_option;
-+      bool reset_nbi_csi = true;
-+
-+      if (rfe_type == 0) {
-+              switch (bw) {
-+              case RTW_CHANNEL_WIDTH_40:
-+                      if (channel == 54 || channel == 118) {
-+                              rtw_write32_mask(rtwdev, REG_NBI_SETTING,
-+                                               0x000fe000, 0x3e >> 1);
-+                              rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
-+                                               BIT(0), 1);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
-+                              rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK1,
-+                                               BIT(0), 1);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK7, 0);
-+
-+                              reset_nbi_csi = false;
-+                      } else if (channel == 151) {
-+                              rtw_write32_mask(rtwdev, REG_NBI_SETTING,
-+                                               0x000fe000, 0x1e >> 1);
-+                              rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
-+                                               BIT(0), 1);
-+                              rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK0,
-+                                               BIT(16), 1);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK7, 0);
-+
-+                              reset_nbi_csi = false;
-+                      }
-+                      break;
-+              case RTW_CHANNEL_WIDTH_80:
-+                      if (channel == 58 || channel == 122) {
-+                              rtw_write32_mask(rtwdev, REG_NBI_SETTING,
-+                                               0x000fe000, 0x3a >> 1);
-+                              rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
-+                                               BIT(0), 1);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
-+                              rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK7,
-+                                               BIT(0), 1);
-+
-+                              reset_nbi_csi = false;
-+                      } else if (channel == 155) {
-+                              rtw_write32_mask(rtwdev, REG_NBI_SETTING,
-+                                               0x000fe000, 0x5a >> 1);
-+                              rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
-+                                               BIT(0), 1);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
-+                              rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK6,
-+                                               BIT(16), 1);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK7, 0);
-+
-+                              reset_nbi_csi = false;
-+                      }
-+                      break;
-+              case RTW_CHANNEL_WIDTH_20:
-+                      if (channel == 153) {
-+                              rtw_write32_mask(rtwdev, REG_NBI_SETTING,
-+                                               0x000fe000, 0x1e >> 1);
-+                              rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
-+                                               BIT(0), 1);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
-+                              rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK7,
-+                                               BIT(16), 1);
-+
-+                              reset_nbi_csi = false;
-+                      }
-+
-+                      rtw8814a_spur_calibration_ch140(rtwdev, channel);
-+                      break;
-+              default:
-+                      break;
-+              }
-+      } else if (rfe_type == 1 || rfe_type == 2) {
-+              switch (bw) {
-+              case RTW_CHANNEL_WIDTH_20:
-+                      if (channel == 153) {
-+                              rtw_write32_mask(rtwdev, REG_NBI_SETTING,
-+                                               0x000fe000, 0x1E >> 1);
-+                              rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
-+                                               BIT(0), 1);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
-+                              rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK7,
-+                                               BIT(16), 1);
-+
-+                              reset_nbi_csi = false;
-+                      }
-+                      break;
-+              case RTW_CHANNEL_WIDTH_40:
-+                      if (channel == 151) {
-+                              rtw_write32_mask(rtwdev, REG_NBI_SETTING,
-+                                               0x000fe000, 0x1e >> 1);
-+                              rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
-+                                               BIT(0), 1);
-+                              rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK0,
-+                                               BIT(16), 1);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK7, 0);
-+
-+                              reset_nbi_csi = false;
-+                      }
-+                      break;
-+              case RTW_CHANNEL_WIDTH_80:
-+                      if (channel == 155) {
-+                              rtw_write32_mask(rtwdev, REG_NBI_SETTING,
-+                                               0x000fe000, 0x5a >> 1);
-+                              rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
-+                                               BIT(0), 1);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
-+                              rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK6,
-+                                               BIT(16), 1);
-+                              rtw_write32(rtwdev, REG_CSI_FIX_MASK7, 0);
-+
-+                              reset_nbi_csi = false;
-+                      }
-+                      break;
-+              default:
-+                      break;
-+              }
-+      }
-+
-+      if (reset_nbi_csi) {
-+              rtw_write32_mask(rtwdev, REG_NBI_SETTING,
-+                               0x000fe000, 0xfc >> 1);
-+              rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1, BIT(0), 0);
-+              rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
-+              rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
-+              rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
-+              rtw_write32(rtwdev, REG_CSI_FIX_MASK7, 0);
-+      }
-+
-+      rtw8814a_spur_nbi_setting(rtwdev);
-+}
-+
-+static void rtw8814a_set_bw_mode(struct rtw_dev *rtwdev, u8 new_band,
-+                               u8 channel, u8 bw, u8 primary_chan_idx)
-+{
-+      u8 txsc40 = 0, txsc20, txsc;
-+
-+      rtw8814a_set_bw_reg_mac(rtwdev, bw);
-+
-+      txsc20 = primary_chan_idx;
-+      if (bw == RTW_CHANNEL_WIDTH_80) {
-+              if (txsc20 == RTW_SC_20_UPPER || txsc20 == RTW_SC_20_UPMOST)
-+                      txsc40 = RTW_SC_40_UPPER;
-+              else
-+                      txsc40 = RTW_SC_40_LOWER;
-+      }
-+
-+      txsc = BIT_TXSC_20M(txsc20) | BIT_TXSC_40M(txsc40);
-+      rtw_write8(rtwdev, REG_DATA_SC, txsc);
-+
-+      rtw8814a_set_bw_reg_adc(rtwdev, bw);
-+      rtw8814a_set_bw_reg_agc(rtwdev, new_band, bw);
-+
-+      if (bw == RTW_CHANNEL_WIDTH_80) {
-+              rtw_write32_mask(rtwdev, REG_ADCCLK, 0x3c, txsc);
-+      } else if (bw == RTW_CHANNEL_WIDTH_40) {
-+              rtw_write32_mask(rtwdev, REG_ADCCLK, 0x3c, txsc);
-+
-+              if (txsc == RTW_SC_20_UPPER)
-+                      rtw_write32_set(rtwdev, REG_RXSB, BIT(4));
-+              else
-+                      rtw_write32_clr(rtwdev, REG_RXSB, BIT(4));
-+      }
-+
-+      rtw8814a_set_bw_rf(rtwdev, bw);
-+
-+      rtw8814a_adc_clk(rtwdev);
-+
-+      rtw8814a_spur_calibration(rtwdev, channel, bw);
-+}
-+
-+static void rtw8814a_set_channel(struct rtw_dev *rtwdev, u8 channel, u8 bw,
-+                               u8 primary_chan_idx)
-+{
-+      u8 old_band, new_band;
-+
-+      if (rtw_read8(rtwdev, REG_CCK_CHECK) & BIT_CHECK_CCK_EN)
-+              old_band = RTW_BAND_5G;
-+      else
-+              old_band = RTW_BAND_2G;
-+
-+      if (channel > 14)
-+              new_band = RTW_BAND_5G;
-+      else
-+              new_band = RTW_BAND_2G;
-+
-+      if (new_band != old_band)
-+              rtw8814a_switch_band(rtwdev, new_band, bw);
-+
-+      rtw8814a_switch_channel(rtwdev, channel);
-+
-+      rtw8814a_24g_cck_tx_dfir(rtwdev, channel);
-+
-+      rtw8814a_set_bw_mode(rtwdev, new_band, channel, bw, primary_chan_idx);
-+}
-+
-+static s8 rtw8814a_cck_rx_pwr(u8 lna_idx, u8 vga_idx)
-+{
-+      s8 rx_pwr_all = 0;
-+
-+      switch (lna_idx) {
-+      case 7:
-+              rx_pwr_all = -38 - 2 * vga_idx;
-+              break;
-+      case 5:
-+              rx_pwr_all = -28 - 2 * vga_idx;
-+              break;
-+      case 3:
-+              rx_pwr_all = -8 - 2 * vga_idx;
-+              break;
-+      case 2:
-+              rx_pwr_all = -1 - 2 * vga_idx;
-+              break;
-+      default:
-+              break;
-+      }
-+
-+      return rx_pwr_all;
-+}
-+
-+static void rtw8814a_query_phy_status(struct rtw_dev *rtwdev, u8 *phy_status,
-+                                    struct rtw_rx_pkt_stat *pkt_stat)
-+{
-+      struct rtw_dm_info *dm_info = &rtwdev->dm_info;
-+      struct rtw_jaguar_phy_status_rpt *rpt;
-+      u8 gain[RTW_RF_PATH_MAX], rssi, i;
-+      s8 rx_pwr_db, middle1, middle2;
-+      s8 snr[RTW_RF_PATH_MAX];
-+      s8 evm[RTW_RF_PATH_MAX];
-+      u8 rfmode, subchannel;
-+      u8 lna, vga;
-+      s8 cfo[2];
-+
-+      rpt = (struct rtw_jaguar_phy_status_rpt *)phy_status;
-+
-+      pkt_stat->bw = RTW_CHANNEL_WIDTH_20;
-+
-+      if (pkt_stat->rate <= DESC_RATE11M) {
-+              lna = le32_get_bits(rpt->w1, RTW_JGRPHY_W1_AGC_RPT_LNA_IDX);
-+              vga = le32_get_bits(rpt->w1, RTW_JGRPHY_W1_AGC_RPT_VGA_IDX);
-+
-+              rx_pwr_db = rtw8814a_cck_rx_pwr(lna, vga);
-+
-+              pkt_stat->rx_power[RF_PATH_A] = rx_pwr_db;
-+              pkt_stat->rssi = rtw_phy_rf_power_2_rssi(pkt_stat->rx_power, 1);
-+              dm_info->rssi[RF_PATH_A] = pkt_stat->rssi;
-+              pkt_stat->signal_power = rx_pwr_db;
-+      } else { /* OFDM rate */
-+              gain[RF_PATH_A] = le32_get_bits(rpt->w0, RTW_JGRPHY_W0_GAIN_A);
-+              gain[RF_PATH_B] = le32_get_bits(rpt->w0, RTW_JGRPHY_W0_GAIN_B);
-+              gain[RF_PATH_C] = le32_get_bits(rpt->w5, RTW_JGRPHY_W5_GAIN_C);
-+              gain[RF_PATH_D] = le32_get_bits(rpt->w6, RTW_JGRPHY_W6_GAIN_D);
-+
-+              snr[RF_PATH_A] = le32_get_bits(rpt->w3, RTW_JGRPHY_W3_RXSNR_A);
-+              snr[RF_PATH_B] = le32_get_bits(rpt->w4, RTW_JGRPHY_W4_RXSNR_B);
-+              snr[RF_PATH_C] = le32_get_bits(rpt->w5, RTW_JGRPHY_W5_RXSNR_C);
-+              snr[RF_PATH_D] = le32_get_bits(rpt->w5, RTW_JGRPHY_W5_RXSNR_D);
-+
-+              evm[RF_PATH_A] = le32_get_bits(rpt->w3, RTW_JGRPHY_W3_RXEVM_1);
-+              evm[RF_PATH_B] = le32_get_bits(rpt->w3, RTW_JGRPHY_W3_RXEVM_2);
-+              evm[RF_PATH_C] = le32_get_bits(rpt->w4, RTW_JGRPHY_W4_RXEVM_3);
-+              evm[RF_PATH_D] = le32_get_bits(rpt->w5, RTW_JGRPHY_W5_RXEVM_4);
-+
-+              if (pkt_stat->rate <= DESC_RATE54M)
-+                      evm[RF_PATH_A] = le32_get_bits(rpt->w6,
-+                                                     RTW_JGRPHY_W6_SIGEVM);
-+
-+              for (i = RF_PATH_A; i < RTW_RF_PATH_MAX; i++) {
-+                      pkt_stat->rx_power[i] = gain[i] - 110;
-+
-+                      rssi = rtw_phy_rf_power_2_rssi(&pkt_stat->rx_power[i], 1);
-+                      dm_info->rssi[i] = rssi;
-+
-+                      pkt_stat->rx_snr[i] = snr[i];
-+                      dm_info->rx_snr[i] = snr[i] >> 1;
-+
-+                      pkt_stat->rx_evm[i] = evm[i];
-+                      evm[i] = max_t(s8, -127, evm[i]);
-+                      dm_info->rx_evm_dbm[i] = abs(evm[i]) >> 1;
-+              }
-+
-+              rssi = rtw_phy_rf_power_2_rssi(pkt_stat->rx_power,
-+                                             RTW_RF_PATH_MAX);
-+              pkt_stat->rssi = rssi;
-+
-+              /* When power saving is enabled the hardware sometimes
-+               * reports unbelievably high gain for paths A and C
-+               * (e.g. one frame 64 68 68 72, the next frame 106 66 88 72,
-+               * the next 66 66 68 72), so use the second lowest gain
-+               * instead of the highest.
-+               */
-+              middle1 = max(min(gain[RF_PATH_A], gain[RF_PATH_B]),
-+                            min(gain[RF_PATH_C], gain[RF_PATH_D]));
-+              middle2 = min(max(gain[RF_PATH_A], gain[RF_PATH_B]),
-+                            max(gain[RF_PATH_C], gain[RF_PATH_D]));
-+              rx_pwr_db = min(middle1, middle2);
-+              rx_pwr_db -= 110;
-+              pkt_stat->signal_power = rx_pwr_db;
-+
-+              rfmode = le32_get_bits(rpt->w0, RTW_JGRPHY_W0_R_RFMOD);
-+              subchannel = le32_get_bits(rpt->w0, RTW_JGRPHY_W0_SUB_CHNL);
-+
-+              if (rfmode == 1 && subchannel == 0) {
-+                      pkt_stat->bw = RTW_CHANNEL_WIDTH_40;
-+              } else if (rfmode == 2) {
-+                      if (subchannel == 0)
-+                              pkt_stat->bw = RTW_CHANNEL_WIDTH_80;
-+                      else if (subchannel == 9 || subchannel == 10)
-+                              pkt_stat->bw = RTW_CHANNEL_WIDTH_40;
-+              }
-+
-+              cfo[RF_PATH_A] = le32_get_bits(rpt->w2, RTW_JGRPHY_W2_CFO_TAIL_A);
-+              cfo[RF_PATH_B] = le32_get_bits(rpt->w2, RTW_JGRPHY_W2_CFO_TAIL_B);
-+
-+              for (i = RF_PATH_A; i < 2; i++) {
-+                      pkt_stat->cfo_tail[i] = cfo[i];
-+                      dm_info->cfo_tail[i] = (cfo[i] * 5) >> 1;
-+              }
-+      }
-+}
-+
-+static void
-+rtw8814a_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path, u8 rs)
-+{
-+      struct rtw_hal *hal = &rtwdev->hal;
-+      u32 txagc_table_wd;
-+      u8 rate, pwr_index;
-+      int j;
-+
-+      for (j = 0; j < rtw_rate_size[rs]; j++) {
-+              rate = rtw_rate_section[rs][j];
-+
-+              pwr_index = hal->tx_pwr_tbl[path][rate] + 2;
-+              if (pwr_index > rtwdev->chip->max_power_index)
-+                      pwr_index = rtwdev->chip->max_power_index;
-+
-+              txagc_table_wd = 0x00801000;
-+              txagc_table_wd |= (pwr_index << 24) | (path << 8) | rate;
-+
-+              rtw_write32(rtwdev, REG_AGC_TBL, txagc_table_wd);
-+
-+              /* first time to turn on the txagc table
-+               * second to write the addr0
-+               */
-+              if (rate == DESC_RATE1M)
-+                      rtw_write32(rtwdev, REG_AGC_TBL, txagc_table_wd);
-+      }
-+}
-+
-+static void rtw8814a_set_tx_power_index(struct rtw_dev *rtwdev)
-+{
-+      struct rtw_hal *hal = &rtwdev->hal;
-+      int path;
-+
-+      for (path = 0; path < hal->rf_path_num; path++) {
-+              if (hal->current_band_type == RTW_BAND_2G)
-+                      rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
-+                                                          RTW_RATE_SECTION_CCK);
-+
-+              rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
-+                                                  RTW_RATE_SECTION_OFDM);
-+
-+              if (test_bit(RTW_FLAG_SCANNING, rtwdev->flags))
-+                      continue;
-+
-+              rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
-+                                                  RTW_RATE_SECTION_HT_1S);
-+              rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
-+                                                  RTW_RATE_SECTION_VHT_1S);
-+
-+              rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
-+                                                  RTW_RATE_SECTION_HT_2S);
-+              rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
-+                                                  RTW_RATE_SECTION_VHT_2S);
-+
-+              rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
-+                                                  RTW_RATE_SECTION_HT_3S);
-+              rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
-+                                                  RTW_RATE_SECTION_VHT_3S);
-+      }
-+}
-+
-+static void rtw8814a_cfg_ldo25(struct rtw_dev *rtwdev, bool enable)
-+{
-+}
-+
-+static void rtw8814a_false_alarm_statistics(struct rtw_dev *rtwdev)
-+{
-+      struct rtw_dm_info *dm_info = &rtwdev->dm_info;
-+      u32 cck_fa_cnt, ofdm_fa_cnt;
-+      u32 crc32_cnt, cca32_cnt;
-+      u32 cck_enable;
-+
-+      cck_enable = rtw_read32(rtwdev, REG_RXPSEL) & BIT(28);
-+      cck_fa_cnt = rtw_read16(rtwdev, REG_FA_CCK);
-+      ofdm_fa_cnt = rtw_read16(rtwdev, REG_FA_OFDM);
-+
-+      dm_info->cck_fa_cnt = cck_fa_cnt;
-+      dm_info->ofdm_fa_cnt = ofdm_fa_cnt;
-+      dm_info->total_fa_cnt = ofdm_fa_cnt;
-+      if (cck_enable)
-+              dm_info->total_fa_cnt += cck_fa_cnt;
-+
-+      crc32_cnt = rtw_read32(rtwdev, REG_CRC_CCK);
-+      dm_info->cck_ok_cnt = u32_get_bits(crc32_cnt, MASKLWORD);
-+      dm_info->cck_err_cnt = u32_get_bits(crc32_cnt, MASKHWORD);
-+
-+      crc32_cnt = rtw_read32(rtwdev, REG_CRC_OFDM);
-+      dm_info->ofdm_ok_cnt = u32_get_bits(crc32_cnt, MASKLWORD);
-+      dm_info->ofdm_err_cnt = u32_get_bits(crc32_cnt, MASKHWORD);
-+
-+      crc32_cnt = rtw_read32(rtwdev, REG_CRC_HT);
-+      dm_info->ht_ok_cnt = u32_get_bits(crc32_cnt, MASKLWORD);
-+      dm_info->ht_err_cnt = u32_get_bits(crc32_cnt, MASKHWORD);
-+
-+      crc32_cnt = rtw_read32(rtwdev, REG_CRC_VHT);
-+      dm_info->vht_ok_cnt = u32_get_bits(crc32_cnt, MASKLWORD);
-+      dm_info->vht_err_cnt = u32_get_bits(crc32_cnt, MASKHWORD);
-+
-+      cca32_cnt = rtw_read32(rtwdev, REG_CCA_OFDM);
-+      dm_info->ofdm_cca_cnt = u32_get_bits(cca32_cnt, MASKHWORD);
-+      dm_info->total_cca_cnt = dm_info->ofdm_cca_cnt;
-+      if (cck_enable) {
-+              cca32_cnt = rtw_read32(rtwdev, REG_CCA_CCK);
-+              dm_info->cck_cca_cnt = u32_get_bits(cca32_cnt, MASKLWORD);
-+              dm_info->total_cca_cnt += dm_info->cck_cca_cnt;
-+      }
-+
-+      rtw_write32_set(rtwdev, REG_FAS, BIT(17));
-+      rtw_write32_clr(rtwdev, REG_FAS, BIT(17));
-+      rtw_write32_clr(rtwdev, REG_CCK0_FAREPORT, BIT(15));
-+      rtw_write32_set(rtwdev, REG_CCK0_FAREPORT, BIT(15));
-+      rtw_write32_set(rtwdev, REG_CNTRST, BIT(0));
-+      rtw_write32_clr(rtwdev, REG_CNTRST, BIT(0));
-+}
-+
-+#define MAC_REG_NUM_8814 2
-+#define BB_REG_NUM_8814 14
-+#define RF_REG_NUM_8814 1
-+
-+static void rtw8814a_iqk_backup_mac_bb(struct rtw_dev *rtwdev,
-+                                     u32 *mac_backup, u32 *bb_backup,
-+                                     const u32 *mac_regs,
-+                                     const u32 *bb_regs)
-+{
-+      u32 i;
-+
-+      /* save MACBB default value */
-+      for (i = 0; i < MAC_REG_NUM_8814; i++)
-+              mac_backup[i] = rtw_read32(rtwdev, mac_regs[i]);
-+
-+      for (i = 0; i < BB_REG_NUM_8814; i++)
-+              bb_backup[i] = rtw_read32(rtwdev, bb_regs[i]);
-+}
-+
-+static void rtw8814a_iqk_backup_rf(struct rtw_dev *rtwdev,
-+                                 u32 rf_backup[][4], const u32 *rf_regs)
-+{
-+      u32 i;
-+
-+      /* Save RF Parameters */
-+      for (i = 0; i < RF_REG_NUM_8814; i++) {
-+              rf_backup[i][RF_PATH_A] = rtw_read_rf(rtwdev, RF_PATH_A,
-+                                                    rf_regs[i], RFREG_MASK);
-+              rf_backup[i][RF_PATH_B] = rtw_read_rf(rtwdev, RF_PATH_B,
-+                                                    rf_regs[i], RFREG_MASK);
-+              rf_backup[i][RF_PATH_C] = rtw_read_rf(rtwdev, RF_PATH_C,
-+                                                    rf_regs[i], RFREG_MASK);
-+              rf_backup[i][RF_PATH_D] = rtw_read_rf(rtwdev, RF_PATH_D,
-+                                                    rf_regs[i], RFREG_MASK);
-+      }
-+}
-+
-+static void rtw8814a_iqk_afe_setting(struct rtw_dev *rtwdev, bool do_iqk)
-+{
-+      if (do_iqk) {
-+              /* IQK AFE setting RX_WAIT_CCA mode */
-+              rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x0e808003);
-+              rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x0e808003);
-+              rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x0e808003);
-+              rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x0e808003);
-+      } else {
-+              rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x07808003);
-+              rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x07808003);
-+              rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x07808003);
-+              rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x07808003);
-+      }
-+
-+      rtw_write32_mask(rtwdev, REG_DAC_RSTB, BIT(13), 0x1);
-+
-+      rtw_write8_set(rtwdev, REG_GNT_BT, BIT(2) | BIT(1));
-+      rtw_write8_clr(rtwdev, REG_GNT_BT, BIT(2) | BIT(1));
-+
-+      rtw_write32_set(rtwdev, REG_CCK_RPT_FORMAT, BIT(2));
-+      rtw_write32_clr(rtwdev, REG_CCK_RPT_FORMAT, BIT(2));
-+}
-+
-+static void rtw8814a_iqk_restore_mac_bb(struct rtw_dev *rtwdev,
-+                                      u32 *mac_backup, u32 *bb_backup,
-+                                      const u32 *mac_regs,
-+                                      const u32 *bb_regs)
-+{
-+      u32 i;
-+
-+      /* Reload MacBB Parameters */
-+      for (i = 0; i < MAC_REG_NUM_8814; i++)
-+              rtw_write32(rtwdev, mac_regs[i], mac_backup[i]);
-+
-+      for (i = 0; i < BB_REG_NUM_8814; i++)
-+              rtw_write32(rtwdev, bb_regs[i], bb_backup[i]);
-+}
-+
-+static void rtw8814a_iqk_restore_rf(struct rtw_dev *rtwdev,
-+                                  const u32 rf_backup[][4],
-+                                  const u32 *rf_regs)
-+{
-+      u32 i;
-+
-+      rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWE, RFREG_MASK, 0x0);
-+      rtw_write_rf(rtwdev, RF_PATH_B, RF_LUTWE, RFREG_MASK, 0x0);
-+      rtw_write_rf(rtwdev, RF_PATH_C, RF_LUTWE, RFREG_MASK, 0x0);
-+      rtw_write_rf(rtwdev, RF_PATH_D, RF_LUTWE, RFREG_MASK, 0x0);
-+
-+      rtw_write_rf(rtwdev, RF_PATH_A, RF_RXBB2, RFREG_MASK, 0x88001);
-+      rtw_write_rf(rtwdev, RF_PATH_B, RF_RXBB2, RFREG_MASK, 0x88001);
-+      rtw_write_rf(rtwdev, RF_PATH_C, RF_RXBB2, RFREG_MASK, 0x88001);
-+      rtw_write_rf(rtwdev, RF_PATH_D, RF_RXBB2, RFREG_MASK, 0x88001);
-+
-+      for (i = 0; i < RF_REG_NUM_8814; i++) {
-+              rtw_write_rf(rtwdev, RF_PATH_A, rf_regs[i],
-+                           RFREG_MASK, rf_backup[i][RF_PATH_A]);
-+              rtw_write_rf(rtwdev, RF_PATH_B, rf_regs[i],
-+                           RFREG_MASK, rf_backup[i][RF_PATH_B]);
-+              rtw_write_rf(rtwdev, RF_PATH_C, rf_regs[i],
-+                           RFREG_MASK, rf_backup[i][RF_PATH_C]);
-+              rtw_write_rf(rtwdev, RF_PATH_D, rf_regs[i],
-+                           RFREG_MASK, rf_backup[i][RF_PATH_D]);
-+      }
-+}
-+
-+static void rtw8814a_iqk_reset_nctl(struct rtw_dev *rtwdev)
-+{
-+      rtw_write32(rtwdev, 0x1b00, 0xf8000000);
-+      rtw_write32(rtwdev, 0x1b80, 0x00000006);
-+
-+      rtw_write32(rtwdev, 0x1b00, 0xf8000000);
-+      rtw_write32(rtwdev, 0x1b80, 0x00000002);
-+}
-+
-+static void rtw8814a_iqk_configure_mac(struct rtw_dev *rtwdev)
-+{
-+      rtw_write8(rtwdev, REG_TXPAUSE, 0x3f);
-+      rtw_write32_clr(rtwdev, REG_BCN_CTRL,
-+                      (BIT_EN_BCN_FUNCTION << 8) | BIT_EN_BCN_FUNCTION);
-+
-+      /* RX ante off */
-+      rtw_write8(rtwdev, REG_RXPSEL, 0x00);
-+      /* CCA off */
-+      rtw_write32_mask(rtwdev, REG_CCA2ND, 0xf, 0xe);
-+      /* CCK RX path off */
-+      rtw_write32_set(rtwdev, REG_PRECTRL, BIT_IQ_WGT);
-+      rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x77777777);
-+      rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x77777777);
-+      rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x77777777);
-+      rtw_write32(rtwdev, REG_RFE_PINMUX_D, 0x77777777);
-+      rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D, BIT_RFE_SELSW0_D, 0x77);
-+      rtw_write32_mask(rtwdev, REG_PSD, BIT_PSD_INI, 0x0);
-+
-+      rtw_write32_mask(rtwdev, REG_RFE_INV0, 0xf, 0x0);
-+}
-+
-+static void rtw8814a_lok_one_shot(struct rtw_dev *rtwdev, u8 path)
-+{
-+      u32 lok_temp1, lok_temp2;
-+      bool lok_ready;
-+      u8 ii;
-+
-+      /* ADC Clock source */
-+      rtw_write32_mask(rtwdev, REG_FAS, BIT(21) | BIT(20), path);
-+      /* LOK: CMD ID = 0
-+       * {0xf8000011, 0xf8000021, 0xf8000041, 0xf8000081}
-+       */
-+      rtw_write32(rtwdev, 0x1b00, 0xf8000001 | (BIT(path) << 4));
-+
-+      usleep_range(1000, 1100);
-+
-+      if (read_poll_timeout(!rtw_read32_mask, lok_ready, lok_ready,
-+                            1000, 10000, false,
-+                            rtwdev, 0x1b00, BIT(0))) {
-+              rtw_dbg(rtwdev, RTW_DBG_RFK, "==>S%d LOK timed out\n", path);
-+
-+              rtw8814a_iqk_reset_nctl(rtwdev);
-+
-+              rtw_write_rf(rtwdev, path, RF_DTXLOK, RFREG_MASK, 0x08400);
-+
-+              return;
-+      }
-+
-+      rtw_write32(rtwdev, 0x1b00, 0xf8000000 | (path << 1));
-+      rtw_write32(rtwdev, 0x1bd4, 0x003f0001);
-+
-+      lok_temp2 = rtw_read32_mask(rtwdev, 0x1bfc, 0x003e0000);
-+      lok_temp2 = (lok_temp2 + 0x10) & 0x1f;
-+
-+      lok_temp1 = rtw_read32_mask(rtwdev, 0x1bfc, 0x0000003e);
-+      lok_temp1 = (lok_temp1 + 0x10) & 0x1f;
-+
-+      for (ii = 1; ii < 5; ii++) {
-+              lok_temp1 += (lok_temp1 & BIT(4 - ii)) << (ii * 2);
-+              lok_temp2 += (lok_temp2 & BIT(4 - ii)) << (ii * 2);
-+      }
-+
-+      rtw_dbg(rtwdev, RTW_DBG_RFK,
-+              "path %d lok_temp1 = %#x, lok_temp2 = %#x\n",
-+              path, lok_temp1 >> 4, lok_temp2 >> 4);
-+
-+      rtw_write_rf(rtwdev, path, RF_DTXLOK, 0x07c00, lok_temp1 >> 4);
-+      rtw_write_rf(rtwdev, path, RF_DTXLOK, 0xf8000, lok_temp2 >> 4);
-+}
-+
-+static void rtw8814a_iqk_tx_one_shot(struct rtw_dev *rtwdev, u8 path,
-+                                   u32 *tx_matrix, bool *tx_ok)
-+{
-+      u8 bw = rtwdev->hal.current_band_width;
-+      u8 cal_retry;
-+      u32 iqk_cmd;
-+
-+      for (cal_retry = 0; cal_retry < 4; cal_retry++) {
-+              rtw_write32_mask(rtwdev, REG_FAS, BIT(21) | BIT(20), path);
-+
-+              iqk_cmd = 0xf8000001 | ((bw + 3) << 8) | (BIT(path) << 4);
-+
-+              rtw_dbg(rtwdev, RTW_DBG_RFK, "TXK_Trigger = %#x\n", iqk_cmd);
-+
-+              rtw_write32(rtwdev, 0x1b00, iqk_cmd);
-+
-+              usleep_range(10000, 11000);
-+
-+              if (read_poll_timeout(!rtw_read32_mask, *tx_ok, *tx_ok,
-+                                    1000, 20000, false,
-+                                    rtwdev, 0x1b00, BIT(0))) {
-+                      rtw_dbg(rtwdev, RTW_DBG_RFK,
-+                              "tx iqk S%d timed out\n", path);
-+
-+                      rtw8814a_iqk_reset_nctl(rtwdev);
-+              } else {
-+                      *tx_ok = !rtw_read32_mask(rtwdev, 0x1b08, BIT(26));
-+
-+                      if (*tx_ok)
-+                              break;
-+              }
-+      }
-+
-+      rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d tx ==> 0x1b00 = 0x%x\n",
-+              path, rtw_read32(rtwdev, 0x1b00));
-+      rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d tx ==> 0x1b08 = 0x%x\n",
-+              path, rtw_read32(rtwdev, 0x1b08));
-+      rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d tx ==> cal_retry = %x\n",
-+              path, cal_retry);
-+
-+      rtw_write32(rtwdev, 0x1b00, 0xf8000000 | (path << 1));
-+
-+      if (*tx_ok) {
-+              *tx_matrix = rtw_read32(rtwdev, 0x1b38);
-+
-+              rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d_IQC = 0x%x\n",
-+                      path, *tx_matrix);
-+      }
-+}
-+
-+static void rtw8814a_iqk_rx_one_shot(struct rtw_dev *rtwdev, u8 path,
-+                                   u32 *tx_matrix, bool *tx_ok)
-+{
-+      static const u16 iqk_apply[RTW_RF_PATH_MAX] = {
-+              REG_TXAGCIDX, REG_TX_AGC_B, REG_TX_AGC_C, REG_TX_AGC_D
-+      };
-+      u8 band = rtwdev->hal.current_band_type;
-+      u8 bw = rtwdev->hal.current_band_width;
-+      u32 rx_matrix;
-+      u8 cal_retry;
-+      u32 iqk_cmd;
-+      bool rx_ok;
-+
-+      for (cal_retry = 0; cal_retry < 4; cal_retry++) {
-+              rtw_write32_mask(rtwdev, REG_FAS, BIT(21) | BIT(20), path);
-+
-+              if (band == RTW_BAND_2G) {
-+                      rtw_write_rf(rtwdev, path, RF_LUTDBG, BIT(11), 0x1);
-+                      rtw_write_rf(rtwdev, path, RF_GAINTX, 0xfffff, 0x51ce1);
-+
-+                      switch (path) {
-+                      case 0:
-+                      case 1:
-+                              rtw_write32(rtwdev, REG_RFE_PINMUX_B,
-+                                          0x54775477);
-+                              break;
-+                      case 2:
-+                              rtw_write32(rtwdev, REG_RFE_PINMUX_C,
-+                                          0x54775477);
-+                              break;
-+                      case 3:
-+                              rtw_write32(rtwdev, REG_RFE_INVSEL_D, 0x75400000);
-+                              rtw_write32(rtwdev, REG_RFE_PINMUX_D,
-+                                          0x77777777);
-+                              break;
-+                      }
-+              }
-+
-+              iqk_cmd = 0xf8000001 | ((9 - bw) << 8) | (BIT(path) << 4);
-+
-+              rtw_dbg(rtwdev, RTW_DBG_RFK, "RXK_Trigger = 0x%x\n", iqk_cmd);
-+
-+              rtw_write32(rtwdev, 0x1b00, iqk_cmd);
-+
-+              usleep_range(10000, 11000);
-+
-+              if (read_poll_timeout(!rtw_read32_mask, rx_ok, rx_ok,
-+                                    1000, 20000, false,
-+                                    rtwdev, 0x1b00, BIT(0))) {
-+                      rtw_dbg(rtwdev, RTW_DBG_RFK,
-+                              "rx iqk S%d timed out\n", path);
-+
-+                      rtw8814a_iqk_reset_nctl(rtwdev);
-+              } else {
-+                      rx_ok = !rtw_read32_mask(rtwdev, 0x1b08, BIT(26));
-+
-+                      if (rx_ok)
-+                              break;
-+              }
-+      }
-+
-+      rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d rx ==> 0x1b00 = 0x%x\n",
-+              path, rtw_read32(rtwdev, 0x1b00));
-+      rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d rx ==> 0x1b08 = 0x%x\n",
-+              path, rtw_read32(rtwdev, 0x1b08));
-+      rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d rx ==> cal_retry = %x\n",
-+              path, cal_retry);
-+
-+      rtw_write32(rtwdev, 0x1b00, 0xf8000000 | (path << 1));
-+
-+      if (rx_ok) {
-+              rtw_write32(rtwdev, 0x1b3c, 0x20000000);
-+              rx_matrix = rtw_read32(rtwdev, 0x1b3c);
-+
-+              rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d_IQC = 0x%x\n",
-+                      path, rx_matrix);
-+      }
-+
-+      if (*tx_ok)
-+              rtw_write32(rtwdev, 0x1b38, *tx_matrix);
-+      else
-+              rtw_write32_mask(rtwdev, iqk_apply[path], BIT(0), 0x0);
-+
-+      if (!rx_ok)
-+              rtw_write32_mask(rtwdev, iqk_apply[path],
-+                               BIT(11) | BIT(10), 0x0);
-+
-+      if (band == RTW_BAND_2G)
-+              rtw_write_rf(rtwdev, path, RF_LUTDBG, BIT(11), 0x0);
-+}
-+
-+static void rtw8814a_iqk(struct rtw_dev *rtwdev)
-+{
-+      u8 band = rtwdev->hal.current_band_type;
-+      u8 bw = rtwdev->hal.current_band_width;
-+      u32 tx_matrix[RTW_RF_PATH_MAX];
-+      bool tx_ok[RTW_RF_PATH_MAX];
-+      u8 path;
-+
-+      rtw_dbg(rtwdev, RTW_DBG_RFK, "IQK band = %d GHz bw = %d MHz\n",
-+              band == RTW_BAND_2G ? 2 : 5, (1 << (bw + 1)) * 10);
-+
-+      rtw_write_rf(rtwdev, RF_PATH_A, RF_TXMOD, BIT(19), 0x1);
-+      rtw_write_rf(rtwdev, RF_PATH_B, RF_TXMOD, BIT(19), 0x1);
-+      rtw_write_rf(rtwdev, RF_PATH_C, RF_TXMOD, BIT(19), 0x1);
-+      rtw_write_rf(rtwdev, RF_PATH_D, RF_TXMOD, BIT(19), 0x1);
-+
-+      rtw_write32_mask(rtwdev, REG_TXAGCIDX,
-+                       (BIT(11) | BIT(10) | BIT(0)), 0x401);
-+      rtw_write32_mask(rtwdev, REG_TX_AGC_B,
-+                       (BIT(11) | BIT(10) | BIT(0)), 0x401);
-+      rtw_write32_mask(rtwdev, REG_TX_AGC_C,
-+                       (BIT(11) | BIT(10) | BIT(0)), 0x401);
-+      rtw_write32_mask(rtwdev, REG_TX_AGC_D,
-+                       (BIT(11) | BIT(10) | BIT(0)), 0x401);
-+
-+      if (band == RTW_BAND_5G)
-+              rtw_write32(rtwdev, 0x1b00, 0xf8000ff1);
-+      else
-+              rtw_write32(rtwdev, 0x1b00, 0xf8000ef1);
-+
-+      usleep_range(1000, 1100);
-+
-+      rtw_write32(rtwdev, 0x810, 0x20101063);
-+      rtw_write32(rtwdev, REG_DAC_RSTB, 0x0B00C000);
-+
-+      for (path = RF_PATH_A; path < RTW_RF_PATH_MAX; path++)
-+              rtw8814a_lok_one_shot(rtwdev, path);
-+
-+      for (path = RF_PATH_A; path < RTW_RF_PATH_MAX; path++)
-+              rtw8814a_iqk_tx_one_shot(rtwdev, path,
-+                                       &tx_matrix[path], &tx_ok[path]);
-+
-+      for (path = RF_PATH_A; path < RTW_RF_PATH_MAX; path++)
-+              rtw8814a_iqk_rx_one_shot(rtwdev, path,
-+                                       &tx_matrix[path], &tx_ok[path]);
-+}
-+
-+static void rtw8814a_do_iqk(struct rtw_dev *rtwdev)
-+{
-+      static const u32 backup_mac_reg[MAC_REG_NUM_8814] = {0x520, 0x550};
-+      static const u32 backup_bb_reg[BB_REG_NUM_8814] = {
-+              0xa14, 0x808, 0x838, 0x90c, 0x810, 0xcb0, 0xeb0,
-+              0x18b4, 0x1ab4, 0x1abc, 0x9a4, 0x764, 0xcbc, 0x910
-+      };
-+      static const u32 backup_rf_reg[RF_REG_NUM_8814] = {0x0};
-+      u32 rf_backup[RF_REG_NUM_8814][RTW_RF_PATH_MAX];
-+      u32 mac_backup[MAC_REG_NUM_8814];
-+      u32 bb_backup[BB_REG_NUM_8814];
-+
-+      rtw8814a_iqk_backup_mac_bb(rtwdev, mac_backup, bb_backup,
-+                                 backup_mac_reg, backup_bb_reg);
-+      rtw8814a_iqk_afe_setting(rtwdev, true);
-+      rtw8814a_iqk_backup_rf(rtwdev, rf_backup, backup_rf_reg);
-+      rtw8814a_iqk_configure_mac(rtwdev);
-+      rtw8814a_iqk(rtwdev);
-+      rtw8814a_iqk_reset_nctl(rtwdev); /* for 3-wire to BB use */
-+      rtw8814a_iqk_afe_setting(rtwdev, false);
-+      rtw8814a_iqk_restore_mac_bb(rtwdev, mac_backup, bb_backup,
-+                                  backup_mac_reg, backup_bb_reg);
-+      rtw8814a_iqk_restore_rf(rtwdev, rf_backup, backup_rf_reg);
-+}
-+
-+static void rtw8814a_phy_calibration(struct rtw_dev *rtwdev)
-+{
-+      rtw8814a_do_iqk(rtwdev);
-+}
-+
-+static void rtw8814a_coex_cfg_init(struct rtw_dev *rtwdev)
-+{
-+}
-+
-+static void rtw8814a_coex_cfg_ant_switch(struct rtw_dev *rtwdev, u8 ctrl_type,
-+                                       u8 pos_type)
-+{
-+      /* Override rtw_coex_coex_ctrl_owner(). RF path C does not
-+       * function when BIT_LTE_MUX_CTRL_PATH is set.
-+       */
-+      rtw_write8_clr(rtwdev, REG_SYS_SDIO_CTRL + 3,
-+                     BIT_LTE_MUX_CTRL_PATH >> 24);
-+}
-+
-+static void rtw8814a_coex_cfg_gnt_fix(struct rtw_dev *rtwdev)
-+{
-+}
-+
-+static void rtw8814a_coex_cfg_gnt_debug(struct rtw_dev *rtwdev)
-+{
-+}
-+
-+static void rtw8814a_coex_cfg_rfe_type(struct rtw_dev *rtwdev)
-+{
-+      struct rtw_coex *coex = &rtwdev->coex;
-+      struct rtw_coex_rfe *coex_rfe = &coex->rfe;
-+
-+      /* Only needed to make rtw8814a_coex_cfg_ant_switch() run. */
-+      coex_rfe->ant_switch_exist = true;
-+}
-+
-+static void rtw8814a_coex_cfg_wl_tx_power(struct rtw_dev *rtwdev, u8 wl_pwr)
-+{
-+}
-+
-+static void rtw8814a_coex_cfg_wl_rx_gain(struct rtw_dev *rtwdev, bool low_gain)
-+{
-+}
-+
-+static void rtw8814a_txagc_swing_offset(struct rtw_dev *rtwdev, u8 path,
-+                                      u8 tx_pwr_idx_offset,
-+                                      s8 *txagc_idx, u8 *swing_idx)
-+{
-+      struct rtw_dm_info *dm_info = &rtwdev->dm_info;
-+      u8 swing_upper_bound = dm_info->default_ofdm_index + 10;
-+      s8 delta_pwr_idx = dm_info->delta_power_index[path];
-+      u8 swing_index = dm_info->default_ofdm_index;
-+      u8 max_tx_pwr_idx_offset = 0xf;
-+      u8 swing_lower_bound = 0;
-+      s8 agc_index = 0;
-+
-+      tx_pwr_idx_offset = min_t(u8, tx_pwr_idx_offset, max_tx_pwr_idx_offset);
-+
-+      if (delta_pwr_idx >= 0) {
-+              if (delta_pwr_idx <= tx_pwr_idx_offset) {
-+                      agc_index = delta_pwr_idx;
-+                      swing_index = dm_info->default_ofdm_index;
-+              } else if (delta_pwr_idx > tx_pwr_idx_offset) {
-+                      agc_index = tx_pwr_idx_offset;
-+                      swing_index = dm_info->default_ofdm_index +
-+                                      delta_pwr_idx - tx_pwr_idx_offset;
-+                      swing_index = min_t(u8, swing_index, swing_upper_bound);
-+              }
-+      } else {
-+              if (dm_info->default_ofdm_index > abs(delta_pwr_idx))
-+                      swing_index =
-+                              dm_info->default_ofdm_index + delta_pwr_idx;
-+              else
-+                      swing_index = swing_lower_bound;
-+              swing_index = max_t(u8, swing_index, swing_lower_bound);
-+
-+              agc_index = 0;
-+      }
-+
-+      if (swing_index >= RTW_TXSCALE_SIZE) {
-+              rtw_warn(rtwdev, "swing index overflow\n");
-+              swing_index = RTW_TXSCALE_SIZE - 1;
-+      }
-+      *txagc_idx = agc_index;
-+      *swing_idx = swing_index;
-+}
-+
-+static void rtw8814a_pwrtrack_set_pwr(struct rtw_dev *rtwdev, u8 path,
-+                                    u8 pwr_idx_offset)
-+{
-+      static const u32 txagc_reg[RTW_RF_PATH_MAX] = {
-+              REG_TX_AGC_A, REG_TX_AGC_B, REG_TX_AGC_C, REG_TX_AGC_D
-+      };
-+      static const u32 txscale_reg[RTW_RF_PATH_MAX] = {
-+              REG_TXSCALE_A, REG_TXSCALE_B, REG_TXSCALE_C, REG_TXSCALE_D
-+      };
-+      s8 txagc_idx;
-+      u8 swing_idx;
-+
-+      rtw8814a_txagc_swing_offset(rtwdev, path, pwr_idx_offset,
-+                                  &txagc_idx, &swing_idx);
-+      rtw_write32_mask(rtwdev, txagc_reg[path], GENMASK(29, 25),
-+                       txagc_idx);
-+      rtw_write32_mask(rtwdev, txscale_reg[path], BB_SWING_MASK,
-+                       rtw8814a_txscale_tbl[swing_idx]);
-+}
-+
-+static void rtw8814a_pwrtrack_set(struct rtw_dev *rtwdev, u8 path)
-+{
-+      u8 max_pwr_idx = rtwdev->chip->max_power_index;
-+      u8 band_width = rtwdev->hal.current_band_width;
-+      u8 channel = rtwdev->hal.current_channel;
-+      u8 tx_rate = rtwdev->dm_info.tx_rate;
-+      u8 regd = rtw_regd_get(rtwdev);
-+      u8 pwr_idx_offset, tx_pwr_idx;
-+
-+      tx_pwr_idx = rtw_phy_get_tx_power_index(rtwdev, path, tx_rate,
-+                                              band_width, channel, regd);
-+
-+      tx_pwr_idx = min_t(u8, tx_pwr_idx, max_pwr_idx);
-+
-+      pwr_idx_offset = max_pwr_idx - tx_pwr_idx;
-+
-+      rtw8814a_pwrtrack_set_pwr(rtwdev, path, pwr_idx_offset);
-+}
-+
-+static void rtw8814a_phy_pwrtrack_path(struct rtw_dev *rtwdev,
-+                                     struct rtw_swing_table *swing_table,
-+                                     u8 path)
-+{
-+      struct rtw_dm_info *dm_info = &rtwdev->dm_info;
-+      u8 power_idx_cur, power_idx_last;
-+      u8 delta;
-+
-+      /* 8814A only has one thermal meter at PATH A */
-+      delta = rtw_phy_pwrtrack_get_delta(rtwdev, RF_PATH_A);
-+
-+      power_idx_last = dm_info->delta_power_index[path];
-+      power_idx_cur = rtw_phy_pwrtrack_get_pwridx(rtwdev, swing_table,
-+                                                  path, RF_PATH_A, delta);
-+
-+      /* if delta of power indexes are the same, just skip */
-+      if (power_idx_cur == power_idx_last)
-+              return;
-+
-+      dm_info->delta_power_index[path] = power_idx_cur;
-+      rtw8814a_pwrtrack_set(rtwdev, path);
-+}
-+
-+static void rtw8814a_phy_pwrtrack(struct rtw_dev *rtwdev)
-+{
-+      struct rtw_dm_info *dm_info = &rtwdev->dm_info;
-+      struct rtw_swing_table swing_table;
-+      u8 thermal_value, path;
-+
-+      rtw_phy_config_swing_table(rtwdev, &swing_table);
-+
-+      if (rtwdev->efuse.thermal_meter[RF_PATH_A] == 0xff)
-+              return;
-+
-+      thermal_value = rtw_read_rf(rtwdev, RF_PATH_A, RF_T_METER, 0xfc00);
-+
-+      rtw_phy_pwrtrack_avg(rtwdev, thermal_value, RF_PATH_A);
-+
-+      if (dm_info->pwr_trk_init_trigger)
-+              dm_info->pwr_trk_init_trigger = false;
-+      else if (!rtw_phy_pwrtrack_thermal_changed(rtwdev, thermal_value,
-+                                                 RF_PATH_A))
-+              goto iqk;
-+
-+      for (path = RF_PATH_A; path < rtwdev->hal.rf_path_num; path++)
-+              rtw8814a_phy_pwrtrack_path(rtwdev, &swing_table, path);
-+
-+iqk:
-+      if (rtw_phy_pwrtrack_need_iqk(rtwdev))
-+              rtw8814a_do_iqk(rtwdev);
-+}
-+
-+static void rtw8814a_pwr_track(struct rtw_dev *rtwdev)
-+{
-+      struct rtw_dm_info *dm_info = &rtwdev->dm_info;
-+
-+      if (!dm_info->pwr_trk_triggered) {
-+              rtw_write_rf(rtwdev, RF_PATH_A, RF_T_METER,
-+                           GENMASK(17, 16), 0x03);
-+              dm_info->pwr_trk_triggered = true;
-+              return;
-+      }
-+
-+      rtw8814a_phy_pwrtrack(rtwdev);
-+      dm_info->pwr_trk_triggered = false;
-+}
-+
-+static void rtw8814a_phy_cck_pd_set(struct rtw_dev *rtwdev, u8 new_lvl)
-+{
-+      static const u8 pd[CCK_PD_LV_MAX] = {0x40, 0x83, 0xcd, 0xdd, 0xed};
-+      struct rtw_dm_info *dm_info = &rtwdev->dm_info;
-+
-+      /* Override rtw_phy_cck_pd_lv_link(). It implements something
-+       * like type 2/3/4. We need type 1 here.
-+       */
-+      if (rtw_is_assoc(rtwdev)) {
-+              if (dm_info->min_rssi > 60) {
-+                      new_lvl = CCK_PD_LV3;
-+              } else if (dm_info->min_rssi > 35) {
-+                      new_lvl = CCK_PD_LV2;
-+              } else if (dm_info->min_rssi > 20) {
-+                      if (dm_info->cck_fa_avg > 500)
-+                              new_lvl = CCK_PD_LV2;
-+                      else if (dm_info->cck_fa_avg < 250)
-+                              new_lvl = CCK_PD_LV1;
-+                      else
-+                              return;
-+              } else {
-+                      new_lvl = CCK_PD_LV1;
-+              }
-+      }
-+
-+      rtw_dbg(rtwdev, RTW_DBG_PHY, "lv: (%d) -> (%d)\n",
-+              dm_info->cck_pd_lv[RTW_CHANNEL_WIDTH_20][RF_PATH_A], new_lvl);
-+
-+      if (dm_info->cck_pd_lv[RTW_CHANNEL_WIDTH_20][RF_PATH_A] == new_lvl)
-+              return;
-+
-+      dm_info->cck_fa_avg = CCK_FA_AVG_RESET;
-+      dm_info->cck_pd_lv[RTW_CHANNEL_WIDTH_20][RF_PATH_A] = new_lvl;
-+
-+      rtw_write8(rtwdev, REG_CCK_PD_TH, pd[new_lvl]);
-+}
-+
-+static void rtw8814a_led_set(struct led_classdev *led,
-+                           enum led_brightness brightness)
-+{
-+      struct rtw_dev *rtwdev = container_of(led, struct rtw_dev, led_cdev);
-+      u32 led_gpio_cfg;
-+
-+      led_gpio_cfg = rtw_read32(rtwdev, REG_GPIO_PIN_CTRL_2);
-+      led_gpio_cfg |= BIT(16) | BIT(17) | BIT(21) | BIT(22);
-+
-+      if (brightness == LED_OFF) {
-+              led_gpio_cfg |= BIT(8) | BIT(9) | BIT(13) | BIT(14);
-+      } else {
-+              led_gpio_cfg &= ~(BIT(8) | BIT(9) | BIT(13) | BIT(14));
-+              led_gpio_cfg &= ~(BIT(0) | BIT(1) | BIT(5) | BIT(6));
-+      }
-+
-+      rtw_write32(rtwdev, REG_GPIO_PIN_CTRL_2, led_gpio_cfg);
-+}
-+
-+static void rtw8814a_fill_txdesc_checksum(struct rtw_dev *rtwdev,
-+                                        struct rtw_tx_pkt_info *pkt_info,
-+                                        u8 *txdesc)
-+{
-+      size_t words = 32 / 2; /* calculate the first 32 bytes (16 words) */
-+
-+      fill_txdesc_checksum_common(txdesc, words);
-+}
-+
-+static const struct rtw_chip_ops rtw8814a_ops = {
-+      .power_on               = rtw_power_on,
-+      .power_off              = rtw_power_off,
-+      .phy_set_param          = rtw8814a_phy_set_param,
-+      .read_efuse             = rtw8814a_read_efuse,
-+      .query_phy_status       = rtw8814a_query_phy_status,
-+      .set_channel            = rtw8814a_set_channel,
-+      .mac_init               = rtw8814a_mac_init,
-+      .read_rf                = rtw_phy_read_rf,
-+      .write_rf               = rtw_phy_write_rf_reg_sipi,
-+      .set_tx_power_index     = rtw8814a_set_tx_power_index,
-+      .set_antenna            = NULL,
-+      .cfg_ldo25              = rtw8814a_cfg_ldo25,
-+      .efuse_grant            = rtw8814a_efuse_grant,
-+      .false_alarm_statistics = rtw8814a_false_alarm_statistics,
-+      .phy_calibration        = rtw8814a_phy_calibration,
-+      .cck_pd_set             = rtw8814a_phy_cck_pd_set,
-+      .pwr_track              = rtw8814a_pwr_track,
-+      .config_bfee            = NULL,
-+      .set_gid_table          = NULL,
-+      .cfg_csi_rate           = NULL,
-+      .led_set                = rtw8814a_led_set,
-+      .fill_txdesc_checksum   = rtw8814a_fill_txdesc_checksum,
-+
-+      .coex_set_init          = rtw8814a_coex_cfg_init,
-+      .coex_set_ant_switch    = rtw8814a_coex_cfg_ant_switch,
-+      .coex_set_gnt_fix       = rtw8814a_coex_cfg_gnt_fix,
-+      .coex_set_gnt_debug     = rtw8814a_coex_cfg_gnt_debug,
-+      .coex_set_rfe_type      = rtw8814a_coex_cfg_rfe_type,
-+      .coex_set_wl_tx_power   = rtw8814a_coex_cfg_wl_tx_power,
-+      .coex_set_wl_rx_gain    = rtw8814a_coex_cfg_wl_rx_gain,
-+};
-+
-+static const struct rtw_rqpn rqpn_table_8814a[] = {
-+      /* SDIO */
-+      {RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_NORMAL, /* vo vi */
-+       RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,       /* be bk */
-+       RTW_DMA_MAPPING_EXTRA, RTW_DMA_MAPPING_HIGH},   /* mg hi */
-+      /* PCIE */
-+      {RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_NORMAL,
-+       RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
-+       RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_HIGH},
-+      /* USB, 2 bulk out */
-+      {RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_HIGH,
-+       RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_NORMAL,
-+       RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_HIGH},
-+      /* USB, 3 bulk out */
-+      {RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_NORMAL,
-+       RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
-+       RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_HIGH},
-+      /* USB, 4 bulk out */
-+      {RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_NORMAL,
-+       RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
-+       RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_HIGH},
-+};
-+
-+static const struct rtw_prioq_addrs prioq_addrs_8814a = {
-+      .prio[RTW_DMA_MAPPING_EXTRA] = {
-+              .rsvd = REG_FIFOPAGE_INFO_4, .avail = REG_FIFOPAGE_INFO_4 + 2,
-+      },
-+      .prio[RTW_DMA_MAPPING_LOW] = {
-+              .rsvd = REG_FIFOPAGE_INFO_2, .avail = REG_FIFOPAGE_INFO_2 + 2,
-+      },
-+      .prio[RTW_DMA_MAPPING_NORMAL] = {
-+              .rsvd = REG_FIFOPAGE_INFO_3, .avail = REG_FIFOPAGE_INFO_3 + 2,
-+      },
-+      .prio[RTW_DMA_MAPPING_HIGH] = {
-+              .rsvd = REG_FIFOPAGE_INFO_1, .avail = REG_FIFOPAGE_INFO_1 + 2,
-+      },
-+      .wsize = true,
-+};
-+
-+static const struct rtw_page_table page_table_8814a[] = {
-+      /* SDIO */
-+      {0, 0, 0, 0, 0},        /* hq nq lq exq gapq */
-+      /* PCIE */
-+      {32, 32, 32, 32, 0},
-+      /* USB, 2 bulk out */
-+      {32, 32, 32, 32, 0},
-+      /* USB, 3 bulk out */
-+      {32, 32, 32, 32, 0},
-+      /* USB, 4 bulk out */
-+      {32, 32, 32, 32, 0},
-+};
-+
-+static const struct rtw_intf_phy_para_table phy_para_table_8814a = {};
-+
-+static const struct rtw_hw_reg rtw8814a_dig[] = {
-+      [0] = { .addr = 0xc50, .mask = 0x7f },
-+      [1] = { .addr = 0xe50, .mask = 0x7f },
-+      [2] = { .addr = 0x1850, .mask = 0x7f },
-+      [3] = { .addr = 0x1a50, .mask = 0x7f },
-+};
-+
-+static const struct rtw_rfe_def rtw8814a_rfe_defs[] = {
-+      [0] = { .phy_pg_tbl     = &rtw8814a_bb_pg_type0_tbl,
-+              .txpwr_lmt_tbl  = &rtw8814a_txpwr_lmt_type0_tbl,
-+              .pwr_track_tbl  = &rtw8814a_rtw_pwrtrk_type0_tbl },
-+      [1] = { .phy_pg_tbl     = &rtw8814a_bb_pg_tbl,
-+              .txpwr_lmt_tbl  = &rtw8814a_txpwr_lmt_type1_tbl,
-+              .pwr_track_tbl  = &rtw8814a_rtw_pwrtrk_tbl },
-+};
-+
-+/* rssi in percentage % (dbm = % - 100) */
-+static const u8 wl_rssi_step_8814a[] = {60, 50, 44, 30};
-+static const u8 bt_rssi_step_8814a[] = {30, 30, 30, 30};
-+
-+/* wl_tx_dec_power, bt_tx_dec_power, wl_rx_gain, bt_rx_lna_constrain */
-+static const struct coex_rf_para rf_para_tx_8814a[] = {
-+      {0, 0, false, 7},  /* for normal */
-+      {0, 16, false, 7}, /* for WL-CPT */
-+      {4, 0, true, 1},
-+      {3, 6, true, 1},
-+      {2, 9, true, 1},
-+      {1, 13, true, 1}
-+};
-+
-+static const struct coex_rf_para rf_para_rx_8814a[] = {
-+      {0, 0, false, 7},  /* for normal */
-+      {0, 16, false, 7}, /* for WL-CPT */
-+      {4, 0, true, 1},
-+      {3, 6, true, 1},
-+      {2, 9, true, 1},
-+      {1, 13, true, 1}
-+};
-+
-+static_assert(ARRAY_SIZE(rf_para_tx_8814a) == ARRAY_SIZE(rf_para_rx_8814a));
-+
-+const struct rtw_chip_info rtw8814a_hw_spec = {
-+      .ops = &rtw8814a_ops,
-+      .id = RTW_CHIP_TYPE_8814A,
-+      .fw_name = "rtw88/rtw8814a_fw.bin",
-+      .wlan_cpu = RTW_WCPU_11AC,
-+      .tx_pkt_desc_sz = 40,
-+      .tx_buf_desc_sz = 16,
-+      .rx_pkt_desc_sz = 24,
-+      .rx_buf_desc_sz = 8,
-+      .phy_efuse_size = 1024,
-+      .log_efuse_size = 512,
-+      .ptct_efuse_size = 0,
-+      .txff_size = (2048 - 10) * TX_PAGE_SIZE,
-+      .rxff_size = 23552,
-+      .rsvd_drv_pg_num = 8,
-+      .band = RTW_BAND_2G | RTW_BAND_5G,
-+      .page_size = TX_PAGE_SIZE,
-+      .csi_buf_pg_num = 0,
-+      .dig_min = 0x1c,
-+      .txgi_factor = 1,
-+      .is_pwr_by_rate_dec = true,
-+      .rx_ldpc = true,
-+      .max_power_index = 0x3f,
-+      .ampdu_density = IEEE80211_HT_MPDU_DENSITY_2,
-+      .usb_tx_agg_desc_num = 3,
-+      .hw_feature_report = false,
-+      .c2h_ra_report_size = 6,
-+      .old_datarate_fb_limit = false,
-+      .ht_supported = true,
-+      .vht_supported = true,
-+      .lps_deep_mode_supported = BIT(LPS_DEEP_MODE_LCLK),
-+      .sys_func_en = 0xDC,
-+      .pwr_on_seq = card_enable_flow_8814a,
-+      .pwr_off_seq = card_disable_flow_8814a,
-+      .rqpn_table = rqpn_table_8814a,
-+      .prioq_addrs = &prioq_addrs_8814a,
-+      .page_table = page_table_8814a,
-+      .intf_table = &phy_para_table_8814a,
-+      .dig = rtw8814a_dig,
-+      .dig_cck = NULL,
-+      .rf_base_addr = {0x2800, 0x2c00, 0x3800, 0x3c00},
-+      .rf_sipi_addr = {0xc90, 0xe90, 0x1890, 0x1a90},
-+      .ltecoex_addr = NULL,
-+      .mac_tbl = &rtw8814a_mac_tbl,
-+      .agc_tbl = &rtw8814a_agc_tbl,
-+      .bb_tbl = &rtw8814a_bb_tbl,
-+      .rf_tbl = {&rtw8814a_rf_a_tbl, &rtw8814a_rf_b_tbl,
-+                 &rtw8814a_rf_c_tbl, &rtw8814a_rf_d_tbl},
-+      .rfe_defs = rtw8814a_rfe_defs,
-+      .rfe_defs_size = ARRAY_SIZE(rtw8814a_rfe_defs),
-+      .iqk_threshold = 8,
-+      .max_scan_ie_len = IEEE80211_MAX_DATA_LEN,
-+
-+      .coex_para_ver = 0,
-+      .bt_desired_ver = 0,
-+      .scbd_support = false,
-+      .new_scbd10_def = false,
-+      .ble_hid_profile_support = false,
-+      .wl_mimo_ps_support = false,
-+      .pstdma_type = COEX_PSTDMA_FORCE_LPSOFF,
-+      .bt_rssi_type = COEX_BTRSSI_RATIO,
-+      .ant_isolation = 15,
-+      .rssi_tolerance = 2,
-+      .wl_rssi_step = wl_rssi_step_8814a,
-+      .bt_rssi_step = bt_rssi_step_8814a,
-+      .table_sant_num = 0,
-+      .table_sant = NULL,
-+      .table_nsant_num = 0,
-+      .table_nsant = NULL,
-+      .tdma_sant_num = 0,
-+      .tdma_sant = NULL,
-+      .tdma_nsant_num = 0,
-+      .tdma_nsant = NULL,
-+      .wl_rf_para_num = ARRAY_SIZE(rf_para_tx_8814a),
-+      .wl_rf_para_tx = rf_para_tx_8814a,
-+      .wl_rf_para_rx = rf_para_rx_8814a,
-+      .bt_afh_span_bw20 = 0x24,
-+      .bt_afh_span_bw40 = 0x36,
-+      .afh_5g_num = 0,
-+      .afh_5g = NULL,
-+      .coex_info_hw_regs_num = 0,
-+      .coex_info_hw_regs = NULL,
-+};
-+EXPORT_SYMBOL(rtw8814a_hw_spec);
-+
-+MODULE_FIRMWARE("rtw88/rtw8814a_fw.bin");
-+
-+MODULE_AUTHOR("Bitterblue Smith <[email protected]>");
-+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8814a driver");
-+MODULE_LICENSE("Dual BSD/GPL");
---- /dev/null
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8814a.h
-@@ -0,0 +1,62 @@
-+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
-+/* Copyright(c) 2025  Realtek Corporation
-+ */
-+
-+#ifndef __RTW8814A_H__
-+#define __RTW8814A_H__
-+
-+struct rtw8814au_efuse {
-+      u8 vid[2];                      /* 0xd0 */
-+      u8 pid[2];                      /* 0xd2 */
-+      u8 res[4];                      /* 0xd4 */
-+      u8 mac_addr[ETH_ALEN];          /* 0xd8 */
-+} __packed;
-+
-+struct rtw8814ae_efuse {
-+      u8 mac_addr[ETH_ALEN];          /* 0xd0 */
-+      u8 vid[2];                      /* 0xd6 */
-+      u8 did[2];                      /* 0xd8 */
-+      u8 svid[2];                     /* 0xda */
-+      u8 smid[2];                     /* 0xdc */
-+} __packed;
-+
-+struct rtw8814a_efuse {
-+      __le16 rtl_id;
-+      u8 res0[0x0c];
-+      u8 usb_mode;                    /* 0x0e */
-+      u8 res1;
-+
-+      /* power index for four RF paths */
-+      struct rtw_txpwr_idx txpwr_idx_table[4];
-+
-+      u8 channel_plan;                /* 0xb8 */
-+      u8 xtal_k;                      /* 0xb9 */
-+      u8 thermal_meter;               /* 0xba */
-+      u8 iqk_lck;                     /* 0xbb */
-+      u8 pa_type;                     /* 0xbc */
-+      u8 lna_type_2g[2];              /* 0xbd */
-+      u8 lna_type_5g[2];              /* 0xbf */
-+      u8 rf_board_option;             /* 0xc1 */
-+      u8 res2;
-+      u8 rf_bt_setting;               /* 0xc3 */
-+      u8 eeprom_version;              /* 0xc4 */
-+      u8 eeprom_customer_id;          /* 0xc5 */
-+      u8 tx_bb_swing_setting_2g;      /* 0xc6 */
-+      u8 tx_bb_swing_setting_5g;      /* 0xc7 */
-+      u8 res3;
-+      u8 trx_antenna_option;          /* 0xc9 */
-+      u8 rfe_option;                  /* 0xca */
-+      u8 country_code[2];             /* 0xcb */
-+      u8 res4[3];
-+      union {
-+              struct rtw8814au_efuse u;
-+              struct rtw8814ae_efuse e;
-+      };
-+      u8 res5[0x122];                 /* 0xde */
-+} __packed;
-+
-+static_assert(sizeof(struct rtw8814a_efuse) == 512);
-+
-+extern const struct rtw_chip_info rtw8814a_hw_spec;
-+
-+#endif
diff --git a/package/kernel/mac80211/patches/rtl/089-v6.15-wifi-rtw88-Add-rtw8814ae.c.patch b/package/kernel/mac80211/patches/rtl/089-v6.15-wifi-rtw88-Add-rtw8814ae.c.patch
deleted file mode 100644 (file)
index 0aa9a90..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-From dad8e879310211c1e02f09c35f169388bccbfa42 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Fri, 7 Mar 2025 02:25:09 +0200
-Subject: [PATCH] wifi: rtw88: Add rtw8814ae.c
-
-This is the entry point for the new module rtw88_8814ae.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- .../net/wireless/realtek/rtw88/rtw8814ae.c    | 31 +++++++++++++++++++
- 1 file changed, 31 insertions(+)
- create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8814ae.c
-
---- /dev/null
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8814ae.c
-@@ -0,0 +1,31 @@
-+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
-+/* Copyright(c) 2025  Realtek Corporation
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/pci.h>
-+#include "pci.h"
-+#include "rtw8814a.h"
-+
-+static const struct pci_device_id rtw_8814ae_id_table[] = {
-+      {
-+              PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8813),
-+              .driver_data = (kernel_ulong_t)&rtw8814a_hw_spec
-+      },
-+      {}
-+};
-+MODULE_DEVICE_TABLE(pci, rtw_8814ae_id_table);
-+
-+static struct pci_driver rtw_8814ae_driver = {
-+      .name = "rtw_8814ae",
-+      .id_table = rtw_8814ae_id_table,
-+      .probe = rtw_pci_probe,
-+      .remove = rtw_pci_remove,
-+      .driver.pm = &rtw_pm_ops,
-+      .shutdown = rtw_pci_shutdown,
-+};
-+module_pci_driver(rtw_8814ae_driver);
-+
-+MODULE_AUTHOR("Bitterblue Smith <[email protected]>");
-+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8814ae driver");
-+MODULE_LICENSE("Dual BSD/GPL");
diff --git a/package/kernel/mac80211/patches/rtl/090-v6.15-wifi-rtw88-Add-rtw8814au.c.patch b/package/kernel/mac80211/patches/rtl/090-v6.15-wifi-rtw88-Add-rtw8814au.c.patch
deleted file mode 100644 (file)
index b83174d..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-From bad060e8a425182809bfc2586a2e7f5ccd1a994d Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Fri, 7 Mar 2025 02:25:37 +0200
-Subject: [PATCH] wifi: rtw88: Add rtw8814au.c
-
-This is the entry point for the new module rtw88_8814au.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- .../net/wireless/realtek/rtw88/rtw8814au.c    | 54 +++++++++++++++++++
- 1 file changed, 54 insertions(+)
- create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8814au.c
-
---- /dev/null
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8814au.c
-@@ -0,0 +1,54 @@
-+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
-+/* Copyright(c) 2025  Realtek Corporation
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/usb.h>
-+#include "main.h"
-+#include "rtw8814a.h"
-+#include "usb.h"
-+
-+static const struct usb_device_id rtw_8814au_id_table[] = {
-+      { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8813, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x056e, 0x400b, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x056e, 0x400d, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x0846, 0x9054, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x1817, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x1852, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x1853, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x0e66, 0x0026, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x331a, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x20f4, 0x809a, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x20f4, 0x809b, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0106, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xa834, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xa833, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
-+      {},
-+};
-+MODULE_DEVICE_TABLE(usb, rtw_8814au_id_table);
-+
-+static struct usb_driver rtw_8814au_driver = {
-+      .name = "rtw_8814au",
-+      .id_table = rtw_8814au_id_table,
-+      .probe = rtw_usb_probe,
-+      .disconnect = rtw_usb_disconnect,
-+};
-+module_usb_driver(rtw_8814au_driver);
-+
-+MODULE_AUTHOR("Bitterblue Smith <[email protected]>");
-+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8814au driver");
-+MODULE_LICENSE("Dual BSD/GPL");
diff --git a/package/kernel/mac80211/patches/rtl/091-v6.15-wifi-rtw88-Add-__nonstring-annotations-for-untermina.patch b/package/kernel/mac80211/patches/rtl/091-v6.15-wifi-rtw88-Add-__nonstring-annotations-for-untermina.patch
deleted file mode 100644 (file)
index 4bb3253..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-From d58ad77d5cc2a6d04db622a898e54d93fc7002a2 Mon Sep 17 00:00:00 2001
-From: Kees Cook <[email protected]>
-Date: Mon, 10 Mar 2025 15:22:58 -0700
-Subject: [PATCH] wifi: rtw88: Add __nonstring annotations for unterminated
- strings
-
-When a character array without a terminating NUL character has a static
-initializer, GCC 15's -Wunterminated-string-initialization will only
-warn if the array lacks the "nonstring" attribute[1]. Mark the arrays
-with __nonstring to and correctly identify the char array as "not a C
-string" and thereby eliminate the warning.
-
-Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117178 [1]
-Cc: Ping-Ke Shih <[email protected]>
-Cc: Johannes Berg <[email protected]>
-Signed-off-by: Kees Cook <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/main.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/wireless/realtek/rtw88/main.h
-+++ b/drivers/net/wireless/realtek/rtw88/main.h
-@@ -835,7 +835,7 @@ struct rtw_vif {
- };
- struct rtw_regulatory {
--      char alpha2[2];
-+      char alpha2[2] __nonstring;
-       u8 txpwr_regd_2g;
-       u8 txpwr_regd_5g;
- };
diff --git a/package/kernel/mac80211/patches/rtl/092-v6.15-wifi-rtw88-Enable-the-new-RTL8814AE-RTL8814AU-driver.patch b/package/kernel/mac80211/patches/rtl/092-v6.15-wifi-rtw88-Enable-the-new-RTL8814AE-RTL8814AU-driver.patch
deleted file mode 100644 (file)
index 0b7d5d7..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From deb3ddeb18652118956fb581a39ac299e1ee5623 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Fri, 7 Mar 2025 02:26:25 +0200
-Subject: [PATCH] wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers
-
-RTL8814A is a wifi 5 chip with 4 RF paths (chains), 3 spatial streams,
-and probably no Bluetooth.
-
-The USB-based RTL8814AU can reach 800 Mbps in the 5 GHz band in USB 3
-mode. In USB 2 mode it only uses 2 spatial streams.
-
-The PCI-based RTL8814AE is not as popular and didn't get as much
-testing so it's unclear how fast it goes. It's more like a bonus on top
-of the RTL8814AU support.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/Kconfig  | 25 +++++++++++++++++++++
- drivers/net/wireless/realtek/rtw88/Makefile |  9 ++++++++
- 2 files changed, 34 insertions(+)
-
---- a/Kconfig.local
-+++ b/Kconfig.local
-@@ -1138,6 +1138,9 @@ config BACKPORTED_RTW88_8821A
- config BACKPORTED_RTW88_8812A
-       tristate
-       default RTW88_8812A
-+config BACKPORTED_RTW88_8814A
-+      tristate
-+      default RTW88_8814A
- config BACKPORTED_RTW88_8822BE
-       tristate
-       default RTW88_8822BE
-@@ -1183,6 +1186,12 @@ config BACKPORTED_RTW88_8821AU
- config BACKPORTED_RTW88_8812AU
-       tristate
-       default RTW88_8812AU
-+config BACKPORTED_RTW88_8814AE
-+      tristate
-+      default RTW88_8814AE
-+config BACKPORTED_RTW88_8814AU
-+      tristate
-+      default RTW88_8814AU
- config BACKPORTED_RTW88_DEBUG
-       tristate
-       default RTW88_DEBUG
---- a/drivers/net/wireless/realtek/rtw88/Kconfig
-+++ b/drivers/net/wireless/realtek/rtw88/Kconfig
-@@ -68,6 +68,10 @@ config RTW88_8812A
-       depends on m
-       select RTW88_88XXA
-+config RTW88_8814A
-+      tristate
-+      depends on m
-+
- config RTW88_8822BE
-       tristate "Realtek 8822BE PCI wireless network adapter"
-       depends on m
-@@ -251,6 +255,30 @@ config RTW88_8812AU
-         802.11ac USB wireless network adapter
-+config RTW88_8814AE
-+      tristate "Realtek 8814AE PCI wireless network adapter"
-+      depends on m
-+      depends on PCI
-+      select RTW88_CORE
-+      select RTW88_PCI
-+      select RTW88_8814A
-+      help
-+        Select this option will enable support for 8814AE chipset
-+
-+        802.11ac PCIe wireless network adapter
-+
-+config RTW88_8814AU
-+      tristate "Realtek 8814AU USB wireless network adapter"
-+      depends on m
-+      depends on USB
-+      select RTW88_CORE
-+      select RTW88_USB
-+      select RTW88_8814A
-+      help
-+        Select this option will enable support for 8814AU chipset
-+
-+        802.11ac USB wireless network adapter
-+
- config RTW88_DEBUG
-       bool "Realtek rtw88 debug support"
-       depends on RTW88_CORE
---- a/drivers/net/wireless/realtek/rtw88/Makefile
-+++ b/drivers/net/wireless/realtek/rtw88/Makefile
-@@ -94,6 +94,15 @@ rtw88_8821au-objs           := rtw8821au.o
- obj-$(CPTCFG_RTW88_8812AU)    += rtw88_8812au.o
- rtw88_8812au-objs             := rtw8812au.o
-+obj-$(CPTCFG_RTW88_8814A)     += rtw88_8814a.o
-+rtw88_8814a-objs              := rtw8814a.o rtw8814a_table.o
-+
-+obj-$(CPTCFG_RTW88_8814AE)    += rtw88_8814ae.o
-+rtw88_8814ae-objs             := rtw8814ae.o
-+
-+obj-$(CPTCFG_RTW88_8814AU)    += rtw88_8814au.o
-+rtw88_8814au-objs             := rtw8814au.o
-+
- obj-$(CPTCFG_RTW88_PCI)               += rtw88_pci.o
- rtw88_pci-objs                        := pci.o
---- a/local-symbols
-+++ b/local-symbols
-@@ -375,6 +375,7 @@ RTW88_8821C=
- RTW88_88XXA=
- RTW88_8821A=
- RTW88_8812A=
-+RTW88_8814A=
- RTW88_8822BE=
- RTW88_8822BS=
- RTW88_8822BU=
-@@ -390,6 +391,8 @@ RTW88_8821CS=
- RTW88_8821CU=
- RTW88_8821AU=
- RTW88_8812AU=
-+RTW88_8814AE=
-+RTW88_8814AU=
- RTW88_DEBUG=
- RTW88_DEBUGFS=
- RTW88_LEDS=
diff --git a/package/kernel/mac80211/patches/rtl/093-v6.16-wifi-rtw88-sdio-Remove-redundant-flush_workqueue-cal.patch b/package/kernel/mac80211/patches/rtl/093-v6.16-wifi-rtw88-sdio-Remove-redundant-flush_workqueue-cal.patch
deleted file mode 100644 (file)
index 9852bdf..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-From 5c4cf36c538bb2714e43654e365cb77b19c4a93e Mon Sep 17 00:00:00 2001
-From: Chen Ni <[email protected]>
-Date: Mon, 24 Mar 2025 15:59:10 +0800
-Subject: [PATCH] wifi: rtw88: sdio: Remove redundant 'flush_workqueue()' calls
-
-'destroy_workqueue()' already drains the queue before destroying it, so
-there is no need to flush it explicitly.
-
-Remove the redundant 'flush_workqueue()' calls.
-
-This was generated with coccinelle:
-
-@@
-expression E;
-@@
-
-- flush_workqueue(E);
-  destroy_workqueue(E);
-
-Signed-off-by: Chen Ni <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/sdio.c | 1 -
- 1 file changed, 1 deletion(-)
-
---- a/drivers/net/wireless/realtek/rtw88/sdio.c
-+++ b/drivers/net/wireless/realtek/rtw88/sdio.c
-@@ -1298,7 +1298,6 @@ static void rtw_sdio_deinit_tx(struct rt
-       struct rtw_sdio *rtwsdio = (struct rtw_sdio *)rtwdev->priv;
-       int i;
--      flush_workqueue(rtwsdio->txwq);
-       destroy_workqueue(rtwsdio->txwq);
-       kfree(rtwsdio->tx_handler_data);
diff --git a/package/kernel/mac80211/patches/rtl/094-v6.16-wifi-rtw88-usb-Remove-redundant-flush_workqueue-call.patch b/package/kernel/mac80211/patches/rtl/094-v6.16-wifi-rtw88-usb-Remove-redundant-flush_workqueue-call.patch
deleted file mode 100644 (file)
index f819b8d..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From 625fbc16524a45488f6eb8561d98b3328efe79cd Mon Sep 17 00:00:00 2001
-From: Chen Ni <[email protected]>
-Date: Mon, 24 Mar 2025 16:03:03 +0800
-Subject: [PATCH] wifi: rtw88: usb: Remove redundant 'flush_workqueue()' calls
-
-'destroy_workqueue()' already drains the queue before destroying it, so
-there is no need to flush it explicitly.
-
-Remove the redundant 'flush_workqueue()' calls.
-
-This was generated with coccinelle:
-
-@@
-expression E;
-@@
-
-- flush_workqueue(E);
-  destroy_workqueue(E);
-
-Signed-off-by: Chen Ni <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/usb.c | 2 --
- 1 file changed, 2 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/usb.c
-+++ b/drivers/net/wireless/realtek/rtw88/usb.c
-@@ -952,7 +952,6 @@ static void rtw_usb_deinit_rx(struct rtw
-       skb_queue_purge(&rtwusb->rx_queue);
--      flush_workqueue(rtwusb->rxwq);
-       destroy_workqueue(rtwusb->rxwq);
-       skb_queue_purge(&rtwusb->rx_free_queue);
-@@ -981,7 +980,6 @@ static void rtw_usb_deinit_tx(struct rtw
- {
-       struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
--      flush_workqueue(rtwusb->txwq);
-       destroy_workqueue(rtwusb->txwq);
-       rtw_usb_tx_queue_purge(rtwusb);
- }
diff --git a/package/kernel/mac80211/patches/rtl/095-v6.16-wifi-rtw88-usb-Enable-switching-the-RTL8814AU-to-USB.patch b/package/kernel/mac80211/patches/rtl/095-v6.16-wifi-rtw88-usb-Enable-switching-the-RTL8814AU-to-USB.patch
deleted file mode 100644 (file)
index f4d79bd..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From bf1103654df99d50724a022c8b9fca8908a86f50 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Wed, 2 Apr 2025 18:30:02 +0300
-Subject: [PATCH] wifi: rtw88: usb: Enable switching the RTL8814AU to USB 3
-
-The Realtek wifi 5 devices which support USB 3 are weird: when first
-plugged in, they pretend to be USB 2. The driver needs to send some
-commands to the device, which make it disappear and come back as a
-USB 3 device.
-
-The method used to switch the RTL8812AU also works for the RTL8814AU.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/usb.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/net/wireless/realtek/rtw88/usb.c
-+++ b/drivers/net/wireless/realtek/rtw88/usb.c
-@@ -1096,7 +1096,8 @@ static int rtw_usb_switch_mode_new(struc
- static bool rtw_usb3_chip_old(u8 chip_id)
- {
--      return chip_id == RTW_CHIP_TYPE_8812A;
-+      return chip_id == RTW_CHIP_TYPE_8812A ||
-+             chip_id == RTW_CHIP_TYPE_8814A;
- }
- static bool rtw_usb3_chip_new(u8 chip_id)
diff --git a/package/kernel/mac80211/patches/rtl/096-v6.16-wifi-rtw88-usb-Enable-RX-aggregation-for-RTL8814AU.patch b/package/kernel/mac80211/patches/rtl/096-v6.16-wifi-rtw88-usb-Enable-RX-aggregation-for-RTL8814AU.patch
deleted file mode 100644 (file)
index ef5c3db..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From dcbb7bb3a364f218411761e2e5ee2f6818d9bdfc Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Wed, 2 Apr 2025 18:30:28 +0300
-Subject: [PATCH] wifi: rtw88: usb: Enable RX aggregation for RTL8814AU
-
-Let the chip transfer several frames in a single USB Request Block.
-This is supposed to improve the RX speed.
-
-It can use the same code used for RTL8822CU, RTL8822BU, and RTL8821CU.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/usb.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/net/wireless/realtek/rtw88/usb.c
-+++ b/drivers/net/wireless/realtek/rtw88/usb.c
-@@ -866,6 +866,7 @@ static void rtw_usb_dynamic_rx_agg(struc
-       case RTW_CHIP_TYPE_8822C:
-       case RTW_CHIP_TYPE_8822B:
-       case RTW_CHIP_TYPE_8821C:
-+      case RTW_CHIP_TYPE_8814A:
-               rtw_usb_dynamic_rx_agg_v1(rtwdev, enable);
-               break;
-       case RTW_CHIP_TYPE_8821A:
diff --git a/package/kernel/mac80211/patches/rtl/097-v6.16-wifi-rtw88-Set-AMPDU-factor-to-hardware-for-RTL8814A.patch b/package/kernel/mac80211/patches/rtl/097-v6.16-wifi-rtw88-Set-AMPDU-factor-to-hardware-for-RTL8814A.patch
deleted file mode 100644 (file)
index bdac02c..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-From 0d2a88690e583168effb03c64fd217a323b2c444 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Wed, 2 Apr 2025 18:31:12 +0300
-Subject: [PATCH] wifi: rtw88: Set AMPDU factor to hardware for RTL8814A
-
-Tell the chip the maximum AMPDU size supported by the AP. This greatly
-improves the TX speed of RTL8814AU in the 2.4 GHz band. Before: ~90
-Mbps. After: ~300 Mbps.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/mac80211.c |  2 ++
- drivers/net/wireless/realtek/rtw88/main.c     | 32 +++++++++++++++++++
- drivers/net/wireless/realtek/rtw88/main.h     |  3 ++
- drivers/net/wireless/realtek/rtw88/rtw8703b.c |  1 +
- drivers/net/wireless/realtek/rtw88/rtw8723d.c |  1 +
- drivers/net/wireless/realtek/rtw88/rtw8812a.c |  1 +
- drivers/net/wireless/realtek/rtw88/rtw8814a.c | 11 +++++++
- drivers/net/wireless/realtek/rtw88/rtw8821a.c |  1 +
- drivers/net/wireless/realtek/rtw88/rtw8821c.c |  1 +
- drivers/net/wireless/realtek/rtw88/rtw8822b.c |  1 +
- drivers/net/wireless/realtek/rtw88/rtw8822c.c |  1 +
- 11 files changed, 55 insertions(+)
-
---- a/drivers/net/wireless/realtek/rtw88/mac80211.c
-+++ b/drivers/net/wireless/realtek/rtw88/mac80211.c
-@@ -396,6 +396,8 @@ static void rtw_ops_bss_info_changed(str
-                       if (rtw_bf_support)
-                               rtw_bf_assoc(rtwdev, vif, conf);
-+                      rtw_set_ampdu_factor(rtwdev, vif, conf);
-+
-                       rtw_fw_beacon_filter_config(rtwdev, true, vif);
-               } else {
-                       rtw_leave_lps(rtwdev);
---- a/drivers/net/wireless/realtek/rtw88/main.c
-+++ b/drivers/net/wireless/realtek/rtw88/main.c
-@@ -2447,6 +2447,38 @@ void rtw_core_enable_beacon(struct rtw_d
-       }
- }
-+void rtw_set_ampdu_factor(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
-+                        struct ieee80211_bss_conf *bss_conf)
-+{
-+      const struct rtw_chip_ops *ops = rtwdev->chip->ops;
-+      struct ieee80211_sta *sta;
-+      u8 factor = 0xff;
-+
-+      if (!ops->set_ampdu_factor)
-+              return;
-+
-+      rcu_read_lock();
-+
-+      sta = ieee80211_find_sta(vif, bss_conf->bssid);
-+      if (!sta) {
-+              rcu_read_unlock();
-+              rtw_warn(rtwdev, "%s: failed to find station %pM\n",
-+                       __func__, bss_conf->bssid);
-+              return;
-+      }
-+
-+      if (sta->deflink.vht_cap.vht_supported)
-+              factor = u32_get_bits(sta->deflink.vht_cap.cap,
-+                                    IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK);
-+      else if (sta->deflink.ht_cap.ht_supported)
-+              factor = sta->deflink.ht_cap.ampdu_factor;
-+
-+      rcu_read_unlock();
-+
-+      if (factor != 0xff)
-+              ops->set_ampdu_factor(rtwdev, factor);
-+}
-+
- MODULE_AUTHOR("Realtek Corporation");
- MODULE_DESCRIPTION("Realtek 802.11ac wireless core module");
- MODULE_LICENSE("Dual BSD/GPL");
---- a/drivers/net/wireless/realtek/rtw88/main.h
-+++ b/drivers/net/wireless/realtek/rtw88/main.h
-@@ -878,6 +878,7 @@ struct rtw_chip_ops {
-                          u32 antenna_rx);
-       void (*cfg_ldo25)(struct rtw_dev *rtwdev, bool enable);
-       void (*efuse_grant)(struct rtw_dev *rtwdev, bool enable);
-+      void (*set_ampdu_factor)(struct rtw_dev *rtwdev, u8 factor);
-       void (*false_alarm_statistics)(struct rtw_dev *rtwdev);
-       void (*phy_calibration)(struct rtw_dev *rtwdev);
-       void (*dpk_track)(struct rtw_dev *rtwdev);
-@@ -2272,4 +2273,6 @@ void rtw_update_channel(struct rtw_dev *
- void rtw_core_port_switch(struct rtw_dev *rtwdev, struct ieee80211_vif *vif);
- bool rtw_core_check_sta_active(struct rtw_dev *rtwdev);
- void rtw_core_enable_beacon(struct rtw_dev *rtwdev, bool enable);
-+void rtw_set_ampdu_factor(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
-+                        struct ieee80211_bss_conf *bss_conf);
- #endif
---- a/drivers/net/wireless/realtek/rtw88/rtw8703b.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.c
-@@ -1904,6 +1904,7 @@ static const struct rtw_chip_ops rtw8703
-       .set_antenna            = NULL,
-       .cfg_ldo25              = rtw8723x_cfg_ldo25,
-       .efuse_grant            = rtw8723x_efuse_grant,
-+      .set_ampdu_factor       = NULL,
-       .false_alarm_statistics = rtw8723x_false_alarm_statistics,
-       .phy_calibration        = rtw8703b_phy_calibration,
-       .dpk_track              = NULL,
---- a/drivers/net/wireless/realtek/rtw88/rtw8723d.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.c
-@@ -1404,6 +1404,7 @@ static const struct rtw_chip_ops rtw8723
-       .set_antenna            = NULL,
-       .cfg_ldo25              = rtw8723x_cfg_ldo25,
-       .efuse_grant            = rtw8723x_efuse_grant,
-+      .set_ampdu_factor       = NULL,
-       .false_alarm_statistics = rtw8723x_false_alarm_statistics,
-       .phy_calibration        = rtw8723d_phy_calibration,
-       .cck_pd_set             = rtw8723d_phy_cck_pd_set,
---- a/drivers/net/wireless/realtek/rtw88/rtw8812a.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8812a.c
-@@ -925,6 +925,7 @@ static const struct rtw_chip_ops rtw8812
-       .set_tx_power_index     = rtw88xxa_set_tx_power_index,
-       .cfg_ldo25              = rtw8812a_cfg_ldo25,
-       .efuse_grant            = rtw88xxa_efuse_grant,
-+      .set_ampdu_factor       = NULL,
-       .false_alarm_statistics = rtw88xxa_false_alarm_statistics,
-       .phy_calibration        = rtw8812a_phy_calibration,
-       .cck_pd_set             = rtw88xxa_phy_cck_pd_set,
---- a/drivers/net/wireless/realtek/rtw88/rtw8814a.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8814a.c
-@@ -1332,6 +1332,16 @@ static void rtw8814a_cfg_ldo25(struct rt
- {
- }
-+/* Without this RTL8814A sends too many frames and (some?) 11n AP
-+ * can't handle it, resulting in low TX speed. Other chips seem fine.
-+ */
-+static void rtw8814a_set_ampdu_factor(struct rtw_dev *rtwdev, u8 factor)
-+{
-+      factor = min_t(u8, factor, IEEE80211_VHT_MAX_AMPDU_256K);
-+
-+      rtw_write32(rtwdev, REG_AMPDU_MAX_LENGTH, (8192 << factor) - 1);
-+}
-+
- static void rtw8814a_false_alarm_statistics(struct rtw_dev *rtwdev)
- {
-       struct rtw_dm_info *dm_info = &rtwdev->dm_info;
-@@ -2051,6 +2061,7 @@ static const struct rtw_chip_ops rtw8814
-       .set_antenna            = NULL,
-       .cfg_ldo25              = rtw8814a_cfg_ldo25,
-       .efuse_grant            = rtw8814a_efuse_grant,
-+      .set_ampdu_factor       = rtw8814a_set_ampdu_factor,
-       .false_alarm_statistics = rtw8814a_false_alarm_statistics,
-       .phy_calibration        = rtw8814a_phy_calibration,
-       .cck_pd_set             = rtw8814a_phy_cck_pd_set,
---- a/drivers/net/wireless/realtek/rtw88/rtw8821a.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8821a.c
-@@ -871,6 +871,7 @@ static const struct rtw_chip_ops rtw8821
-       .set_tx_power_index     = rtw88xxa_set_tx_power_index,
-       .cfg_ldo25              = rtw8821a_cfg_ldo25,
-       .efuse_grant            = rtw88xxa_efuse_grant,
-+      .set_ampdu_factor       = NULL,
-       .false_alarm_statistics = rtw88xxa_false_alarm_statistics,
-       .phy_calibration        = rtw8821a_phy_calibration,
-       .cck_pd_set             = rtw88xxa_phy_cck_pd_set,
---- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
-@@ -1668,6 +1668,7 @@ static const struct rtw_chip_ops rtw8821
-       .set_antenna            = NULL,
-       .set_tx_power_index     = rtw8821c_set_tx_power_index,
-       .cfg_ldo25              = rtw8821c_cfg_ldo25,
-+      .set_ampdu_factor       = NULL,
-       .false_alarm_statistics = rtw8821c_false_alarm_statistics,
-       .phy_calibration        = rtw8821c_phy_calibration,
-       .cck_pd_set             = rtw8821c_phy_cck_pd_set,
---- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
-@@ -2158,6 +2158,7 @@ static const struct rtw_chip_ops rtw8822
-       .set_tx_power_index     = rtw8822b_set_tx_power_index,
-       .set_antenna            = rtw8822b_set_antenna,
-       .cfg_ldo25              = rtw8822b_cfg_ldo25,
-+      .set_ampdu_factor       = NULL,
-       .false_alarm_statistics = rtw8822b_false_alarm_statistics,
-       .phy_calibration        = rtw8822b_phy_calibration,
-       .pwr_track              = rtw8822b_pwr_track,
---- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
-@@ -4968,6 +4968,7 @@ static const struct rtw_chip_ops rtw8822
-       .set_tx_power_index     = rtw8822c_set_tx_power_index,
-       .set_antenna            = rtw8822c_set_antenna,
-       .cfg_ldo25              = rtw8822c_cfg_ldo25,
-+      .set_ampdu_factor       = NULL,
-       .false_alarm_statistics = rtw8822c_false_alarm_statistics,
-       .dpk_track              = rtw8822c_dpk_track,
-       .phy_calibration        = rtw8822c_phy_calibration,
diff --git a/package/kernel/mac80211/patches/rtl/098-v6.16-wifi-rtw88-Don-t-set-SUPPORTS_AMSDU_IN_AMPDU-for-RTL.patch b/package/kernel/mac80211/patches/rtl/098-v6.16-wifi-rtw88-Don-t-set-SUPPORTS_AMSDU_IN_AMPDU-for-RTL.patch
deleted file mode 100644 (file)
index 1b03076..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-From b8d49bb8d16ae7dde8e05b275d6e3b8bbf27f011 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Wed, 2 Apr 2025 18:31:36 +0300
-Subject: [PATCH] wifi: rtw88: Don't set SUPPORTS_AMSDU_IN_AMPDU for RTL8814AU
-
-RTL8814AU doesn't work well with SUPPORTS_AMSDU_IN_AMPDU. The RX speed
-is noticeably lower and the VHT RX statistics are strange. Typical
-values with SUPPORTS_AMSDU_IN_AMPDU:
-
-Reverse mode, remote host 192.168.0.1 is sending
-[  5] local 192.168.0.50 port 60710 connected to 192.168.0.1 port 5201
-[ ID] Interval           Transfer     Bitrate
-[  5]   0.00-1.00   sec  74.6 MBytes   626 Mbits/sec
-[  5]   1.00-2.00   sec  79.2 MBytes   665 Mbits/sec
-[  5]   2.00-3.00   sec  84.9 MBytes   712 Mbits/sec
-[  5]   3.00-4.00   sec  83.8 MBytes   703 Mbits/sec
-[  5]   4.00-5.00   sec  85.9 MBytes   720 Mbits/sec
-[  5]   5.00-6.00   sec  78.9 MBytes   662 Mbits/sec
-[  5]   6.00-7.00   sec  81.2 MBytes   682 Mbits/sec
-[  5]   7.00-8.00   sec  80.5 MBytes   675 Mbits/sec
-[  5]   8.00-9.00   sec  79.4 MBytes   666 Mbits/sec
-[  5]   9.00-10.00  sec  82.2 MBytes   689 Mbits/sec
-[  5]  10.00-11.00  sec  82.0 MBytes   688 Mbits/sec
-[  5]  11.00-12.00  sec  84.2 MBytes   707 Mbits/sec
-[  5]  12.00-13.00  sec  71.0 MBytes   596 Mbits/sec
-[  5]  13.00-14.00  sec  69.4 MBytes   582 Mbits/sec
-[  5]  14.00-15.00  sec  80.2 MBytes   673 Mbits/sec
-[  5]  15.00-16.00  sec  74.5 MBytes   625 Mbits/sec
-
-[Rx Counter]:
- * CCA (CCK, OFDM, Total) = (0, 2455, 2455)
- * False Alarm (CCK, OFDM, Total) = (0, 69, 69)
- * CCK cnt (ok, err) = (0, 0)
- * OFDM cnt (ok, err) = (1239, 2)
- * HT cnt (ok, err) = (0, 0)
- * VHT cnt (ok, err) = (21, 12109)
-
-The "VHT ok" number is not believable.
-
-And without SUPPORTS_AMSDU_IN_AMPDU:
-
-Reverse mode, remote host 192.168.0.1 is sending
-[  5] local 192.168.0.50 port 50030 connected to 192.168.0.1 port 5201
-[ ID] Interval           Transfer     Bitrate
-[  5]   0.00-1.00   sec  70.5 MBytes   591 Mbits/sec
-[  5]   1.00-2.00   sec  86.9 MBytes   729 Mbits/sec
-[  5]   2.00-3.00   sec  98.6 MBytes   827 Mbits/sec
-[  5]   3.00-4.00   sec  97.4 MBytes   817 Mbits/sec
-[  5]   4.00-5.00   sec  98.6 MBytes   827 Mbits/sec
-[  5]   5.00-6.00   sec  96.9 MBytes   813 Mbits/sec
-[  5]   6.00-7.00   sec  98.2 MBytes   824 Mbits/sec
-[  5]   7.00-8.00   sec  98.0 MBytes   822 Mbits/sec
-[  5]   8.00-9.00   sec  99.9 MBytes   838 Mbits/sec
-[  5]   9.00-10.00  sec  99.2 MBytes   833 Mbits/sec
-[  5]  10.00-11.00  sec  98.0 MBytes   822 Mbits/sec
-[  5]  11.00-12.00  sec  98.1 MBytes   823 Mbits/sec
-[  5]  12.00-13.00  sec  97.0 MBytes   814 Mbits/sec
-[  5]  13.00-14.00  sec  98.2 MBytes   824 Mbits/sec
-[  5]  14.00-15.00  sec  98.5 MBytes   826 Mbits/sec
-[  5]  15.00-16.00  sec  97.4 MBytes   817 Mbits/sec
-
-[Rx Counter]:
- * CCA (CCK, OFDM, Total) = (0, 3860, 3860)
- * False Alarm (CCK, OFDM, Total) = (0, 2, 2)
- * CCK cnt (ok, err) = (0, 0)
- * OFDM cnt (ok, err) = (1486, 0)
- * HT cnt (ok, err) = (0, 0)
- * VHT cnt (ok, err) = (7399, 9118)
-
-Add a new member "amsdu_in_ampdu" in struct rtw_chip_info and use it
-to set SUPPORTS_AMSDU_IN_AMPDU only for the other chips.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/main.c     | 3 ++-
- drivers/net/wireless/realtek/rtw88/main.h     | 1 +
- drivers/net/wireless/realtek/rtw88/rtw8812a.c | 1 +
- drivers/net/wireless/realtek/rtw88/rtw8814a.c | 1 +
- drivers/net/wireless/realtek/rtw88/rtw8821a.c | 1 +
- drivers/net/wireless/realtek/rtw88/rtw8821c.c | 1 +
- drivers/net/wireless/realtek/rtw88/rtw8822b.c | 1 +
- drivers/net/wireless/realtek/rtw88/rtw8822c.c | 1 +
- 8 files changed, 9 insertions(+), 1 deletion(-)
-
---- a/drivers/net/wireless/realtek/rtw88/main.c
-+++ b/drivers/net/wireless/realtek/rtw88/main.c
-@@ -2242,7 +2242,8 @@ int rtw_register_hw(struct rtw_dev *rtwd
-       ieee80211_hw_set(hw, SUPPORTS_PS);
-       ieee80211_hw_set(hw, SUPPORTS_DYNAMIC_PS);
-       ieee80211_hw_set(hw, SUPPORT_FAST_XMIT);
--      ieee80211_hw_set(hw, SUPPORTS_AMSDU_IN_AMPDU);
-+      if (rtwdev->chip->amsdu_in_ampdu)
-+              ieee80211_hw_set(hw, SUPPORTS_AMSDU_IN_AMPDU);
-       ieee80211_hw_set(hw, HAS_RATE_CONTROL);
-       ieee80211_hw_set(hw, TX_AMSDU);
-       ieee80211_hw_set(hw, SINGLE_SCAN_ON_ALL_BANDS);
---- a/drivers/net/wireless/realtek/rtw88/main.h
-+++ b/drivers/net/wireless/realtek/rtw88/main.h
-@@ -1230,6 +1230,7 @@ struct rtw_chip_info {
-       u16 fw_fifo_addr[RTW_FW_FIFO_MAX];
-       const struct rtw_fwcd_segs *fwcd_segs;
-+      bool amsdu_in_ampdu;
-       u8 usb_tx_agg_desc_num;
-       bool hw_feature_report;
-       u8 c2h_ra_report_size;
---- a/drivers/net/wireless/realtek/rtw88/rtw8812a.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8812a.c
-@@ -1076,6 +1076,7 @@ const struct rtw_chip_info rtw8812a_hw_s
-       .rfe_defs = rtw8812a_rfe_defs,
-       .rfe_defs_size = ARRAY_SIZE(rtw8812a_rfe_defs),
-       .rx_ldpc = false,
-+      .amsdu_in_ampdu = true,
-       .hw_feature_report = false,
-       .c2h_ra_report_size = 4,
-       .old_datarate_fb_limit = true,
---- a/drivers/net/wireless/realtek/rtw88/rtw8814a.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8814a.c
-@@ -2200,6 +2200,7 @@ const struct rtw_chip_info rtw8814a_hw_s
-       .rx_ldpc = true,
-       .max_power_index = 0x3f,
-       .ampdu_density = IEEE80211_HT_MPDU_DENSITY_2,
-+      .amsdu_in_ampdu = false, /* RX speed is better without AMSDU */
-       .usb_tx_agg_desc_num = 3,
-       .hw_feature_report = false,
-       .c2h_ra_report_size = 6,
---- a/drivers/net/wireless/realtek/rtw88/rtw8821a.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8821a.c
-@@ -1176,6 +1176,7 @@ const struct rtw_chip_info rtw8821a_hw_s
-       .rfe_defs = rtw8821a_rfe_defs,
-       .rfe_defs_size = ARRAY_SIZE(rtw8821a_rfe_defs),
-       .rx_ldpc = false,
-+      .amsdu_in_ampdu = true,
-       .hw_feature_report = false,
-       .c2h_ra_report_size = 4,
-       .old_datarate_fb_limit = true,
---- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
-@@ -1991,6 +1991,7 @@ const struct rtw_chip_info rtw8821c_hw_s
-       .band = RTW_BAND_2G | RTW_BAND_5G,
-       .page_size = TX_PAGE_SIZE,
-       .dig_min = 0x1c,
-+      .amsdu_in_ampdu = true,
-       .usb_tx_agg_desc_num = 3,
-       .hw_feature_report = true,
-       .c2h_ra_report_size = 7,
---- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
-@@ -2532,6 +2532,7 @@ const struct rtw_chip_info rtw8822b_hw_s
-       .band = RTW_BAND_2G | RTW_BAND_5G,
-       .page_size = TX_PAGE_SIZE,
-       .dig_min = 0x1c,
-+      .amsdu_in_ampdu = true,
-       .usb_tx_agg_desc_num = 3,
-       .hw_feature_report = true,
-       .c2h_ra_report_size = 7,
---- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
-@@ -5350,6 +5350,7 @@ const struct rtw_chip_info rtw8822c_hw_s
-       .band = RTW_BAND_2G | RTW_BAND_5G,
-       .page_size = TX_PAGE_SIZE,
-       .dig_min = 0x20,
-+      .amsdu_in_ampdu = true,
-       .usb_tx_agg_desc_num = 3,
-       .hw_feature_report = true,
-       .c2h_ra_report_size = 7,
diff --git a/package/kernel/mac80211/patches/rtl/099-v6.16-wifi-rtw88-Fix-the-module-names-printed-in-dmesg.patch b/package/kernel/mac80211/patches/rtl/099-v6.16-wifi-rtw88-Fix-the-module-names-printed-in-dmesg.patch
deleted file mode 100644 (file)
index 5082d77..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-From 581cf3a9cb61daae1009c2380b228f40177046d8 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Wed, 2 Apr 2025 20:54:30 +0300
-Subject: [PATCH] wifi: rtw88: Fix the module names printed in dmesg
-
-The rtw88 module names all start with the "rtw88_" prefix, but the
-messages in dmesg mostly use the "rtw_" prefix. The messages from
-rtw88_8723cs don't even have the underscore.
-
-Use the KBUILD_MODNAME macro in every driver. This ensures that the
-messages in dmesg will always use the module name.
-
-Before:
-
-Mar 17 15:54:19 ideapad2 kernel: rtw_8814au 2-4:1.0: Firmware version 33.6.0, H2C version 6
-
-After:
-
-Mar 17 16:33:35 ideapad2 kernel: rtw88_8814au 2-4:1.0: Firmware version 33.6.0, H2C version 6
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/rtw8723cs.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8723de.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8723ds.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8723du.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8812au.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8814ae.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8814au.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8821au.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8821ce.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8821cs.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8821cu.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8822be.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8822bs.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8822bu.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8822ce.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8822cs.c | 2 +-
- drivers/net/wireless/realtek/rtw88/rtw8822cu.c | 2 +-
- 17 files changed, 17 insertions(+), 17 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/rtw8723cs.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8723cs.c
-@@ -19,7 +19,7 @@ static const struct sdio_device_id rtw_8
- MODULE_DEVICE_TABLE(sdio, rtw_8723cs_id_table);
- static struct sdio_driver rtw_8723cs_driver = {
--      .name = "rtw8723cs",
-+      .name = KBUILD_MODNAME,
-       .id_table = rtw_8723cs_id_table,
-       .probe = rtw_sdio_probe,
-       .remove = rtw_sdio_remove,
---- a/drivers/net/wireless/realtek/rtw88/rtw8723de.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8723de.c
-@@ -17,7 +17,7 @@ static const struct pci_device_id rtw_87
- MODULE_DEVICE_TABLE(pci, rtw_8723de_id_table);
- static struct pci_driver rtw_8723de_driver = {
--      .name = "rtw_8723de",
-+      .name = KBUILD_MODNAME,
-       .id_table = rtw_8723de_id_table,
-       .probe = rtw_pci_probe,
-       .remove = rtw_pci_remove,
---- a/drivers/net/wireless/realtek/rtw88/rtw8723ds.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c
-@@ -25,7 +25,7 @@ static const struct sdio_device_id rtw_8
- MODULE_DEVICE_TABLE(sdio, rtw_8723ds_id_table);
- static struct sdio_driver rtw_8723ds_driver = {
--      .name = "rtw_8723ds",
-+      .name = KBUILD_MODNAME,
-       .probe = rtw_sdio_probe,
-       .remove = rtw_sdio_remove,
-       .id_table = rtw_8723ds_id_table,
---- a/drivers/net/wireless/realtek/rtw88/rtw8723du.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8723du.c
-@@ -24,7 +24,7 @@ static int rtw8723du_probe(struct usb_in
- }
- static struct usb_driver rtw_8723du_driver = {
--      .name = "rtw_8723du",
-+      .name = KBUILD_MODNAME,
-       .id_table = rtw_8723du_id_table,
-       .probe = rtw8723du_probe,
-       .disconnect = rtw_usb_disconnect,
---- a/drivers/net/wireless/realtek/rtw88/rtw8812au.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8812au.c
-@@ -82,7 +82,7 @@ static const struct usb_device_id rtw_88
- MODULE_DEVICE_TABLE(usb, rtw_8812au_id_table);
- static struct usb_driver rtw_8812au_driver = {
--      .name = "rtw_8812au",
-+      .name = KBUILD_MODNAME,
-       .id_table = rtw_8812au_id_table,
-       .probe = rtw_usb_probe,
-       .disconnect = rtw_usb_disconnect,
---- a/drivers/net/wireless/realtek/rtw88/rtw8814ae.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8814ae.c
-@@ -17,7 +17,7 @@ static const struct pci_device_id rtw_88
- MODULE_DEVICE_TABLE(pci, rtw_8814ae_id_table);
- static struct pci_driver rtw_8814ae_driver = {
--      .name = "rtw_8814ae",
-+      .name = KBUILD_MODNAME,
-       .id_table = rtw_8814ae_id_table,
-       .probe = rtw_pci_probe,
-       .remove = rtw_pci_remove,
---- a/drivers/net/wireless/realtek/rtw88/rtw8814au.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8814au.c
-@@ -42,7 +42,7 @@ static const struct usb_device_id rtw_88
- MODULE_DEVICE_TABLE(usb, rtw_8814au_id_table);
- static struct usb_driver rtw_8814au_driver = {
--      .name = "rtw_8814au",
-+      .name = KBUILD_MODNAME,
-       .id_table = rtw_8814au_id_table,
-       .probe = rtw_usb_probe,
-       .disconnect = rtw_usb_disconnect,
---- a/drivers/net/wireless/realtek/rtw88/rtw8821au.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8821au.c
-@@ -66,7 +66,7 @@ static const struct usb_device_id rtw_88
- MODULE_DEVICE_TABLE(usb, rtw_8821au_id_table);
- static struct usb_driver rtw_8821au_driver = {
--      .name = "rtw_8821au",
-+      .name = KBUILD_MODNAME,
-       .id_table = rtw_8821au_id_table,
-       .probe = rtw_usb_probe,
-       .disconnect = rtw_usb_disconnect,
---- a/drivers/net/wireless/realtek/rtw88/rtw8821ce.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8821ce.c
-@@ -21,7 +21,7 @@ static const struct pci_device_id rtw_88
- MODULE_DEVICE_TABLE(pci, rtw_8821ce_id_table);
- static struct pci_driver rtw_8821ce_driver = {
--      .name = "rtw_8821ce",
-+      .name = KBUILD_MODNAME,
-       .id_table = rtw_8821ce_id_table,
-       .probe = rtw_pci_probe,
-       .remove = rtw_pci_remove,
---- a/drivers/net/wireless/realtek/rtw88/rtw8821cs.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cs.c
-@@ -20,7 +20,7 @@ static const struct sdio_device_id rtw_8
- MODULE_DEVICE_TABLE(sdio, rtw_8821cs_id_table);
- static struct sdio_driver rtw_8821cs_driver = {
--      .name = "rtw_8821cs",
-+      .name = KBUILD_MODNAME,
-       .probe = rtw_sdio_probe,
-       .remove = rtw_sdio_remove,
-       .id_table = rtw_8821cs_id_table,
---- a/drivers/net/wireless/realtek/rtw88/rtw8821cu.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c
-@@ -48,7 +48,7 @@ static int rtw_8821cu_probe(struct usb_i
- }
- static struct usb_driver rtw_8821cu_driver = {
--      .name = "rtw_8821cu",
-+      .name = KBUILD_MODNAME,
-       .id_table = rtw_8821cu_id_table,
-       .probe = rtw_8821cu_probe,
-       .disconnect = rtw_usb_disconnect,
---- a/drivers/net/wireless/realtek/rtw88/rtw8822be.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822be.c
-@@ -17,7 +17,7 @@ static const struct pci_device_id rtw_88
- MODULE_DEVICE_TABLE(pci, rtw_8822be_id_table);
- static struct pci_driver rtw_8822be_driver = {
--      .name = "rtw_8822be",
-+      .name = KBUILD_MODNAME,
-       .id_table = rtw_8822be_id_table,
-       .probe = rtw_pci_probe,
-       .remove = rtw_pci_remove,
---- a/drivers/net/wireless/realtek/rtw88/rtw8822bs.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822bs.c
-@@ -20,7 +20,7 @@ static const struct sdio_device_id rtw_8
- MODULE_DEVICE_TABLE(sdio, rtw_8822bs_id_table);
- static struct sdio_driver rtw_8822bs_driver = {
--      .name = "rtw_8822bs",
-+      .name = KBUILD_MODNAME,
-       .probe = rtw_sdio_probe,
-       .remove = rtw_sdio_remove,
-       .id_table = rtw_8822bs_id_table,
---- a/drivers/net/wireless/realtek/rtw88/rtw8822bu.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822bu.c
-@@ -88,7 +88,7 @@ static int rtw8822bu_probe(struct usb_in
- }
- static struct usb_driver rtw_8822bu_driver = {
--      .name = "rtw_8822bu",
-+      .name = KBUILD_MODNAME,
-       .id_table = rtw_8822bu_id_table,
-       .probe = rtw8822bu_probe,
-       .disconnect = rtw_usb_disconnect,
---- a/drivers/net/wireless/realtek/rtw88/rtw8822ce.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822ce.c
-@@ -21,7 +21,7 @@ static const struct pci_device_id rtw_88
- MODULE_DEVICE_TABLE(pci, rtw_8822ce_id_table);
- static struct pci_driver rtw_8822ce_driver = {
--      .name = "rtw_8822ce",
-+      .name = KBUILD_MODNAME,
-       .id_table = rtw_8822ce_id_table,
-       .probe = rtw_pci_probe,
-       .remove = rtw_pci_remove,
---- a/drivers/net/wireless/realtek/rtw88/rtw8822cs.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822cs.c
-@@ -20,7 +20,7 @@ static const struct sdio_device_id rtw_8
- MODULE_DEVICE_TABLE(sdio, rtw_8822cs_id_table);
- static struct sdio_driver rtw_8822cs_driver = {
--      .name = "rtw_8822cs",
-+      .name = KBUILD_MODNAME,
-       .probe = rtw_sdio_probe,
-       .remove = rtw_sdio_remove,
-       .id_table = rtw_8822cs_id_table,
---- a/drivers/net/wireless/realtek/rtw88/rtw8822cu.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822cu.c
-@@ -32,7 +32,7 @@ static int rtw8822cu_probe(struct usb_in
- }
- static struct usb_driver rtw_8822cu_driver = {
--      .name = "rtw_8822cu",
-+      .name = KBUILD_MODNAME,
-       .id_table = rtw_8822cu_id_table,
-       .probe = rtw8822cu_probe,
-       .disconnect = rtw_usb_disconnect,
diff --git a/package/kernel/mac80211/patches/rtl/100-v6.16-wifi-rtw88-sdio-map-mgmt-frames-to-queue-TX_DESC_QSE.patch b/package/kernel/mac80211/patches/rtl/100-v6.16-wifi-rtw88-sdio-map-mgmt-frames-to-queue-TX_DESC_QSE.patch
deleted file mode 100644 (file)
index ae2d2f5..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-From b2effcdc237979dcc533d446a792fc54fd0e1213 Mon Sep 17 00:00:00 2001
-From: Zhen XIN <[email protected]>
-Date: Thu, 10 Apr 2025 15:42:17 +0000
-Subject: [PATCH] wifi: rtw88: sdio: map mgmt frames to queue TX_DESC_QSEL_MGMT
-
-The rtw88-sdio do not work in AP mode due to the lack of TX status report
-for management frames.
-
-Map the management frames to queue TX_DESC_QSEL_MGMT, which enables the
-chip to generate TX reports for these frames
-
-Tested-on: rtl8723ds
-
-Fixes: 65371a3f14e7 ("wifi: rtw88: sdio: Add HCI implementation for SDIO based chipsets")
-Signed-off-by: Zhen XIN <[email protected]>
-Reviewed-by: Martin Blumenstingl <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/sdio.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/sdio.c
-+++ b/drivers/net/wireless/realtek/rtw88/sdio.c
-@@ -718,10 +718,7 @@ static u8 rtw_sdio_get_tx_qsel(struct rt
-       case RTW_TX_QUEUE_H2C:
-               return TX_DESC_QSEL_H2C;
-       case RTW_TX_QUEUE_MGMT:
--              if (rtw_chip_wcpu_11n(rtwdev))
--                      return TX_DESC_QSEL_HIGH;
--              else
--                      return TX_DESC_QSEL_MGMT;
-+              return TX_DESC_QSEL_MGMT;
-       case RTW_TX_QUEUE_HI0:
-               return TX_DESC_QSEL_HIGH;
-       default:
diff --git a/package/kernel/mac80211/patches/rtl/101-v6.16-wifi-rtw88-sdio-call-rtw_sdio_indicate_tx_status-unc.patch b/package/kernel/mac80211/patches/rtl/101-v6.16-wifi-rtw88-sdio-call-rtw_sdio_indicate_tx_status-unc.patch
deleted file mode 100644 (file)
index aa85137..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From fc5f5a0ec463ae6a07850428bd3082947e01d276 Mon Sep 17 00:00:00 2001
-From: Zhen XIN <[email protected]>
-Date: Thu, 10 Apr 2025 15:42:16 +0000
-Subject: [PATCH] wifi: rtw88: sdio: call rtw_sdio_indicate_tx_status
- unconditionally
-
-The rtw88-sdio do not work in AP mode due to the lack of TX status report
-for management frames.
-
-Make the invocation of rtw_sdio_indicate_tx_status unconditional and cover
-all packet queues
-
-Tested-on: rtl8723ds
-
-Fixes: 65371a3f14e7 ("wifi: rtw88: sdio: Add HCI implementation for SDIO based chipsets")
-Signed-off-by: Zhen XIN <[email protected]>
-Reviewed-by: Martin Blumenstingl <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/sdio.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/sdio.c
-+++ b/drivers/net/wireless/realtek/rtw88/sdio.c
-@@ -1224,10 +1224,7 @@ static void rtw_sdio_process_tx_queue(st
-               return;
-       }
--      if (queue <= RTW_TX_QUEUE_VO)
--              rtw_sdio_indicate_tx_status(rtwdev, skb);
--      else
--              dev_kfree_skb_any(skb);
-+      rtw_sdio_indicate_tx_status(rtwdev, skb);
- }
- static void rtw_sdio_tx_handler(struct work_struct *work)
diff --git a/package/kernel/mac80211/patches/rtl/102-v6.16-wifi-rtw88-do-not-ignore-hardware-read-error-during-.patch b/package/kernel/mac80211/patches/rtl/102-v6.16-wifi-rtw88-do-not-ignore-hardware-read-error-during-.patch
deleted file mode 100644 (file)
index 87d72bf..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From 20d3c19bd8f9b498173c198eadf54580c8caa336 Mon Sep 17 00:00:00 2001
-From: Dmitry Antipov <[email protected]>
-Date: Tue, 15 Apr 2025 12:07:20 +0300
-Subject: [PATCH] wifi: rtw88: do not ignore hardware read error during DPK
-
-In 'rtw8822c_dpk_cal_coef1()', do not ignore error returned
-by 'check_hw_ready()' but issue a warning to denote possible
-DPK issue. Compile tested only.
-
-Found by Linux Verification Center (linuxtesting.org) with SVACE.
-
-Fixes: 5227c2ee453d ("rtw88: 8822c: add SW DPK support")
-Suggested-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Dmitry Antipov <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/rtw8822c.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
-@@ -3951,7 +3951,8 @@ static void rtw8822c_dpk_cal_coef1(struc
-       rtw_write32(rtwdev, REG_NCTL0, 0x00001148);
-       rtw_write32(rtwdev, REG_NCTL0, 0x00001149);
--      check_hw_ready(rtwdev, 0x2d9c, MASKBYTE0, 0x55);
-+      if (!check_hw_ready(rtwdev, 0x2d9c, MASKBYTE0, 0x55))
-+              rtw_warn(rtwdev, "DPK stuck, performance may be suboptimal");
-       rtw_write8(rtwdev, 0x1b10, 0x0);
-       rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0x0000000c);
diff --git a/package/kernel/mac80211/patches/rtl/103-v6.16-wifi-rtw88-Fix-RX-aggregation-settings-for-RTL8723DS.patch b/package/kernel/mac80211/patches/rtl/103-v6.16-wifi-rtw88-Fix-RX-aggregation-settings-for-RTL8723DS.patch
deleted file mode 100644 (file)
index 901e471..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From 0ffa1ba81b35ba147c9df6206a61499a156b0128 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Fri, 2 May 2025 14:49:01 +0300
-Subject: [PATCH] wifi: rtw88: Fix RX aggregation settings for RTL8723DS
-
-Use the same RX aggregation size and timeout used by the out-of-tree
-RTL8723DS driver. Also set mystery bit 31 of REG_RXDMA_AGG_PG_TH. This
-improves the RX speed from ~44 Mbps to ~67 Mbps.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/sdio.c | 14 ++++++++++++--
- 1 file changed, 12 insertions(+), 2 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/sdio.c
-+++ b/drivers/net/wireless/realtek/rtw88/sdio.c
-@@ -677,12 +677,22 @@ static void rtw_sdio_enable_rx_aggregati
- {
-       u8 size, timeout;
--      if (rtw_chip_wcpu_11n(rtwdev)) {
-+      switch (rtwdev->chip->id) {
-+      case RTW_CHIP_TYPE_8703B:
-+      case RTW_CHIP_TYPE_8821A:
-+      case RTW_CHIP_TYPE_8812A:
-               size = 0x6;
-               timeout = 0x6;
--      } else {
-+              break;
-+      case RTW_CHIP_TYPE_8723D:
-+              size = 0xa;
-+              timeout = 0x3;
-+              rtw_write8_set(rtwdev, REG_RXDMA_AGG_PG_TH + 3, BIT(7));
-+              break;
-+      default:
-               size = 0xff;
-               timeout = 0x1;
-+              break;
-       }
-       /* Make the firmware honor the size limit configured below */
diff --git a/package/kernel/mac80211/patches/rtl/104-v6.16-wifi-rtw88-Handle-RTL8723D-S-with-blank-efuse.patch b/package/kernel/mac80211/patches/rtl/104-v6.16-wifi-rtw88-Handle-RTL8723D-S-with-blank-efuse.patch
deleted file mode 100644 (file)
index d994a6a..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-From 2c17afde9ff6713f3e080ed1ea1a4bd7480be9aa Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Fri, 2 May 2025 14:49:34 +0300
-Subject: [PATCH] wifi: rtw88: Handle RTL8723D(S) with blank efuse
-
-Some users have RTL8723DS chips with nearly blank efuse. Currently these
-chips cannot connect when using rtw88, but they do work using the old
-out-of-tree driver.
-
-Use reasonable default values for TX power, antenna configuration, and
-crystal cap if the chip's efuse is missing these things.
-
-RTL8723D can use the same default values as RTL8703B, so simply move
-the code from rtl8703b_read_efuse() to the shared function
-__rtl8723x_read_efuse().
-
-Link: https://github.com/lwfinger/rtw88/issues/157
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/rtw8703b.c | 60 -------------------
- drivers/net/wireless/realtek/rtw88/rtw8723x.c | 59 ++++++++++++++++++
- 2 files changed, 59 insertions(+), 60 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/rtw8703b.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.c
-@@ -519,15 +519,6 @@ static const struct rtw_rqpn rqpn_table_
-        RTW_DMA_MAPPING_EXTRA, RTW_DMA_MAPPING_HIGH},
- };
--/* Default power index table for RTL8703B, used if EFUSE does not
-- * contain valid data. Replaces EFUSE data from offset 0x10 (start of
-- * txpwr_idx_table).
-- */
--static const u8 rtw8703b_txpwr_idx_table[] = {
--      0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D,
--      0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x02
--};
--
- static void try_mac_from_devicetree(struct rtw_dev *rtwdev)
- {
-       struct device_node *node = rtwdev->dev->of_node;
-@@ -544,15 +535,9 @@ static void try_mac_from_devicetree(stru
-       }
- }
--#define DBG_EFUSE_FIX(rtwdev, name)                                   \
--      rtw_dbg(rtwdev, RTW_DBG_EFUSE, "Fixed invalid EFUSE value: "    \
--              # name "=0x%x\n", rtwdev->efuse.name)
--
- static int rtw8703b_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
- {
-       struct rtw_efuse *efuse = &rtwdev->efuse;
--      u8 *pwr = (u8 *)efuse->txpwr_idx_table;
--      bool valid = false;
-       int ret;
-       ret = rtw8723x_read_efuse(rtwdev, log_map);
-@@ -562,51 +547,6 @@ static int rtw8703b_read_efuse(struct rt
-       if (!is_valid_ether_addr(efuse->addr))
-               try_mac_from_devicetree(rtwdev);
--      /* If TX power index table in EFUSE is invalid, fall back to
--       * built-in table.
--       */
--      for (int i = 0; i < ARRAY_SIZE(rtw8703b_txpwr_idx_table); i++)
--              if (pwr[i] != 0xff) {
--                      valid = true;
--                      break;
--              }
--      if (!valid) {
--              for (int i = 0; i < ARRAY_SIZE(rtw8703b_txpwr_idx_table); i++)
--                      pwr[i] = rtw8703b_txpwr_idx_table[i];
--              rtw_dbg(rtwdev, RTW_DBG_EFUSE,
--                      "Replaced invalid EFUSE TX power index table.");
--              rtw8723x_debug_txpwr_limit(rtwdev,
--                                         efuse->txpwr_idx_table, 2);
--      }
--
--      /* Override invalid antenna settings. */
--      if (efuse->bt_setting == 0xff) {
--              /* shared antenna */
--              efuse->bt_setting |= BIT(0);
--              /* RF path A */
--              efuse->bt_setting &= ~BIT(6);
--              DBG_EFUSE_FIX(rtwdev, bt_setting);
--      }
--
--      /* Override invalid board options: The coex code incorrectly
--       * assumes that if bits 6 & 7 are set the board doesn't
--       * support coex. Regd is also derived from rf_board_option and
--       * should be 0 if there's no valid data.
--       */
--      if (efuse->rf_board_option == 0xff) {
--              efuse->regd = 0;
--              efuse->rf_board_option &= GENMASK(5, 0);
--              DBG_EFUSE_FIX(rtwdev, rf_board_option);
--      }
--
--      /* Override invalid crystal cap setting, default comes from
--       * vendor driver. Chip specific.
--       */
--      if (efuse->crystal_cap == 0xff) {
--              efuse->crystal_cap = 0x20;
--              DBG_EFUSE_FIX(rtwdev, crystal_cap);
--      }
--
-       return 0;
- }
---- a/drivers/net/wireless/realtek/rtw88/rtw8723x.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8723x.c
-@@ -69,6 +69,9 @@ static void __rtw8723x_lck(struct rtw_de
- #define DBG_EFUSE_2BYTE(rtwdev, map, name)                    \
-       rtw_dbg(rtwdev, RTW_DBG_EFUSE, # name "=0x%02x%02x\n",  \
-               (map)->name[0], (map)->name[1])
-+#define DBG_EFUSE_FIX(rtwdev, name)                                   \
-+      rtw_dbg(rtwdev, RTW_DBG_EFUSE, "Fixed invalid EFUSE value: "    \
-+              # name "=0x%x\n", rtwdev->efuse.name)
- static void rtw8723xe_efuse_debug(struct rtw_dev *rtwdev,
-                                 struct rtw8723x_efuse *map)
-@@ -238,10 +241,21 @@ static void rtw8723xs_efuse_parsing(stru
-       ether_addr_copy(efuse->addr, map->s.mac_addr);
- }
-+/* Default power index table for RTL8703B/RTL8723D, used if EFUSE does
-+ * not contain valid data. Replaces EFUSE data from offset 0x10 (start
-+ * of txpwr_idx_table).
-+ */
-+static const u8 rtw8723x_txpwr_idx_table[] = {
-+      0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D,
-+      0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x02
-+};
-+
- static int __rtw8723x_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
- {
-       struct rtw_efuse *efuse = &rtwdev->efuse;
-+      u8 *pwr = (u8 *)efuse->txpwr_idx_table;
-       struct rtw8723x_efuse *map;
-+      bool valid = false;
-       int i;
-       map = (struct rtw8723x_efuse *)log_map;
-@@ -279,6 +293,51 @@ static int __rtw8723x_read_efuse(struct
-               return -EOPNOTSUPP;
-       }
-+      /* If TX power index table in EFUSE is invalid, fall back to
-+       * built-in table.
-+       */
-+      for (i = 0; i < ARRAY_SIZE(rtw8723x_txpwr_idx_table); i++)
-+              if (pwr[i] != 0xff) {
-+                      valid = true;
-+                      break;
-+              }
-+      if (!valid) {
-+              for (i = 0; i < ARRAY_SIZE(rtw8723x_txpwr_idx_table); i++)
-+                      pwr[i] = rtw8723x_txpwr_idx_table[i];
-+              rtw_dbg(rtwdev, RTW_DBG_EFUSE,
-+                      "Replaced invalid EFUSE TX power index table.");
-+              rtw8723x_debug_txpwr_limit(rtwdev,
-+                                         efuse->txpwr_idx_table, 2);
-+      }
-+
-+      /* Override invalid antenna settings. */
-+      if (efuse->bt_setting == 0xff) {
-+              /* shared antenna */
-+              efuse->bt_setting |= BIT(0);
-+              /* RF path A */
-+              efuse->bt_setting &= ~BIT(6);
-+              DBG_EFUSE_FIX(rtwdev, bt_setting);
-+      }
-+
-+      /* Override invalid board options: The coex code incorrectly
-+       * assumes that if bits 6 & 7 are set the board doesn't
-+       * support coex. Regd is also derived from rf_board_option and
-+       * should be 0 if there's no valid data.
-+       */
-+      if (efuse->rf_board_option == 0xff) {
-+              efuse->regd = 0;
-+              efuse->rf_board_option &= GENMASK(5, 0);
-+              DBG_EFUSE_FIX(rtwdev, rf_board_option);
-+      }
-+
-+      /* Override invalid crystal cap setting, default comes from
-+       * vendor driver. Chip specific.
-+       */
-+      if (efuse->crystal_cap == 0xff) {
-+              efuse->crystal_cap = 0x20;
-+              DBG_EFUSE_FIX(rtwdev, crystal_cap);
-+      }
-+
-       return 0;
- }
diff --git a/package/kernel/mac80211/patches/rtl/105-v6.16-wifi-rtw88-rtw8822bu-VID-PID-for-BUFFALO-WI-U2-866DM.patch b/package/kernel/mac80211/patches/rtl/105-v6.16-wifi-rtw88-rtw8822bu-VID-PID-for-BUFFALO-WI-U2-866DM.patch
deleted file mode 100644 (file)
index 8321ca8..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-From b7f0cc647e52296a3d4dd727b6479dcd6d7e364e Mon Sep 17 00:00:00 2001
-From: Yuuki NAGAO <[email protected]>
-Date: Sat, 3 May 2025 09:32:27 +0900
-Subject: [PATCH] wifi: rtw88: rtw8822bu VID/PID for BUFFALO WI-U2-866DM
-
-Add VID/PID 0411/03d1 for recently released
-BUFFALO WI-U2-866DM USB WiFi adapter.
-
-Signed-off-by: Yuuki NAGAO <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/rtw8822bu.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/net/wireless/realtek/rtw88/rtw8822bu.c
-+++ b/drivers/net/wireless/realtek/rtw88/rtw8822bu.c
-@@ -77,6 +77,8 @@ static const struct usb_device_id rtw_88
-         .driver_info = (kernel_ulong_t)&(rtw8822b_hw_spec) }, /* Mercusys MA30N */
-       { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x3322, 0xff, 0xff, 0xff),
-         .driver_info = (kernel_ulong_t)&(rtw8822b_hw_spec) }, /* D-Link DWA-T185 rev. A1 */
-+      { USB_DEVICE_AND_INTERFACE_INFO(0x0411, 0x03d1, 0xff, 0xff, 0xff),
-+        .driver_info = (kernel_ulong_t)&(rtw8822b_hw_spec) }, /* BUFFALO WI-U2-866DM */
-       {},
- };
- MODULE_DEVICE_TABLE(usb, rtw_8822bu_id_table);
diff --git a/package/kernel/mac80211/patches/rtl/106-v6.16-wifi-rtw88-usb-Reduce-control-message-timeout-to-500.patch b/package/kernel/mac80211/patches/rtl/106-v6.16-wifi-rtw88-usb-Reduce-control-message-timeout-to-500.patch
deleted file mode 100644 (file)
index 9ed1162..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From 490340faddea461319652ce36dbc7c1b4482c35e Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Sat, 10 May 2025 15:21:25 +0300
-Subject: [PATCH] wifi: rtw88: usb: Reduce control message timeout to 500 ms
-
-RTL8811AU stops responding during the firmware download on some systems:
-
-[  809.256440] rtw_8821au 5-2.1:1.0: Firmware version 42.4.0, H2C version 0
-[  812.759142] rtw_8821au 5-2.1:1.0 wlp48s0f4u2u1: renamed from wlan0
-[  837.315388] rtw_8821au 1-4:1.0: write register 0x1ef4 failed with -110
-[  867.524259] rtw_8821au 1-4:1.0: write register 0x1ef8 failed with -110
-[  868.930976] rtw_8821au 5-2.1:1.0 wlp48s0f4u2u1: entered promiscuous mode
-[  897.730952] rtw_8821au 1-4:1.0: write register 0x1efc failed with -110
-
-Each write takes 30 seconds to fail because that's the timeout currently
-used for control messages in rtw_usb_write().
-
-In this scenario the firmware download takes at least 2000 seconds.
-Because this is done from the USB probe function, the long delay makes
-other things in the system hang.
-
-Reduce the timeout to 500 ms. This is the value used by the official USB
-wifi drivers from Realtek.
-
-Of course this only makes things hang for ~30 seconds instead of ~30
-minutes. It doesn't fix the firmware download.
-
-Tested with RTL8822CU, RTL8812BU, RTL8811CU, RTL8814AU, RTL8811AU,
-RTL8812AU, RTL8821AU, RTL8723DU.
-
-Fixes: a82dfd33d123 ("wifi: rtw88: Add common USB chip support")
-Link: https://github.com/lwfinger/rtw88/issues/344
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/usb.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/wireless/realtek/rtw88/usb.c
-+++ b/drivers/net/wireless/realtek/rtw88/usb.c
-@@ -139,7 +139,7 @@ static void rtw_usb_write(struct rtw_dev
-       ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
-                             RTW_USB_CMD_REQ, RTW_USB_CMD_WRITE,
--                            addr, 0, data, len, 30000);
-+                            addr, 0, data, len, 500);
-       if (ret < 0 && ret != -ENODEV && count++ < 4)
-               rtw_err(rtwdev, "write register 0x%x failed with %d\n",
-                       addr, ret);
diff --git a/package/kernel/mac80211/patches/rtl/107-v6.16-wifi-rtw88-usb-Upload-the-firmware-in-bigger-chunks.patch b/package/kernel/mac80211/patches/rtl/107-v6.16-wifi-rtw88-usb-Upload-the-firmware-in-bigger-chunks.patch
deleted file mode 100644 (file)
index d3d660e..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-From 80fe0bc1659c0ccc79d082e426fa376be5df9c04 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Sat, 10 May 2025 15:22:24 +0300
-Subject: [PATCH] wifi: rtw88: usb: Upload the firmware in bigger chunks
-
-RTL8811AU stops responding during the firmware download on some systems:
-
-[  809.256440] rtw_8821au 5-2.1:1.0: Firmware version 42.4.0, H2C version 0
-[  812.759142] rtw_8821au 5-2.1:1.0 wlp48s0f4u2u1: renamed from wlan0
-[  837.315388] rtw_8821au 1-4:1.0: write register 0x1ef4 failed with -110
-[  867.524259] rtw_8821au 1-4:1.0: write register 0x1ef8 failed with -110
-[  868.930976] rtw_8821au 5-2.1:1.0 wlp48s0f4u2u1: entered promiscuous mode
-[  897.730952] rtw_8821au 1-4:1.0: write register 0x1efc failed with -110
-
-Maybe it takes too long when writing the firmware 4 bytes at a time.
-
-Write 196 bytes at a time for RTL8821AU, RTL8811AU, and RTL8812AU,
-and 254 bytes at a time for RTL8723DU. These are the sizes used in
-their official drivers. Tested with all these chips.
-
-Link: https://github.com/lwfinger/rtw88/issues/344
-Signed-off-by: Bitterblue Smith <[email protected]>
-Acked-by: Ping-Ke Shih <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/hci.h  |  8 ++++
- drivers/net/wireless/realtek/rtw88/mac.c  | 11 +++--
- drivers/net/wireless/realtek/rtw88/mac.h  |  2 +
- drivers/net/wireless/realtek/rtw88/pci.c  |  2 +
- drivers/net/wireless/realtek/rtw88/sdio.c |  2 +
- drivers/net/wireless/realtek/rtw88/usb.c  | 55 +++++++++++++++++++++++
- 6 files changed, 76 insertions(+), 4 deletions(-)
-
---- a/drivers/net/wireless/realtek/rtw88/hci.h
-+++ b/drivers/net/wireless/realtek/rtw88/hci.h
-@@ -19,6 +19,8 @@ struct rtw_hci_ops {
-       void (*link_ps)(struct rtw_dev *rtwdev, bool enter);
-       void (*interface_cfg)(struct rtw_dev *rtwdev);
-       void (*dynamic_rx_agg)(struct rtw_dev *rtwdev, bool enable);
-+      void (*write_firmware_page)(struct rtw_dev *rtwdev, u32 page,
-+                                  const u8 *data, u32 size);
-       int (*write_data_rsvd_page)(struct rtw_dev *rtwdev, u8 *buf, u32 size);
-       int (*write_data_h2c)(struct rtw_dev *rtwdev, u8 *buf, u32 size);
-@@ -79,6 +81,12 @@ static inline void rtw_hci_dynamic_rx_ag
-               rtwdev->hci.ops->dynamic_rx_agg(rtwdev, enable);
- }
-+static inline void rtw_hci_write_firmware_page(struct rtw_dev *rtwdev, u32 page,
-+                                             const u8 *data, u32 size)
-+{
-+      rtwdev->hci.ops->write_firmware_page(rtwdev, page, data, size);
-+}
-+
- static inline int
- rtw_hci_write_data_rsvd_page(struct rtw_dev *rtwdev, u8 *buf, u32 size)
- {
---- a/drivers/net/wireless/realtek/rtw88/mac.c
-+++ b/drivers/net/wireless/realtek/rtw88/mac.c
-@@ -856,8 +856,8 @@ fwdl_ready:
-       }
- }
--static void
--write_firmware_page(struct rtw_dev *rtwdev, u32 page, const u8 *data, u32 size)
-+void rtw_write_firmware_page(struct rtw_dev *rtwdev, u32 page,
-+                           const u8 *data, u32 size)
- {
-       u32 val32;
-       u32 block_nr;
-@@ -887,6 +887,7 @@ write_firmware_page(struct rtw_dev *rtwd
-               rtw_write32(rtwdev, write_addr, le32_to_cpu(remain_data));
-       }
- }
-+EXPORT_SYMBOL(rtw_write_firmware_page);
- static int
- download_firmware_legacy(struct rtw_dev *rtwdev, const u8 *data, u32 size)
-@@ -904,11 +905,13 @@ download_firmware_legacy(struct rtw_dev
-       rtw_write8_set(rtwdev, REG_MCUFW_CTRL, BIT_FWDL_CHK_RPT);
-       for (page = 0; page < total_page; page++) {
--              write_firmware_page(rtwdev, page, data, DLFW_PAGE_SIZE_LEGACY);
-+              rtw_hci_write_firmware_page(rtwdev, page, data,
-+                                          DLFW_PAGE_SIZE_LEGACY);
-               data += DLFW_PAGE_SIZE_LEGACY;
-       }
-       if (last_page_size)
--              write_firmware_page(rtwdev, page, data, last_page_size);
-+              rtw_hci_write_firmware_page(rtwdev, page, data,
-+                                          last_page_size);
-       if (!check_hw_ready(rtwdev, REG_MCUFW_CTRL, BIT_FWDL_CHK_RPT, 1)) {
-               rtw_err(rtwdev, "failed to check download firmware report\n");
---- a/drivers/net/wireless/realtek/rtw88/mac.h
-+++ b/drivers/net/wireless/realtek/rtw88/mac.h
-@@ -34,6 +34,8 @@ int rtw_pwr_seq_parser(struct rtw_dev *r
-                      const struct rtw_pwr_seq_cmd * const *cmd_seq);
- int rtw_mac_power_on(struct rtw_dev *rtwdev);
- void rtw_mac_power_off(struct rtw_dev *rtwdev);
-+void rtw_write_firmware_page(struct rtw_dev *rtwdev, u32 page,
-+                           const u8 *data, u32 size);
- int rtw_download_firmware(struct rtw_dev *rtwdev, struct rtw_fw_state *fw);
- int rtw_mac_init(struct rtw_dev *rtwdev);
- void rtw_mac_flush_queues(struct rtw_dev *rtwdev, u32 queues, bool drop);
---- a/drivers/net/wireless/realtek/rtw88/pci.c
-+++ b/drivers/net/wireless/realtek/rtw88/pci.c
-@@ -12,6 +12,7 @@
- #include "fw.h"
- #include "ps.h"
- #include "debug.h"
-+#include "mac.h"
- static bool rtw_disable_msi;
- static bool rtw_pci_disable_aspm;
-@@ -1602,6 +1603,7 @@ static const struct rtw_hci_ops rtw_pci_
-       .link_ps = rtw_pci_link_ps,
-       .interface_cfg = rtw_pci_interface_cfg,
-       .dynamic_rx_agg = NULL,
-+      .write_firmware_page = rtw_write_firmware_page,
-       .read8 = rtw_pci_read8,
-       .read16 = rtw_pci_read16,
---- a/drivers/net/wireless/realtek/rtw88/sdio.c
-+++ b/drivers/net/wireless/realtek/rtw88/sdio.c
-@@ -10,6 +10,7 @@
- #include <linux/mmc/host.h>
- #include <linux/mmc/sdio_func.h>
- #include "main.h"
-+#include "mac.h"
- #include "debug.h"
- #include "fw.h"
- #include "ps.h"
-@@ -1164,6 +1165,7 @@ static const struct rtw_hci_ops rtw_sdio
-       .link_ps = rtw_sdio_link_ps,
-       .interface_cfg = rtw_sdio_interface_cfg,
-       .dynamic_rx_agg = NULL,
-+      .write_firmware_page = rtw_write_firmware_page,
-       .read8 = rtw_sdio_read8,
-       .read16 = rtw_sdio_read16,
---- a/drivers/net/wireless/realtek/rtw88/usb.c
-+++ b/drivers/net/wireless/realtek/rtw88/usb.c
-@@ -165,6 +165,60 @@ static void rtw_usb_write32(struct rtw_d
-       rtw_usb_write(rtwdev, addr, val, 4);
- }
-+static void rtw_usb_write_firmware_page(struct rtw_dev *rtwdev, u32 page,
-+                                      const u8 *data, u32 size)
-+{
-+      struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
-+      struct usb_device *udev = rtwusb->udev;
-+      u32 addr = FW_START_ADDR_LEGACY;
-+      u8 *data_dup, *buf;
-+      u32 n, block_size;
-+      int ret;
-+
-+      switch (rtwdev->chip->id) {
-+      case RTW_CHIP_TYPE_8723D:
-+              block_size = 254;
-+              break;
-+      default:
-+              block_size = 196;
-+              break;
-+      }
-+
-+      data_dup = kmemdup(data, size, GFP_KERNEL);
-+      if (!data_dup)
-+              return;
-+
-+      buf = data_dup;
-+
-+      rtw_write32_mask(rtwdev, REG_MCUFW_CTRL, BIT_ROM_PGE, page);
-+
-+      while (size > 0) {
-+              if (size >= block_size)
-+                      n = block_size;
-+              else if (size >= 8)
-+                      n = 8;
-+              else
-+                      n = 1;
-+
-+              ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
-+                                    RTW_USB_CMD_REQ, RTW_USB_CMD_WRITE,
-+                                    addr, 0, buf, n, 500);
-+              if (ret != n) {
-+                      if (ret != -ENODEV)
-+                              rtw_err(rtwdev,
-+                                      "write 0x%x len %d failed: %d\n",
-+                                      addr, n, ret);
-+                      break;
-+              }
-+
-+              addr += n;
-+              buf += n;
-+              size -= n;
-+      }
-+
-+      kfree(data_dup);
-+}
-+
- static int dma_mapping_to_ep(enum rtw_dma_mapping dma_mapping)
- {
-       switch (dma_mapping) {
-@@ -892,6 +946,7 @@ static const struct rtw_hci_ops rtw_usb_
-       .link_ps = rtw_usb_link_ps,
-       .interface_cfg = rtw_usb_interface_cfg,
-       .dynamic_rx_agg = rtw_usb_dynamic_rx_agg,
-+      .write_firmware_page = rtw_usb_write_firmware_page,
-       .write8  = rtw_usb_write8,
-       .write16 = rtw_usb_write16,
diff --git a/package/kernel/mac80211/patches/rtl/108-v6.16-wifi-rtw88-Fix-the-random-error-beacon-valid-message.patch b/package/kernel/mac80211/patches/rtl/108-v6.16-wifi-rtw88-Fix-the-random-error-beacon-valid-message.patch
deleted file mode 100644 (file)
index adf585e..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-From f24d0d8c3cd7e4237f802c4d2f3bd4ac04572948 Mon Sep 17 00:00:00 2001
-From: Bitterblue Smith <[email protected]>
-Date: Sat, 10 May 2025 16:12:34 +0300
-Subject: [PATCH] wifi: rtw88: Fix the random "error beacon valid" messages for
- USB
-
-All the USB devices have a problem in AP mode: uploading the updated
-beacon to the chip's reserved page can randomly fail:
-
-[34996.474304] rtw88_8723du 1-2:1.2: error beacon valid
-[34996.474788] rtw88_8723du 1-2:1.2: failed to download drv rsvd page
-[34999.956369] rtw88_8723du 1-2:1.2: error beacon valid
-[34999.956846] rtw88_8723du 1-2:1.2: failed to download drv rsvd page
-[34999.956855] rtw88_8723du 1-2:1.2: failed to download beacon
-[35017.978296] rtw88_8723du 1-2:1.2: error beacon valid
-[35017.978805] rtw88_8723du 1-2:1.2: failed to download drv rsvd page
-[35017.978823] rtw88_8723du 1-2:1.2: failed to download beacon
-[35023.200395] rtw88_8723du 1-2:1.2: error beacon valid
-[35023.200869] rtw88_8723du 1-2:1.2: failed to download drv rsvd page
-[35023.200875] rtw88_8723du 1-2:1.2: failed to download beacon
-[35478.680547] rtw88_8723du 1-2:1.2: error beacon valid
-[35478.681023] rtw88_8723du 1-2:1.2: failed to download drv rsvd page
-
-Disable some beacon-related hardware functions before uploading the
-beacon and enable them again after.
-
-Tested with RTL8723DU, RTL8812BU, RTL8822CE.
-
-Signed-off-by: Bitterblue Smith <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/fw.c | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
---- a/drivers/net/wireless/realtek/rtw88/fw.c
-+++ b/drivers/net/wireless/realtek/rtw88/fw.c
-@@ -1466,7 +1466,7 @@ void rtw_add_rsvd_page_sta(struct rtw_de
- int rtw_fw_write_data_rsvd_page(struct rtw_dev *rtwdev, u16 pg_addr,
-                               u8 *buf, u32 size)
- {
--      u8 bckp[2];
-+      u8 bckp[3];
-       u8 val;
-       u16 rsvd_pg_head;
-       u32 bcn_valid_addr;
-@@ -1478,6 +1478,8 @@ int rtw_fw_write_data_rsvd_page(struct r
-       if (!size)
-               return -EINVAL;
-+      bckp[2] = rtw_read8(rtwdev, REG_BCN_CTRL);
-+
-       if (rtw_chip_wcpu_11n(rtwdev)) {
-               rtw_write32_set(rtwdev, REG_DWBCN0_CTRL, BIT_BCN_VALID);
-       } else {
-@@ -1491,6 +1493,9 @@ int rtw_fw_write_data_rsvd_page(struct r
-       val |= BIT_ENSWBCN >> 8;
-       rtw_write8(rtwdev, REG_CR + 1, val);
-+      rtw_write8(rtwdev, REG_BCN_CTRL,
-+                 (bckp[2] & ~BIT_EN_BCN_FUNCTION) | BIT_DIS_TSF_UDT);
-+
-       if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE) {
-               val = rtw_read8(rtwdev, REG_FWHW_TXQ_CTRL + 2);
-               bckp[1] = val;
-@@ -1521,6 +1526,7 @@ restore:
-       rsvd_pg_head = rtwdev->fifo.rsvd_boundary;
-       rtw_write16(rtwdev, REG_FIFOPAGE_CTRL_2,
-                   rsvd_pg_head | BIT_BCN_VALID_V1);
-+      rtw_write8(rtwdev, REG_BCN_CTRL, bckp[2]);
-       if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE)
-               rtw_write8(rtwdev, REG_FWHW_TXQ_CTRL + 2, bckp[1]);
-       rtw_write8(rtwdev, REG_CR + 1, bckp[0]);
diff --git a/package/kernel/mac80211/patches/rtl/109-v6.16-wifi-rtw88-fix-the-para-buffer-size-to-avoid-reading.patch b/package/kernel/mac80211/patches/rtl/109-v6.16-wifi-rtw88-fix-the-para-buffer-size-to-avoid-reading.patch
deleted file mode 100644 (file)
index 11b7312..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From 4c2c372de2e108319236203cce6de44d70ae15cd Mon Sep 17 00:00:00 2001
-From: Alexey Kodanev <[email protected]>
-Date: Tue, 13 May 2025 12:13:04 +0000
-Subject: [PATCH] wifi: rtw88: fix the 'para' buffer size to avoid reading out
- of bounds
-
-Set the size to 6 instead of 2, since 'para' array is passed to
-'rtw_fw_bt_wifi_control(rtwdev, para[0], &para[1])', which reads
-5 bytes:
-
-void rtw_fw_bt_wifi_control(struct rtw_dev *rtwdev, u8 op_code, u8 *data)
-{
-    ...
-    SET_BT_WIFI_CONTROL_DATA1(h2c_pkt, *data);
-    SET_BT_WIFI_CONTROL_DATA2(h2c_pkt, *(data + 1));
-    ...
-    SET_BT_WIFI_CONTROL_DATA5(h2c_pkt, *(data + 4));
-
-Detected using the static analysis tool - Svace.
-Fixes: 4136214f7c46 ("rtw88: add BT co-existence support")
-Signed-off-by: Alexey Kodanev <[email protected]>
-Signed-off-by: Ping-Ke Shih <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- drivers/net/wireless/realtek/rtw88/coex.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/wireless/realtek/rtw88/coex.c
-+++ b/drivers/net/wireless/realtek/rtw88/coex.c
-@@ -309,7 +309,7 @@ static void rtw_coex_tdma_timer_base(str
- {
-       struct rtw_coex *coex = &rtwdev->coex;
-       struct rtw_coex_stat *coex_stat = &coex->stat;
--      u8 para[2] = {0};
-+      u8 para[6] = {};
-       u8 times;
-       u16 tbtt_interval = coex_stat->wl_beacon_interval;
index d6cc08572267da35df3e5d4393e53b2592555490..23a4254ec7b5cf91fe66ccef6ab86453f15ecc04 100644 (file)
@@ -9,7 +9,7 @@ Used for AP+STA support in OpenWrt - preserve AP mode keys across STA reconnect
 
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -1677,12 +1677,6 @@ static int ieee80211_stop_ap(struct wiph
+@@ -1691,12 +1691,6 @@ static int ieee80211_stop_ap(struct wiph
  
        __sta_info_flush(sdata, true, link_id, NULL);
  
@@ -19,6 +19,6 @@ Used for AP+STA support in OpenWrt - preserve AP mode keys across STA reconnect
 -              ieee80211_free_key_list(local, &keys);
 -      }
 -
-       link_conf->enable_beacon = false;
-       sdata->beacon_rate_set = false;
-       sdata->vif.cfg.ssid_len = 0;
+       ieee80211_stop_mbssid(sdata);
+       RCU_INIT_POINTER(link_conf->tx_bss_conf, NULL);
index f11a60fd4e724a853993913415ee9133996f6a38..1d56827d0c684ebe2d1bc7dc09ebbc2a0597e986 100644 (file)
@@ -8,7 +8,7 @@ Subject: [PATCH] mac80211: allow scans in access point mode (for site survey)
 
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -2891,6 +2891,8 @@ static int ieee80211_scan(struct wiphy *
+@@ -2925,6 +2925,8 @@ static int ieee80211_scan(struct wiphy *
                 */
                fallthrough;
        case NL80211_IFTYPE_AP:
index ea8fb0c6b31400bcc0fedcdd75a1d47b29792e2f..6ef7fb27776c1ef22f9c3b39d561ea02772b44f2 100644 (file)
@@ -16,7 +16,7 @@ and we should ignore this.
 
 --- a/net/wireless/core.c
 +++ b/net/wireless/core.c
-@@ -671,21 +671,6 @@ int wiphy_verify_iface_combinations(stru
+@@ -679,21 +679,6 @@ int wiphy_verify_iface_combinations(stru
                                    c->limits[j].max > 1))
                                return -EINVAL;
  
index e85207cb6bb376895b4d18b6ad1e31c1ea7b6756..2de9bec09374f15b6a2e2479ef14b5a1572b04ba 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: David Bauer <[email protected]>
 
 --- a/net/mac80211/sta_info.c
 +++ b/net/mac80211/sta_info.c
-@@ -2474,6 +2474,13 @@ static void sta_stats_decode_rate(struct
+@@ -2468,6 +2468,13 @@ static void sta_stats_decode_rate(struct
  
                sband = local->hw.wiphy->bands[band];
  
index f7690c89c75da507ad3c1a7236d7903694533e66..86504c4748f0e4f0d7a1f31a788e21e13db598d2 100644 (file)
@@ -28,7 +28,7 @@ Signed-off-by: Johannes Berg <[email protected]>
 
 --- a/net/mac80211/sta_info.c
 +++ b/net/mac80211/sta_info.c
-@@ -583,6 +583,7 @@ __sta_info_alloc(struct ieee80211_sub_if
+@@ -582,6 +582,7 @@ __sta_info_alloc(struct ieee80211_sub_if
        spin_lock_init(&sta->ps_lock);
        INIT_WORK(&sta->drv_deliver_wk, sta_deliver_ps_frames);
        wiphy_work_init(&sta->ampdu_mlme.work, ieee80211_ba_session_work);
index d329ad7b6fa1e36d96e1bd09653f5aefbd051fce..17e2151d3c08ca4e239c842b930a23d7156d48a7 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -4083,7 +4083,7 @@ struct ieee80211_txq *ieee80211_next_txq
+@@ -4066,7 +4066,7 @@ struct ieee80211_txq *ieee80211_next_txq
  
                if (deficit < 0)
                        sta->airtime[txqi->txq.ac].deficit +=
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
                if (deficit < 0 || !aql_check) {
                        list_move_tail(&txqi->schedule_order,
-@@ -4226,7 +4226,8 @@ bool ieee80211_txq_may_transmit(struct i
+@@ -4209,7 +4209,8 @@ bool ieee80211_txq_may_transmit(struct i
                }
                sta = container_of(iter->txq.sta, struct sta_info, sta);
                if (ieee80211_sta_deficit(sta, ac) < 0)
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
                list_move_tail(&iter->schedule_order, &local->active_txqs[ac]);
        }
  
-@@ -4234,7 +4235,7 @@ bool ieee80211_txq_may_transmit(struct i
+@@ -4217,7 +4218,7 @@ bool ieee80211_txq_may_transmit(struct i
        if (sta->airtime[ac].deficit >= 0)
                goto out;
  
index d264c33f134e9be334ce85977188452cb5b83ed6..8197b069f6b1fd9d39e864dcf4f7d1c9b78a8945 100644 (file)
@@ -52,7 +52,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
 --- a/net/wireless/chan.c
 +++ b/net/wireless/chan.c
-@@ -648,6 +648,8 @@ void cfg80211_set_dfs_state(struct wiphy
+@@ -643,6 +643,8 @@ void cfg80211_set_dfs_state(struct wiphy
  
                c->dfs_state = dfs_state;
                c->dfs_state_entered = jiffies;
@@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
        }
  }
  
-@@ -995,6 +997,53 @@ bool cfg80211_any_wiphy_oper_chan(struct
+@@ -990,6 +992,53 @@ bool cfg80211_any_wiphy_oper_chan(struct
        return false;
  }
  
@@ -117,7 +117,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  {
 --- a/net/wireless/core.h
 +++ b/net/wireless/core.h
-@@ -475,6 +475,8 @@ void cfg80211_set_dfs_state(struct wiphy
+@@ -474,6 +474,8 @@ void cfg80211_set_dfs_state(struct wiphy
                            enum nl80211_dfs_state dfs_state);
  
  void cfg80211_dfs_channels_update_work(struct work_struct *work);
index 6599d1b5e89c130b3584bacebf815a53a5ff3a99..f8751b30aec0090e0df0812c5fa97463277dcabd 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 --- a/include/net/cfg80211.h
 +++ b/include/net/cfg80211.h
-@@ -3438,6 +3438,7 @@ enum wiphy_params_flags {
+@@ -3437,6 +3437,7 @@ enum wiphy_params_flags {
  /* The per TXQ device queue limit in airtime */
  #define IEEE80211_DEFAULT_AQL_TXQ_LIMIT_L     5000
  #define IEEE80211_DEFAULT_AQL_TXQ_LIMIT_H     12000
@@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -1360,10 +1360,12 @@ struct ieee80211_local {
+@@ -1377,10 +1377,12 @@ struct ieee80211_local {
        spinlock_t handle_wake_tx_queue_lock;
  
        u16 airtime_flags;
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
                spin_lock_init(&local->active_txq_lock[i]);
 --- a/net/mac80211/sta_info.c
 +++ b/net/mac80211/sta_info.c
-@@ -2388,13 +2388,28 @@ EXPORT_SYMBOL(ieee80211_sta_recalc_aggre
+@@ -2382,13 +2382,28 @@ EXPORT_SYMBOL(ieee80211_sta_recalc_aggre
  
  void ieee80211_sta_update_pending_airtime(struct ieee80211_local *local,
                                          struct sta_info *sta, u8 ac,
@@ -127,7 +127,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
                        atomic_add(tx_airtime,
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -2555,7 +2555,7 @@ static u16 ieee80211_store_ack_skb(struc
+@@ -2539,7 +2539,7 @@ static u16 ieee80211_store_ack_skb(struc
  
                spin_lock_irqsave(&local->ack_status_lock, flags);
                id = idr_alloc(&local->ack_status_frames, ack_skb,
@@ -136,7 +136,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
                spin_unlock_irqrestore(&local->ack_status_lock, flags);
  
                if (id >= 0) {
-@@ -3984,20 +3984,20 @@ begin:
+@@ -3967,20 +3967,20 @@ begin:
  encap_out:
        info->control.vif = vif;
  
@@ -167,7 +167,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
        }
  
        return skb;
-@@ -4049,6 +4049,7 @@ struct ieee80211_txq *ieee80211_next_txq
+@@ -4032,6 +4032,7 @@ struct ieee80211_txq *ieee80211_next_txq
        struct ieee80211_txq *ret = NULL;
        struct txq_info *txqi = NULL, *head = NULL;
        bool found_eligible_txq = false;
@@ -175,7 +175,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
        spin_lock_bh(&local->active_txq_lock[ac]);
  
-@@ -4072,26 +4073,26 @@ struct ieee80211_txq *ieee80211_next_txq
+@@ -4055,26 +4056,26 @@ struct ieee80211_txq *ieee80211_next_txq
        if (!head)
                head = txqi;
  
@@ -214,7 +214,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
        if (txqi->schedule_round == local->schedule_round[ac])
                goto out;
  
-@@ -4156,7 +4157,8 @@ bool ieee80211_txq_airtime_check(struct
+@@ -4139,7 +4140,8 @@ bool ieee80211_txq_airtime_check(struct
                return true;
  
        if (!txq->sta)
@@ -224,7 +224,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
        if (unlikely(txq->tid == IEEE80211_NUM_TIDS))
                return true;
-@@ -4205,15 +4207,15 @@ bool ieee80211_txq_may_transmit(struct i
+@@ -4188,15 +4190,15 @@ bool ieee80211_txq_may_transmit(struct i
  
        spin_lock_bh(&local->active_txq_lock[ac]);
  
@@ -245,7 +245,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
                if (iter == txqi)
 --- a/include/net/mac80211.h
 +++ b/include/net/mac80211.h
-@@ -1237,8 +1237,8 @@ struct ieee80211_tx_info {
+@@ -1245,8 +1245,8 @@ struct ieee80211_tx_info {
            status_data_idr:1,
            status_data:13,
            hw_queue:4,
index 668315477a5ec71432f972413c9d0fa998e7214b..78240650d13682b808d53721f052230c3f63195e 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Johannes Berg <[email protected]>
 
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -4116,7 +4116,9 @@ void __ieee80211_schedule_txq(struct iee
+@@ -4099,7 +4099,9 @@ void __ieee80211_schedule_txq(struct iee
  
        spin_lock_bh(&local->active_txq_lock[txq->ac]);
  
index e0c27a9225c1fb1c54d02f1cb1c7f61346832093..b33bf5ca1871144c3d94eb2707166e18edce542e 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Johannes Berg <[email protected]>
 
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -1444,7 +1444,7 @@ static void ieee80211_txq_enqueue(struct
+@@ -1428,7 +1428,7 @@ static void ieee80211_txq_enqueue(struct
  {
        struct fq *fq = &local->fq;
        struct fq_tin *tin = &txqi->tin;
@@ -23,7 +23,7 @@ Signed-off-by: Johannes Berg <[email protected]>
  
        ieee80211_set_skb_enqueue_time(skb);
  
-@@ -1460,6 +1460,7 @@ static void ieee80211_txq_enqueue(struct
+@@ -1444,6 +1444,7 @@ static void ieee80211_txq_enqueue(struct
                        IEEE80211_TX_INTCFL_NEED_TXPROCESSING;
                __skb_queue_tail(&txqi->frags, skb);
        } else {
index ac6f67bc351cc23fea466caeb3bdec3b63c789d1..8ff0982266b111379f334bba08bc37b900dd11a1 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Johannes Berg <[email protected]>
 
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -622,6 +622,12 @@ ieee80211_tx_h_select_key(struct ieee802
+@@ -612,6 +612,12 @@ ieee80211_tx_h_select_key(struct ieee802
        else
                tx->key = NULL;
  
index ba7d0b6bc4a254e25369e143858faa3f2f5ee785..5ef6d25e22ee0b671f64c0ba2f68f15c6ce0dffa 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Johannes Berg <[email protected]>
 
 --- a/net/mac80211/tx.c
 +++ b/net/mac80211/tx.c
-@@ -3900,6 +3900,7 @@ begin:
+@@ -3883,6 +3883,7 @@ begin:
         * The key can be removed while the packet was queued, so need to call
         * this here to get the current key.
         */
index 4c8531d32894598ba9f928b1d663ed2ad8f87f30..33ca9fe3359f5cc16fb06abe585f0e7d34c53466 100644 (file)
@@ -1,6 +1,6 @@
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -3525,6 +3525,27 @@ static int ieee80211_set_bitrate_mask(st
+@@ -3559,6 +3559,27 @@ static int ieee80211_set_bitrate_mask(st
        return 0;
  }
  
@@ -28,7 +28,7 @@
  static int ieee80211_start_radar_detection(struct wiphy *wiphy,
                                           struct net_device *dev,
                                           struct cfg80211_chan_def *chandef,
-@@ -3538,7 +3559,7 @@ static int ieee80211_start_radar_detecti
+@@ -3572,7 +3593,7 @@ static int ieee80211_start_radar_detecti
  
        lockdep_assert_wiphy(local->hw.wiphy);
  
@@ -37,7 +37,7 @@
                return -EBUSY;
  
        link_data = sdata_dereference(sdata->link[link_id], sdata);
-@@ -4030,7 +4051,7 @@ __ieee80211_channel_switch(struct wiphy
+@@ -4064,7 +4085,7 @@ __ieee80211_channel_switch(struct wiphy
  
        lockdep_assert_wiphy(local->hw.wiphy);
  
@@ -77,7 +77,7 @@
  
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -1958,6 +1958,12 @@ int ieee80211_mesh_finish_csa(struct iee
+@@ -1975,6 +1975,12 @@ int ieee80211_mesh_finish_csa(struct iee
                              u64 *changed);
  
  /* scan/BSS handling */
@@ -90,7 +90,7 @@
  void ieee80211_scan_work(struct wiphy *wiphy, struct wiphy_work *work);
  int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata,
                                const u8 *ssid, u8 ssid_len,
-@@ -1996,6 +2002,7 @@ void ieee80211_sched_scan_stopped_work(s
+@@ -2013,6 +2019,7 @@ void ieee80211_sched_scan_stopped_work(s
  /* off-channel/mgmt-tx */
  void ieee80211_offchannel_stop_vifs(struct ieee80211_local *local);
  void ieee80211_offchannel_return(struct ieee80211_local *local);
@@ -98,7 +98,7 @@
  void ieee80211_roc_setup(struct ieee80211_local *local);
  void ieee80211_start_next_roc(struct ieee80211_local *local);
  void ieee80211_reconfig_roc(struct ieee80211_local *local);
-@@ -2640,6 +2647,8 @@ bool ieee80211_chandef_s1g_oper(const st
+@@ -2660,6 +2667,8 @@ bool ieee80211_chandef_s1g_oper(const st
                                struct cfg80211_chan_def *chandef);
  void ieee80211_chandef_downgrade(struct cfg80211_chan_def *chandef,
                                 struct ieee80211_conn_settings *conn);
  static inline void
  ieee80211_chanreq_downgrade(struct ieee80211_chan_req *chanreq,
                            struct ieee80211_conn_settings *conn)
-@@ -2696,7 +2705,7 @@ void ieee80211_recalc_chanctx_min_def(st
+@@ -2716,7 +2725,7 @@ void ieee80211_recalc_chanctx_min_def(st
                                      struct ieee80211_chanctx *ctx,
                                      struct ieee80211_link_data *rsvd_for,
                                      bool check_reserved);
                        list_add_tail(&roc->list, &local->roc_list);
 --- a/net/mac80211/scan.c
 +++ b/net/mac80211/scan.c
-@@ -571,36 +571,83 @@ static int ieee80211_start_sw_scan(struc
+@@ -586,36 +586,83 @@ static int ieee80211_start_sw_scan(struc
        return 0;
  }
  
                return false;
  
        if (sdata->vif.type == NL80211_IFTYPE_STATION &&
-@@ -612,15 +659,22 @@ static bool ieee80211_can_scan(struct ie
+@@ -627,15 +674,22 @@ static bool ieee80211_can_scan(struct ie
  
  void ieee80211_run_deferred_scan(struct ieee80211_local *local)
  {
                return;
  
        wiphy_delayed_work_queue(local->hw.wiphy, &local->scan_work,
-@@ -703,6 +757,7 @@ static int __ieee80211_start_scan(struct
+@@ -718,6 +772,7 @@ static int __ieee80211_start_scan(struct
  {
        struct ieee80211_local *local = sdata->local;
        bool hw_scan = local->ops->hw_scan;
        int rc;
  
        lockdep_assert_wiphy(local->hw.wiphy);
-@@ -717,10 +772,11 @@ static int __ieee80211_start_scan(struct
+@@ -732,10 +787,11 @@ static int __ieee80211_start_scan(struct
            !(sdata->vif.active_links & BIT(req->tsf_report_link_id)))
                return -EINVAL;
  
   * the suspend->resume cycle. Since we can't check each caller
 --- a/net/wireless/util.c
 +++ b/net/wireless/util.c
-@@ -2907,6 +2907,9 @@ bool cfg80211_radio_chandef_valid(const
+@@ -2955,6 +2955,9 @@ bool cfg80211_radio_chandef_valid(const
  {
        u32 freq, width;
  
 +              return false;
 +
        freq = ieee80211_chandef_to_khz(chandef);
-       width = nl80211_chan_width_to_mhz(chandef->width);
+       width = cfg80211_chandef_get_width(chandef);
        if (!ieee80211_radio_freq_range_valid(radio, freq, width))
index b5d5a72f87010f0d1d6bcb4ad65267c3f6725b57..bffb66dfe73f9a62fe5b6bea2ef23e0e30eaf6dd 100644 (file)
@@ -126,7 +126,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
        }
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -2756,6 +2756,11 @@ u8 *ieee80211_get_bssid(struct ieee80211
+@@ -2776,6 +2776,11 @@ u8 *ieee80211_get_bssid(struct ieee80211
  
  extern const struct ethtool_ops ieee80211_ethtool_ops;
  
index 81cff9e7e897edd57116e46d50af87dcf447b70c..cc860b751954a315682d713285ecb14656560bd4 100644 (file)
@@ -12,9 +12,9 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 --- a/net/mac80211/sta_info.c
 +++ b/net/mac80211/sta_info.c
-@@ -2621,6 +2621,29 @@ static inline u64 sta_get_stats_bytes(st
-       return value;
+@@ -2648,6 +2648,29 @@ static void sta_set_mesh_sinfo(struct st
  }
+ #endif
  
 +static u32 sta_estimate_expected_throughput(struct sta_info *sta,
 +                                          struct station_info *sinfo)
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo,
                   bool tidstats)
  {
-@@ -2865,6 +2888,8 @@ void sta_set_sinfo(struct sta_info *sta,
+@@ -2871,6 +2894,8 @@ void sta_set_sinfo(struct sta_info *sta,
                sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_TDLS_PEER);
  
        thr = sta_get_expected_throughput(sta);
diff --git a/package/kernel/mac80211/patches/subsys/400-v6.16-wifi-mac80211-do-not-offer-a-mesh-path-if-forwarding.patch b/package/kernel/mac80211/patches/subsys/400-v6.16-wifi-mac80211-do-not-offer-a-mesh-path-if-forwarding.patch
deleted file mode 100644 (file)
index 71ae00e..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-From 0d47666f48a084363ee54f389bec2865de4934b8 Mon Sep 17 00:00:00 2001
-From: Benjamin Berg <[email protected]>
-Date: Wed, 30 Apr 2025 20:25:38 +0200
-Subject: [PATCH] wifi: mac80211: do not offer a mesh path if forwarding is
- disabled
-
-When processing a PREQ the code would always check whether we have a
-mesh path locally and reply accordingly. However, when forwarding is
-disabled then we should not reply with this information as we will not
-forward data packets down that path.
-
-Move the check for dot11MeshForwarding up in the function and skip the
-mesh path lookup in that case. In the else block, set forward to false
-so that the rest of the function becomes a no-op and the
-dot11MeshForwarding check does not need to be duplicated.
-
-This explains an effect observed in the Freifunk community where mesh
-forwarding is disabled. In that case a mesh with three STAs and only bad
-links in between them, individual STAs would occionally have indirect
-mpath entries. This should not have happened.
-
-Signed-off-by: Benjamin Berg <[email protected]>
-Reviewed-by: Rouven Czerwinski <[email protected]>
----
- net/mac80211/mesh_hwmp.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
---- a/net/mac80211/mesh_hwmp.c
-+++ b/net/mac80211/mesh_hwmp.c
-@@ -636,7 +636,7 @@ static void hwmp_preq_frame_process(stru
-                               mesh_path_add_gate(mpath);
-               }
-               rcu_read_unlock();
--      } else {
-+      } else if (ifmsh->mshcfg.dot11MeshForwarding) {
-               rcu_read_lock();
-               mpath = mesh_path_lookup(sdata, target_addr);
-               if (mpath) {
-@@ -654,6 +654,8 @@ static void hwmp_preq_frame_process(stru
-                       }
-               }
-               rcu_read_unlock();
-+      } else {
-+              forward = false;
-       }
-       if (reply) {
-@@ -671,7 +673,7 @@ static void hwmp_preq_frame_process(stru
-               }
-       }
--      if (forward && ifmsh->mshcfg.dot11MeshForwarding) {
-+      if (forward) {
-               u32 preq_id;
-               u8 hopcount;