mirror of
https://github.com/kk7ds/chirp
synced 2026-08-13 17:51:36 -04:00
This also rewrites the cloning routines to be less fragile and less dependent on timing. I have never been able to get this driver to work on any platform, and with this change it works on all platforms for me. Spelling and grammar is also tweaked for correctness while I'm here.
30 KiB
30 KiB
Status
| Driver | Tester | Tested | Byte Clean |
|---|---|---|---|
| ARRL_Travel_Plus | |||
| Abbree_AR-518 | |||
| Abbree_AR-63 | @KC9HI | 30-Nov-2022 | Yes |
| Alinco_DJ-G7EG | |||
| Alinco_DJ175 | |||
| Alinco_DJ596 | |||
| Alinco_DR03T | |||
| Alinco_DR06T | |||
| Alinco_DR135T | |||
| Alinco_DR235T | |||
| Alinco_DR435T | |||
| AnyTone_5888UV | |||
| AnyTone_5888UVIII | |||
| AnyTone_778UV | Implied by Retevis_RT95 | 13-Nov-2022 | Yes |
| AnyTone_778UV_VOX | Implied by Retevis_RT95 | 13-Nov-2022 | Yes |
| AnyTone_OBLTR-8R | |||
| AnyTone_TERMN-8R | |||
| Anysecu_WP-9900 | @KC9HI | 11-Nov-2022 | Yes |
| BTECH_FRS-A1 | @KC9HI | 30-Nov-2022 | Yes |
| BTECH_FRS-B1 | @KC9HI | 28-Nov-2022 | Yes |
| BTECH_GMRS-20V2 | @KC9HI | 13-Nov-2022 | Yes |
| BTECH_GMRS-50X1 | @KC9HI | 13-Nov-2022 | Yes |
| BTECH_GMRS-V1 | |||
| BTECH_GMRS-V2 | |||
| BTECH_MURS-V1 | |||
| BTECH_UV-2501 | @KC9HI | 11-Nov-2022 | Yes |
| BTECH_UV-2501+220 | @KC9HI | 11-Nov-2022 | Yes |
| BTECH_UV-25X2 | @KC9HI | 11-Nov-2022 | Yes |
| BTECH_UV-25X4 | @KC9HI | 10-Nov-2022 | Yes |
| BTECH_UV-5001 | @KC9HI | 11-Nov-2022 | Yes |
| BTECH_UV-50X2 | @KC9HI | 11-Nov-2022 | Yes |
| BTECH_UV-50X2_G2 | @KC9HI | 30-Nov-2022 | Yes |
| BTECH_UV-50X3 | |||
| BTECH_UV-5X3 | |||
| Baofeng_BF-888 | @kk7ds | 13-Feb-2019 | Yes |
| Baofeng_BF-A58 | @KC9HI | 3-Dec-2022 | Yes |
| Baofeng_BF-A58S | @KC9HI | 3-Dec-2022 | Yes |
| Baofeng_BF-F8HP | @KC9HI | 18-Nov-2022 | Yes |
| Baofeng_BF-T1 | |||
| Baofeng_BF-T8 | @KC9HI | 30-Nov-2022 | Yes |
| Baofeng_BF-V8A | @KC9HI | 28-Nov-2022 | Yes |
| Baofeng_F-11 | Implied by Baofeng_UV-5R | 18-Nov-2022 | Yes |
| Baofeng_GT-3WP | @KC9HI | 3-Dec-2022 | Yes |
| Baofeng_GT-5R | @KC9HI | 18-Nov-2022 | Yes |
| Baofeng_UV-3R | @yarda | 26-Sep-2022 | |
| Baofeng_UV-5R | @lekv | 23-Oct-2022 | Yes |
| Baofeng_UV-6 | Implied by Baofeng_UV-5R | 18-Nov-2022 | Yes |
| Baofeng_UV-6R | |||
| Baofeng_UV-82 | @KC9HI | 18-Nov-2022 | Yes |
| Baofeng_UV-82HP | @KC9HI | 18-Nov-2022 | Yes |
| Baofeng_UV-82WP | @KC9HI | 3-Dec-2022 | Yes |
| Baofeng_UV-9G | @KC9HI | 3-Dec-2022 | Yes |
| Baofeng_UV-9R | @KC9HI | 3-Dec-2022 | Yes |
| Baofeng_UV-B5 | @KC9HI | 18-Nov-2022 | Yes |
| Baojie_BJ-218 | |||
| Baojie_BJ-318 | |||
| Baojie_BJ-9900 | |||
| Baojie_BJ-UV55 | Yes | ||
| Boblov_X3Plus | |||
| CRT_Micron_UV | Implied by Retevis_RT95 | 13-Nov-2022 | Yes |
| CRT_Micron_UV_V2 | Implied by Retevis_RT95 | 13-Nov-2022 | Yes |
| Commander_KG-UV | |||
| Explorer_QRZ-1 | Implied by TYT_TH-UV88 | 5-Dec-2022 | Yes |
| Feidaxin_FD-150A | |||
| Feidaxin_FD-160A | |||
| Feidaxin_FD-268A | |||
| Feidaxin_FD-268B | |||
| Feidaxin_FD-288A | |||
| Feidaxin_FD-288B | |||
| Feidaxin_FD-450A | |||
| Feidaxin_FD-460A | |||
| Feidaxin_FD-460UH | |||
| Generic_CSV | @kk7ds | 4-Dec-2022 | |
| HobbyPCB_RS-UV3 | |||
| Icom_746 | Yes | ||
| Icom_IC-208H | Yes | ||
| Icom_IC-2100H | Yes | ||
| Icom_IC-2200H | @kk7ds | 24-Oct-2022 | Yes |
| Icom_IC-2300H | Yes | ||
| Icom_IC-2720H | Yes | ||
| Icom_IC-2730A | Yes | ||
| Icom_IC-2820H | @kk7ds | 22-Oct-2022 | Yes |
| Icom_IC-7000 | Yes | ||
| Icom_IC-7100 | Yes | ||
| Icom_IC-7200 | @kk7ds | 22-Oct-2022 | Yes |
| Icom_IC-7300 | @kk7ds | 22-Oct-2022 | Yes |
| Icom_IC-7610 | @kk7ds | 24-Oct-2022 | Yes |
| Icom_IC-910 | @mfncooper | 1-Oct-2021 | Yes |
| Icom_IC-91_92AD | @kk7ds | 23-Nov-2022 | Yes |
| Icom_IC-E90 | Yes | ||
| Icom_IC-P7 | Yes | ||
| Icom_IC-Q7A | @KC9HI | 20-Nov-2022 | Yes |
| Icom_IC-T70 | Yes | ||
| Icom_IC-T7H | Yes | ||
| Icom_IC-T8A | Yes | ||
| Icom_IC-V82_U82 | |||
| Icom_IC-V86 | Yes | ||
| Icom_IC-W32A | Yes | ||
| Icom_IC-W32E | Yes | ||
| Icom_ID-31A | @kk7ds | 1-Dec-2022 | Yes |
| Icom_ID-4100 | @kk7ds | 1-Dec-2022 | Yes |
| Icom_ID-51 | Implied by Icom_ID-31A | 1-Dec-2022 | Yes |
| Icom_ID-5100 | @kk7ds | 1-Dec-2022 | Yes |
| Icom_ID-51_Plus | Implied by Icom_ID-31A | 1-Dec-2022 | Yes |
| Icom_ID-51_Plus2 | Yes | ||
| Icom_ID-800H_v2 | @kk7ds | 22-Oct-2022 | Yes |
| Icom_ID-80H | Yes | ||
| Icom_ID-880H | @kk7ds | 22-Oct-2022 | Yes |
| Intek_HR-2040 | |||
| Intek_KT-980HP | Implied by Baofeng_BF-F8HP | 18-Nov-2022 | Yes |
| Jetstream_JT220M | |||
| Jetstream_JT270M | |||
| Jetstream_JT270MH | |||
| KYD_IP-620 | |||
| KYD_NC-630A | |||
| Kenwood_HMK | Implied by Generic_CSV | 4-Dec-2022 | |
| Kenwood_ITM | |||
| Kenwood_TH-D7 | Yes | ||
| Kenwood_TH-D72_clone_mode | @kk7ds | 28-Nov-2022 | Yes |
| Kenwood_TH-D72_live_mode | @kk7ds | 21-Oct-2022 | Yes |
| Kenwood_TH-D74_clone_mode | @kk7ds | 30-Nov-2022 | Yes |
| Kenwood_TH-D74_live_mode | @kk7ds | 20-Oct-2022 | Yes |
| Kenwood_TH-D7G | Yes | ||
| Kenwood_TH-F6 | @KC9HI | 30-Nov-2022 | Yes |
| Kenwood_TH-F7 | @sv1 | 19-Oct-2022 | Yes |
| Kenwood_TH-G71 | Yes | ||
| Kenwood_TH-K2 | Yes | ||
| Kenwood_TK-2180 | @kk7ds | 4-Dec-2022 | Yes |
| Kenwood_TK-260 | |||
| Kenwood_TK-260G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TK-270 | |||
| Kenwood_TK-270G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TK-272 | |||
| Kenwood_TK-272G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TK-278 | |||
| Kenwood_TK-278G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TK-3180K | @kk7ds | 4-Dec-2022 | Yes |
| Kenwood_TK-3180K2 | Implied by Kenwood_TK-3180K | 4-Dec-2022 | Yes |
| Kenwood_TK-360 | |||
| Kenwood_TK-360G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TK-370 | |||
| Kenwood_TK-370G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TK-372 | |||
| Kenwood_TK-372G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TK-378 | |||
| Kenwood_TK-378G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TK-388G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TK-7102 | @kk7ds | 15-Feb-2019 | Yes |
| Kenwood_TK-7108 | @kk7ds | 15-Feb-2019 | Yes |
| Kenwood_TK-7180 | @kk7ds | 18-Oct-2022 | Yes |
| Kenwood_TK-7180E | Yes | ||
| Kenwood_TK-760 | |||
| Kenwood_TK-760G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TK-762 | |||
| Kenwood_TK-762G | @kk7ds | 5-Dec-2022 | Yes |
| Kenwood_TK-768 | |||
| Kenwood_TK-768G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TK-8102 | @kk7ds | 15-Feb-2019 | Yes |
| Kenwood_TK-8108 | @kk7ds | 15-Feb-2019 | Yes |
| Kenwood_TK-8180 | @kk7ds | 18-Oct-2022 | Yes |
| Kenwood_TK-8180E | Yes | ||
| Kenwood_TK-860 | |||
| Kenwood_TK-860G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TK-862 | |||
| Kenwood_TK-862G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TK-868 | |||
| Kenwood_TK-868G | Implied by Kenwood_TK-762G | 5-Dec-2022 | Yes |
| Kenwood_TM-271 | Implied by Kenwood_TM-281 | 23-Oct-2022 | Yes |
| Kenwood_TM-281 | @kk7ds | 23-Oct-2022 | Yes |
| Kenwood_TM-471 | Yes | ||
| Kenwood_TM-D700 | @kk7ds | 20-Oct-2022 | Yes |
| Kenwood_TM-D710 | Yes | ||
| Kenwood_TM-D710G | @kk7ds | 22-Oct-2022 | Yes |
| Kenwood_TM-D710G_CloneMode | @kk7ds | 22-Oct-2022 | Yes |
| Kenwood_TM-D710_CloneMode | Yes | ||
| Kenwood_TM-G707 | Yes | ||
| Kenwood_TM-V7 | Yes | ||
| Kenwood_TM-V71 | @kk7ds | 21-Oct-2022 | Yes |
| Kenwood_TS-2000 | Yes | ||
| Kenwood_TS-480_CloneMode | |||
| Kenwood_TS-480_LiveMode | Yes | ||
| Kenwood_TS-590SG_CloneMode | |||
| Kenwood_TS-590S_CloneMode | |||
| Kenwood_TS-590S_SG_LiveMode | Yes | ||
| Kenwood_TS-850 | Yes | ||
| LUITON_LT-316 | |||
| LUITON_LT-580_UHF | |||
| LUITON_LT-580_VHF | |||
| LUITON_LT-588UV | @KC9HI | 11-Nov-2022 | Yes |
| LUITON_LT-725UV | |||
| Lanchonlh_HG-UV98 | Yes | ||
| Leixen_VV-898 | |||
| Leixen_VV-898S | |||
| MTC_UV-5R-3 | |||
| Midland_DBR2500 | Implied by Retevis_RT95 | 13-Nov-2022 | Yes |
| Polmar_DB-50M | |||
| Powerwerx_DB-750X | |||
| Puxing_PX-2R | |||
| Puxing_PX-777 | |||
| Puxing_PX-888K | |||
| QYT_KT-8R | @KC9HI | 11-Nov-2022 | Yes |
| QYT_KT-UV980 | Implied by WACCOM_MINI-8900 | 11-Nov-2022 | Yes |
| QYT_KT-WP12 | Implied by Anysecu_WP-9900 | 11-Nov-2022 | Yes |
| QYT_KT5800 | Implied by BTECH_UV-25X2 | 11-Nov-2022 | Yes |
| QYT_KT7900D | Implied by BTECH_UV-25X4 | 11-Nov-2022 | Yes |
| QYT_KT8900 | Implied by LUITON_LT-588UV | 11-Nov-2022 | Yes |
| QYT_KT8900D | Implied by BTECH_UV-25X2 | 11-Nov-2022 | Yes |
| QYT_KT8900R | Implied by BTECH_UV-2501+220 | 11-Nov-2022 | Yes |
| QYT_KT980PLUS | Implied by BTECH_UV-25X2 | 11-Nov-2022 | Yes |
| Quansheng_TG-UV2+ | |||
| RT_Systems_CSV | |||
| Radioddity_DB25-G | @KC9HI | 11-Nov-2022 | Yes |
| Radioddity_GA-2S | @KC9HI | 4-Dec-2022 | Yes |
| Radioddity_GA-510 | @kk7ds | 21-Oct-2022 | Yes |
| Radioddity_R2 | |||
| Radioddity_UV-5G | @KC9HI | 18-Nov-2022 | Yes |
| Radioddity_UV-5RX3 | @KC9HI | 18-Nov-2022 | Yes |
| Radioddity_UV-82X3 | @KC9HI | 18-Nov-2022 | Yes |
| Radtel_T18 | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_H777_Plus | @KC9HI | 4-Dec-2022 | Yes |
| Retevis_RA685 | @KC9HI | 19-Nov-2022 | Yes |
| Retevis_RA85 | @KC9HI | 19-Nov-2022 | Yes |
| Retevis_RB15 | |||
| Retevis_RB17 | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RB17A | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RB17P | |||
| Retevis_RB17V | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RB18 | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RB19 | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RB19P | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RB23 | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RB26 | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RB27 | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RB27B | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RB27V | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RB615 | |||
| Retevis_RB617 | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RB618 | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RB619 | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RB627B | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RB75 | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RB85 | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RT1 | |||
| Retevis_RT16 | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RT19 | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RT21 | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RT22 | |||
| Retevis_RT22FRS | |||
| Retevis_RT22S | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RT23 | |||
| Retevis_RT26 | |||
| Retevis_RT29_UHF | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RT29_VHF | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RT40B | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RT47 | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RT47V | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RT6 | @KC9HI | 3-Dec-2022 | Yes |
| Retevis_RT619 | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RT622 | |||
| Retevis_RT647 | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RT668 | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RT68 | @KC9HI | 28-Nov-2022 | Yes |
| Retevis_RT76 | @KC9HI | 30-Nov-2022 | Yes |
| Retevis_RT76P | |||
| Retevis_RT85 | @KC9HI | 5-Dec-2022 | Yes |
| Retevis_RT87 | |||
| Retevis_RT9000D_136-174 | |||
| Retevis_RT9000D_220-260 | |||
| Retevis_RT9000D_400-490 | |||
| Retevis_RT9000D_66-88 | |||
| Retevis_RT95 | @KC9HI | 13-Nov-2022 | Yes |
| Retevis_RT95_VOX | Implied by Retevis_RT95 | 13-Nov-2022 | Yes |
| Retevis_RT98 | |||
| Rugged_RH5R-V2 | |||
| Sainsonic_AP510 | |||
| TDXone_TD-Q8A | |||
| TIDRADIO_TD-H6 | @kk7ds | 21-Oct-2022 | Yes |
| TID_TD-M8 | |||
| TYT_TH-350 | Yes | ||
| TYT_TH-7800 | |||
| TYT_TH-7800_File | |||
| TYT_TH-9800 | |||
| TYT_TH-9800_File | |||
| TYT_TH-UV3R | |||
| TYT_TH-UV3R-25 | |||
| TYT_TH-UV8000 | |||
| TYT_TH-UV88 | @KC9HI | 5-Dec-2022 | Yes |
| TYT_TH-UVF1 | |||
| TYT_TH-UVF8D | |||
| TYT_TH9000_144 | |||
| TYT_TH9000_220 | |||
| TYT_TH9000_440 | |||
| Vertex_Standard_FTL-1011 | |||
| Vertex_Standard_FTL-2011 | |||
| Vertex_Standard_FTL-7011 | |||
| Vertex_Standard_FTL-8011 | |||
| Vertex_Standard_VXA-700 | |||
| WACCOM_MINI-8900 | @KC9HI | 11-Nov-2022 | Yes |
| WLN_KD-C1 | |||
| Wouxun_KG-816 | |||
| Wouxun_KG-818 | |||
| Wouxun_KG-935G | |||
| Wouxun_KG-UV6 | |||
| Wouxun_KG-UV8D | |||
| Wouxun_KG-UV8D_Plus | |||
| Wouxun_KG-UV8E | |||
| Wouxun_KG-UV920P-A | |||
| Wouxun_KG-UV9D_Plus | |||
| Wouxun_KG-UVD1P | |||
| Yaesu_FT-1500M | @f3sty | 05-Dec-2022 | Yes |
| Yaesu_FT-1802M | Yes | ||
| Yaesu_FT-1D_R | Yes | ||
| Yaesu_FT-25R | Yes | ||
| Yaesu_FT-2800M | Yes | ||
| Yaesu_FT-2900R_1900R | Yes | ||
| Yaesu_FT-2900R_1900RTXMod_Opened_Xmit | Yes | ||
| Yaesu_FT-450D | Yes | ||
| Yaesu_FT-4VR | Yes | ||
| Yaesu_FT-4XE | Yes | ||
| Yaesu_FT-4XR | Yes | ||
| Yaesu_FT-50 | Yes | ||
| Yaesu_FT-60 | Yes | ||
| Yaesu_FT-65E | Yes | ||
| Yaesu_FT-65R | Yes | ||
| Yaesu_FT-70D | @n8sqt | 05-Dec-2022 | Yes |
| Yaesu_FT-7100M | Yes | ||
| Yaesu_FT-7800_7900 | @kk7ds | 24-Oct-2022 | Yes |
| Yaesu_FT-8100 | Yes | ||
| Yaesu_FT-817 | @kk7ds | 14-Feb-2019 | Yes |
| Yaesu_FT-817ND | Yes | ||
| Yaesu_FT-817ND_US | @kk7ds | 14-Feb-2019 | Yes |
| Yaesu_FT-818 | Implied by Yaesu_FT-817 | 14-Feb-2019 | Yes |
| Yaesu_FT-818ND_US | Implied by Yaesu_FT-817 | 14-Feb-2019 | Yes |
| Yaesu_FT-857_897 | Implied by Yaesu_FT-817 | 14-Feb-2019 | Yes |
| Yaesu_FT-857_897_US | Implied by Yaesu_FT-817 | 14-Feb-2019 | Yes |
| Yaesu_FT-8800 | @kk7ds | 24-Oct-2022 | Yes |
| Yaesu_FT-8900 | Implied by Yaesu_FT-8800 | 24-Oct-2022 | Yes |
| Yaesu_FT-90 | Yes | ||
| Yaesu_FT2D_R | Yes | ||
| Yaesu_FT2D_Rv2 | Yes | ||
| Yaesu_FT3D_R | Yes | ||
| Yaesu_FTM-3200D_R | Yes | ||
| Yaesu_FTM-350 | @kk7ds | 4-Dec-2022 | Yes |
| Yaesu_FTM-7250D_R | Yes | ||
| Yaesu_VX-170 | Yes | ||
| Yaesu_VX-2 | Yes | ||
| Yaesu_VX-3 | @kk7ds | 15-Feb-2019 | Yes |
| Yaesu_VX-5 | Yes | ||
| Yaesu_VX-6 | Yes | ||
| Yaesu_VX-7 | @kk7ds | 15-Feb-2019 | Yes |
| Yaesu_VX-8DR | @kk7ds | 15-Feb-2019 | Yes |
| Yaesu_VX-8GE | Implied by Yaesu_VX-8DR | 15-Feb-2019 | Yes |
| Yaesu_VX-8R | Implied by Yaesu_VX-8DR | 15-Feb-2019 | Yes |
| Yedro_YC-M04VUS | Implied by Retevis_RT95 | 13-Nov-2022 | Yes |
| Zastone_ZT-X6 |
Stats
Drivers: 355
Tested: 47% (167/188)
Byte clean: 63% (227/128)
Minimal test prodecure
For the purposes of the Python 3 effort, a "tested" radio means at least the following procedure was followed:
- Download from the radio
- Make some change to a memory
- If the radio has settings support, make sure settings load and tweak one setting
- Upload to the radio
- Confirm that the changes stick and look correct, or at least are not a regression from the master py2 branch.
The drivers are all passing the automated tests, but tests with real hardware and serial ports is important, especially around bytes-vs-string safety.
To update this document, add/edit entries in tests/py3_driver_testers.txt and
then run tox -e makesupported. Commit the result (including the changes to this .md
file) and submit a PR.