{
    "VERSION":1755650470,
    "COMMENT":"Do not edit this file directly it is generated.",
    "PRODUCTS":[
        { "manu":1, "prod":3592, "name":"Varia Rtl515" },
        { "manu":6, "prod":6, "name":"SRM PC6" },
        { "manu":6, "prod":7, "name":"SRM PC7" },
        { "manu":6, "prod":8, "name":"SRM PC8" },
        { "manu":6, "prod":-1, "name":"SRM Powercontrol" },
        { "manu":7, "prod":1, "name":"Quarq Cinqo" },
        { "manu":7, "prod":9479, "name":"Quarq DZERO" },
        { "manu":8, "prod":2054, "name":"iBike AeroPod" },
        { "manu":9, "prod":-1, "name":"Powertap" },
        { "manu":9, "prod":14, "name":"Joule 2.0" },
        { "manu":9, "prod":18, "name":"Joule" },
        { "manu":9, "prod":19, "name":"Joule GPS" },
        { "manu":9, "prod":22, "name":"Joule GPS+" },
        { "manu":9, "prod":272, "name":"Powertap C1" },
        { "manu":9, "prod":288, "name":"Powertap P1" },
        { "manu":9, "prod":4096, "name":"Powertap G3" },
        { "manu":9, "prod":4353, "name":"Powercal" },
        { "manu":15, "prod":6, "name":"HRM2A" },
        { "manu":29, "prod":1031, "name":"Power2max S" },
        { "manu":32, "prod":0, "name":"Wahoo fitness" },
        { "manu":32, "prod":28, "name":"Wahoo ELEMNT" },
        { "manu":32, "prod":31, "name":"Wahoo ELEMNT BOLT" },
        { "manu":32, "prod":41, "name":"Wahoo PowrLink" },
        { "manu":38, "prod":1, "name":"o_synce navi2coach" },
        { "manu":48, "prod":2, "name":"Pioneer SGX-CA500" },
        { "manu":54, "prod":1, "name":"IpBike" },
        { "manu":69, "prod":1, "name":"Stages Power Gen 1" },
        { "manu":69, "prod":2, "name":"Stages Power Gen 2" },
        { "manu":69, "prod":3, "name":"Stages Power Gen 3" },
        { "manu":70, "prod":15, "name":"SIGMA ROX 10.0" },
        { "manu":70, "prod":18, "name":"SIGMA ROX 7.0" },
        { "manu":70, "prod":41, "name":"SIGMA ROX 11.0" },
        { "manu":70, "prod":42, "name":"SIGMA iD.RUN" },
        { "manu":70, "prod":43, "name":"SIGMA iD.RUN HR" },
        { "manu":70, "prod":44, "name":"SIGMA ROX 12.0" },
        { "manu":70, "prod":45, "name":"SIGMA iD.FREE" },
        { "manu":70, "prod":46, "name":"SIGMA iD.TRI" },
        { "manu":70, "prod":47, "name":"SIGMA PURE GPS" },
        { "manu":70, "prod":49, "name":"SIGMA ROX 11.1" },
        { "manu":70, "prod":51, "name":"SIGMA ROX 2.0" },
        { "manu":70, "prod":52, "name":"SIGMA ROX 4.0" },
        { "manu":70, "prod":54, "name":"SIGMA ROX 12.1 EVO" },
        { "manu":70, "prod":69, "name":"SIGMA ROX 4.0 SE" },
        { "manu":76, "prod":-1, "name":"Moxy Monitor" },
        { "manu":83, "prod":3, "name":"Scosche Rythm+" },
        { "manu":89, "prod":2800, "name":"Tacx Neo" },
        { "manu":89, "prod":2850, "name":"Tacx Neo 2 Smart" },
        { "manu":95, "prod":-1, "name":"Stryd" },
        { "manu":98, "prod":-1, "name":"BSX" },
        { "manu":98, "prod":2, "name":"BSX Insight 2" },
        { "manu":106, "prod":5, "name":"Morpheus M7" },
        { "manu":107, "prod":-1, "name":"Magene" },
        { "manu":108, "prod":-1, "name":"Giant" },
        { "manu":108, "prod":21845, "name":"Giant Power Pro" },
        { "manu":115, "prod":-1, "name":"iGPSPORT" },
        { "manu":116, "prod":-1, "name":"Thinkrider" },
        { "manu":123, "prod":2, "name":"Polar H10" },
        { "manu":123, "prod":3, "name":"Polar H9" },
        { "manu":123, "prod":-1, "name":"Polar" },
        { "manu":132, "prod":-1, "name":"Cycplus" },
        { "manu":258, "prod":-1, "name":"Lezyne" },
        { "manu":258, "prod":4, "name":"Lezyne Super GPS" },
        { "manu":258, "prod":6, "name":"Lezyne Micro-GPS" },
        { "manu":258, "prod":11, "name":"Lezyne MegaXL" },
        { "manu":260, "prod":-1, "name":"Zwift" },
        { "manu":263, "prod":-1, "name":"Favero" },
        { "manu":263, "prod":12, "name":"Favero Assioma Duo" },
        { "manu":263, "prod":22, "name":"Favero Assioma Pro MX" },
        { "manu":267, "prod":-1, "name":"Bryton" },
        { "manu":268, "prod":-1, "name":"SRAM" },
        { "manu":268, "prod":1037, "name":"SRAM Rival eTap AXS" },
        { "manu":268, "prod":1052, "name":"SRAM Rival AXS" },
        { "manu":282, "prod":-1, "name":"The Sufferfest" },
        { "manu":284, "prod":-1, "name":"Rouvy" },
        { "manu":289, "prod":-1, "name":"Hammerhead" },
        { "manu":255, "prod":-1, "name":"Development" },
        { "manu":1, "prod":1, "name":"Hrm1" },
        { "manu":1, "prod":2, "name":"Axh01" },
        { "manu":1, "prod":3, "name":"Axb01" },
        { "manu":1, "prod":4, "name":"Axb02" },
        { "manu":1, "prod":5, "name":"Hrm2Ss" },
        { "manu":1, "prod":6, "name":"Dsi Alf02" },
        { "manu":1, "prod":7, "name":"Hrm3Ss" },
        { "manu":1, "prod":8, "name":"Hrm Run Single Byte Product Id" },
        { "manu":1, "prod":9, "name":"Bsm" },
        { "manu":1, "prod":10, "name":"Bcm" },
        { "manu":1, "prod":11, "name":"Axs01" },
        { "manu":1, "prod":12, "name":"Hrm Tri Single Byte Product Id" },
        { "manu":1, "prod":13, "name":"Hrm4 Run Single Byte Product Id" },
        { "manu":1, "prod":14, "name":"Fr225 Single Byte Product Id" },
        { "manu":1, "prod":15, "name":"Gen3 Bsm Single Byte Product Id" },
        { "manu":1, "prod":16, "name":"Gen3 Bcm Single Byte Product Id" },
        { "manu":1, "prod":22, "name":"Hrm Fit Single Byte Product Id" },
        { "manu":1, "prod":255, "name":"Ohr" },
        { "manu":1, "prod":473, "name":"Fr301 China" },
        { "manu":1, "prod":474, "name":"Fr301 Japan" },
        { "manu":1, "prod":475, "name":"Fr301 Korea" },
        { "manu":1, "prod":494, "name":"Fr301 Taiwan" },
        { "manu":1, "prod":717, "name":"Fr405" },
        { "manu":1, "prod":782, "name":"Fr50" },
        { "manu":1, "prod":987, "name":"Fr405 Japan" },
        { "manu":1, "prod":988, "name":"Fr60" },
        { "manu":1, "prod":1011, "name":"Dsi Alf01" },
        { "manu":1, "prod":1018, "name":"Fr310Xt" },
        { "manu":1, "prod":1036, "name":"Edge500" },
        { "manu":1, "prod":1124, "name":"Fr110" },
        { "manu":1, "prod":1169, "name":"Edge800" },
        { "manu":1, "prod":1199, "name":"Edge500 Taiwan" },
        { "manu":1, "prod":1213, "name":"Edge500 Japan" },
        { "manu":1, "prod":1253, "name":"Chirp" },
        { "manu":1, "prod":1274, "name":"Fr110 Japan" },
        { "manu":1, "prod":1325, "name":"Edge200" },
        { "manu":1, "prod":1328, "name":"Fr910Xt" },
        { "manu":1, "prod":1333, "name":"Edge800 Taiwan" },
        { "manu":1, "prod":1334, "name":"Edge800 Japan" },
        { "manu":1, "prod":1341, "name":"Alf04" },
        { "manu":1, "prod":1345, "name":"Fr610" },
        { "manu":1, "prod":1360, "name":"Fr210 Japan" },
        { "manu":1, "prod":1380, "name":"Vector Ss" },
        { "manu":1, "prod":1381, "name":"Vector Cp" },
        { "manu":1, "prod":1386, "name":"Edge800 China" },
        { "manu":1, "prod":1387, "name":"Edge500 China" },
        { "manu":1, "prod":1405, "name":"Approach G10" },
        { "manu":1, "prod":1410, "name":"Fr610 Japan" },
        { "manu":1, "prod":1422, "name":"Edge500 Korea" },
        { "manu":1, "prod":1436, "name":"Fr70" },
        { "manu":1, "prod":1446, "name":"Fr310Xt 4T" },
        { "manu":1, "prod":1461, "name":"Amx" },
        { "manu":1, "prod":1482, "name":"Fr10" },
        { "manu":1, "prod":1497, "name":"Edge800 Korea" },
        { "manu":1, "prod":1499, "name":"Swim" },
        { "manu":1, "prod":1537, "name":"Fr910Xt China" },
        { "manu":1, "prod":1551, "name":"Fenix" },
        { "manu":1, "prod":1555, "name":"Edge200 Taiwan" },
        { "manu":1, "prod":1561, "name":"Edge510" },
        { "manu":1, "prod":1567, "name":"Edge810" },
        { "manu":1, "prod":1570, "name":"Tempe" },
        { "manu":1, "prod":1600, "name":"Fr910Xt Japan" },
        { "manu":1, "prod":1623, "name":"Fr620" },
        { "manu":1, "prod":1632, "name":"Fr220" },
        { "manu":1, "prod":1664, "name":"Fr910Xt Korea" },
        { "manu":1, "prod":1688, "name":"Fr10 Japan" },
        { "manu":1, "prod":1721, "name":"Edge810 Japan" },
        { "manu":1, "prod":1735, "name":"Virb Elite" },
        { "manu":1, "prod":1736, "name":"Edge Touring" },
        { "manu":1, "prod":1742, "name":"Edge510 Japan" },
        { "manu":1, "prod":1743, "name":"Hrm Tri" },
        { "manu":1, "prod":1752, "name":"Hrm Run" },
        { "manu":1, "prod":1765, "name":"Fr920Xt" },
        { "manu":1, "prod":1821, "name":"Edge510 Asia" },
        { "manu":1, "prod":1822, "name":"Edge810 China" },
        { "manu":1, "prod":1823, "name":"Edge810 Taiwan" },
        { "manu":1, "prod":1836, "name":"Edge1000" },
        { "manu":1, "prod":1837, "name":"Vivo Fit" },
        { "manu":1, "prod":1853, "name":"Virb Remote" },
        { "manu":1, "prod":1885, "name":"Vivo Ki" },
        { "manu":1, "prod":1903, "name":"Fr15" },
        { "manu":1, "prod":1907, "name":"Vivo Active" },
        { "manu":1, "prod":1918, "name":"Edge510 Korea" },
        { "manu":1, "prod":1928, "name":"Fr620 Japan" },
        { "manu":1, "prod":1929, "name":"Fr620 China" },
        { "manu":1, "prod":1930, "name":"Fr220 Japan" },
        { "manu":1, "prod":1931, "name":"Fr220 China" },
        { "manu":1, "prod":1936, "name":"Approach S6" },
        { "manu":1, "prod":1956, "name":"Vivo Smart" },
        { "manu":1, "prod":1967, "name":"Fenix2" },
        { "manu":1, "prod":1988, "name":"Epix" },
        { "manu":1, "prod":2050, "name":"Fenix3" },
        { "manu":1, "prod":2052, "name":"Edge1000 Taiwan" },
        { "manu":1, "prod":2053, "name":"Edge1000 Japan" },
        { "manu":1, "prod":2061, "name":"Fr15 Japan" },
        { "manu":1, "prod":2067, "name":"Edge520" },
        { "manu":1, "prod":2070, "name":"Edge1000 China" },
        { "manu":1, "prod":2072, "name":"Fr620 Russia" },
        { "manu":1, "prod":2073, "name":"Fr220 Russia" },
        { "manu":1, "prod":2079, "name":"Vector S" },
        { "manu":1, "prod":2100, "name":"Edge1000 Korea" },
        { "manu":1, "prod":2130, "name":"Fr920Xt Taiwan" },
        { "manu":1, "prod":2131, "name":"Fr920Xt China" },
        { "manu":1, "prod":2132, "name":"Fr920Xt Japan" },
        { "manu":1, "prod":2134, "name":"Virbx" },
        { "manu":1, "prod":2135, "name":"Vivo Smart Apac" },
        { "manu":1, "prod":2140, "name":"Etrex Touch" },
        { "manu":1, "prod":2147, "name":"Edge25" },
        { "manu":1, "prod":2148, "name":"Fr25" },
        { "manu":1, "prod":2150, "name":"Vivo Fit2" },
        { "manu":1, "prod":2153, "name":"Fr225" },
        { "manu":1, "prod":2156, "name":"Fr630" },
        { "manu":1, "prod":2157, "name":"Fr230" },
        { "manu":1, "prod":2158, "name":"Fr735Xt" },
        { "manu":1, "prod":2160, "name":"Vivo Active Apac" },
        { "manu":1, "prod":2161, "name":"Vector 2" },
        { "manu":1, "prod":2162, "name":"Vector 2S" },
        { "manu":1, "prod":2172, "name":"Virbxe" },
        { "manu":1, "prod":2173, "name":"Fr620 Taiwan" },
        { "manu":1, "prod":2174, "name":"Fr220 Taiwan" },
        { "manu":1, "prod":2175, "name":"Truswing" },
        { "manu":1, "prod":2187, "name":"D2Airvenu" },
        { "manu":1, "prod":2188, "name":"Fenix3 China" },
        { "manu":1, "prod":2189, "name":"Fenix3 Twn" },
        { "manu":1, "prod":2192, "name":"Varia Headlight" },
        { "manu":1, "prod":2193, "name":"Varia Taillight Old" },
        { "manu":1, "prod":2204, "name":"Edge Explore 1000" },
        { "manu":1, "prod":2219, "name":"Fr225 Asia" },
        { "manu":1, "prod":2225, "name":"Varia Radar Taillight" },
        { "manu":1, "prod":2226, "name":"Varia Radar Display" },
        { "manu":1, "prod":2238, "name":"Edge20" },
        { "manu":1, "prod":2260, "name":"Edge520 Asia" },
        { "manu":1, "prod":2261, "name":"Edge520 Japan" },
        { "manu":1, "prod":2262, "name":"D2 Bravo" },
        { "manu":1, "prod":2266, "name":"Approach S20" },
        { "manu":1, "prod":2271, "name":"Vivo Smart2" },
        { "manu":1, "prod":2274, "name":"Edge1000 Thai" },
        { "manu":1, "prod":2276, "name":"Varia Remote" },
        { "manu":1, "prod":2288, "name":"Edge25 Asia" },
        { "manu":1, "prod":2289, "name":"Edge25 Jpn" },
        { "manu":1, "prod":2290, "name":"Edge20 Asia" },
        { "manu":1, "prod":2292, "name":"Approach X40" },
        { "manu":1, "prod":2293, "name":"Fenix3 Japan" },
        { "manu":1, "prod":2294, "name":"Vivo Smart Emea" },
        { "manu":1, "prod":2310, "name":"Fr630 Asia" },
        { "manu":1, "prod":2311, "name":"Fr630 Jpn" },
        { "manu":1, "prod":2313, "name":"Fr230 Jpn" },
        { "manu":1, "prod":2327, "name":"Hrm4 Run" },
        { "manu":1, "prod":2332, "name":"Epix Japan" },
        { "manu":1, "prod":2337, "name":"Vivo Active Hr" },
        { "manu":1, "prod":2347, "name":"Vivo Smart Gps Hr" },
        { "manu":1, "prod":2348, "name":"Vivo Smart Hr" },
        { "manu":1, "prod":2361, "name":"Vivo Smart Hr Asia" },
        { "manu":1, "prod":2362, "name":"Vivo Smart Gps Hr Asia" },
        { "manu":1, "prod":2368, "name":"Vivo Move" },
        { "manu":1, "prod":2379, "name":"Varia Taillight" },
        { "manu":1, "prod":2396, "name":"Fr235 Asia" },
        { "manu":1, "prod":2397, "name":"Fr235 Japan" },
        { "manu":1, "prod":2398, "name":"Varia Vision" },
        { "manu":1, "prod":2406, "name":"Vivo Fit3" },
        { "manu":1, "prod":2407, "name":"Fenix3 Korea" },
        { "manu":1, "prod":2408, "name":"Fenix3 Sea" },
        { "manu":1, "prod":2413, "name":"Fenix3 Hr" },
        { "manu":1, "prod":2417, "name":"Virb Ultra 30" },
        { "manu":1, "prod":2429, "name":"Index Smart Scale" },
        { "manu":1, "prod":2431, "name":"Fr235" },
        { "manu":1, "prod":2432, "name":"Fenix3 Chronos" },
        { "manu":1, "prod":2441, "name":"Oregon7Xx" },
        { "manu":1, "prod":2444, "name":"Rino7Xx" },
        { "manu":1, "prod":2457, "name":"Epix Korea" },
        { "manu":1, "prod":2473, "name":"Fenix3 Hr Chn" },
        { "manu":1, "prod":2474, "name":"Fenix3 Hr Twn" },
        { "manu":1, "prod":2475, "name":"Fenix3 Hr Jpn" },
        { "manu":1, "prod":2476, "name":"Fenix3 Hr Sea" },
        { "manu":1, "prod":2477, "name":"Fenix3 Hr Kor" },
        { "manu":1, "prod":2496, "name":"Nautix" },
        { "manu":1, "prod":2497, "name":"Vivo Active Hr Apac" },
        { "manu":1, "prod":2503, "name":"Fr35" },
        { "manu":1, "prod":2512, "name":"Oregon7Xx Ww" },
        { "manu":1, "prod":2530, "name":"Edge 820" },
        { "manu":1, "prod":2531, "name":"Edge Explore 820" },
        { "manu":1, "prod":2533, "name":"Fr735Xt Apac" },
        { "manu":1, "prod":2534, "name":"Fr735Xt Japan" },
        { "manu":1, "prod":2544, "name":"Fenix5S" },
        { "manu":1, "prod":2547, "name":"D2 Bravo Titanium" },
        { "manu":1, "prod":2567, "name":"Varia Ut800" },
        { "manu":1, "prod":2593, "name":"Running Dynamics Pod" },
        { "manu":1, "prod":2599, "name":"Edge 820 China" },
        { "manu":1, "prod":2600, "name":"Edge 820 Japan" },
        { "manu":1, "prod":2604, "name":"Fenix5X" },
        { "manu":1, "prod":2606, "name":"Vivo Fit Jr" },
        { "manu":1, "prod":2622, "name":"Vivo Smart3" },
        { "manu":1, "prod":2623, "name":"Vivo Sport" },
        { "manu":1, "prod":2628, "name":"Edge 820 Taiwan" },
        { "manu":1, "prod":2629, "name":"Edge 820 Korea" },
        { "manu":1, "prod":2630, "name":"Edge 820 Sea" },
        { "manu":1, "prod":2650, "name":"Fr35 Hebrew" },
        { "manu":1, "prod":2656, "name":"Approach S60" },
        { "manu":1, "prod":2667, "name":"Fr35 Apac" },
        { "manu":1, "prod":2668, "name":"Fr35 Japan" },
        { "manu":1, "prod":2675, "name":"Fenix3 Chronos Asia" },
        { "manu":1, "prod":2687, "name":"Virb 360" },
        { "manu":1, "prod":2691, "name":"Fr935" },
        { "manu":1, "prod":2697, "name":"Fenix5" },
        { "manu":1, "prod":2700, "name":"Vivoactive3" },
        { "manu":1, "prod":2733, "name":"Fr235 China Nfc" },
        { "manu":1, "prod":2769, "name":"Foretrex 601 701" },
        { "manu":1, "prod":2772, "name":"Vivo Move Hr" },
        { "manu":1, "prod":2713, "name":"Edge 1030" },
        { "manu":1, "prod":2727, "name":"Fr35 Sea" },
        { "manu":1, "prod":2787, "name":"Vector 3" },
        { "manu":1, "prod":2796, "name":"Fenix5 Asia" },
        { "manu":1, "prod":2797, "name":"Fenix5S Asia" },
        { "manu":1, "prod":2798, "name":"Fenix5X Asia" },
        { "manu":1, "prod":2806, "name":"Approach Z80" },
        { "manu":1, "prod":2814, "name":"Fr35 Korea" },
        { "manu":1, "prod":2819, "name":"D2Charlie" },
        { "manu":1, "prod":2831, "name":"Vivo Smart3 Apac" },
        { "manu":1, "prod":2832, "name":"Vivo Sport Apac" },
        { "manu":1, "prod":2833, "name":"Fr935 Asia" },
        { "manu":1, "prod":2859, "name":"Descent" },
        { "manu":1, "prod":2878, "name":"Vivo Fit4" },
        { "manu":1, "prod":2886, "name":"Fr645" },
        { "manu":1, "prod":2888, "name":"Fr645M" },
        { "manu":1, "prod":2891, "name":"Fr30" },
        { "manu":1, "prod":2900, "name":"Fenix5S Plus" },
        { "manu":1, "prod":2909, "name":"Edge 130" },
        { "manu":1, "prod":2924, "name":"Edge 1030 Asia" },
        { "manu":1, "prod":2927, "name":"Vivosmart 4" },
        { "manu":1, "prod":2945, "name":"Vivo Move Hr Asia" },
        { "manu":1, "prod":2962, "name":"Approach X10" },
        { "manu":1, "prod":2977, "name":"Fr30 Asia" },
        { "manu":1, "prod":2988, "name":"Vivoactive3M W" },
        { "manu":1, "prod":3003, "name":"Fr645 Asia" },
        { "manu":1, "prod":3004, "name":"Fr645M Asia" },
        { "manu":1, "prod":3011, "name":"Edge Explore" },
        { "manu":1, "prod":3028, "name":"Gpsmap66" },
        { "manu":1, "prod":3049, "name":"Approach S10" },
        { "manu":1, "prod":3066, "name":"Vivoactive3M L" },
        { "manu":1, "prod":3076, "name":"Fr245" },
        { "manu":1, "prod":3077, "name":"Fr245 Music" },
        { "manu":1, "prod":3085, "name":"Approach G80" },
        { "manu":1, "prod":3092, "name":"Edge 130 Asia" },
        { "manu":1, "prod":3095, "name":"Edge 1030 Bontrager" },
        { "manu":1, "prod":3110, "name":"Fenix5 Plus" },
        { "manu":1, "prod":3111, "name":"Fenix5X Plus" },
        { "manu":1, "prod":3112, "name":"Edge 520 Plus" },
        { "manu":1, "prod":3113, "name":"Fr945" },
        { "manu":1, "prod":3121, "name":"Edge 530" },
        { "manu":1, "prod":3122, "name":"Edge 830" },
        { "manu":1, "prod":3126, "name":"Instinct Esports" },
        { "manu":1, "prod":3134, "name":"Fenix5S Plus Apac" },
        { "manu":1, "prod":3135, "name":"Fenix5X Plus Apac" },
        { "manu":1, "prod":3142, "name":"Edge 520 Plus Apac" },
        { "manu":1, "prod":3143, "name":"Descent T1" },
        { "manu":1, "prod":3144, "name":"Fr235L Asia" },
        { "manu":1, "prod":3145, "name":"Fr245 Asia" },
        { "manu":1, "prod":3163, "name":"Vivo Active3M Apac" },
        { "manu":1, "prod":3192, "name":"Gen3 Bsm" },
        { "manu":1, "prod":3193, "name":"Gen3 Bcm" },
        { "manu":1, "prod":3218, "name":"Vivo Smart4 Asia" },
        { "manu":1, "prod":3224, "name":"Vivoactive4 Small" },
        { "manu":1, "prod":3225, "name":"Vivoactive4 Large" },
        { "manu":1, "prod":3226, "name":"Venu" },
        { "manu":1, "prod":3246, "name":"Marq Driver" },
        { "manu":1, "prod":3247, "name":"Marq Aviator" },
        { "manu":1, "prod":3248, "name":"Marq Captain" },
        { "manu":1, "prod":3249, "name":"Marq Commander" },
        { "manu":1, "prod":3250, "name":"Marq Expedition" },
        { "manu":1, "prod":3251, "name":"Marq Athlete" },
        { "manu":1, "prod":3258, "name":"Descent Mk2" },
        { "manu":1, "prod":3282, "name":"Fr45" },
        { "manu":1, "prod":3284, "name":"Gpsmap66I" },
        { "manu":1, "prod":3287, "name":"Fenix6S Sport" },
        { "manu":1, "prod":3288, "name":"Fenix6S" },
        { "manu":1, "prod":3289, "name":"Fenix6 Sport" },
        { "manu":1, "prod":3290, "name":"Fenix6" },
        { "manu":1, "prod":3291, "name":"Fenix6X" },
        { "manu":1, "prod":3299, "name":"Hrm Dual" },
        { "manu":1, "prod":3300, "name":"Hrm Pro" },
        { "manu":1, "prod":3308, "name":"Vivo Move3 Premium" },
        { "manu":1, "prod":3314, "name":"Approach S40" },
        { "manu":1, "prod":3321, "name":"Fr245M Asia" },
        { "manu":1, "prod":3349, "name":"Edge 530 Apac" },
        { "manu":1, "prod":3350, "name":"Edge 830 Apac" },
        { "manu":1, "prod":3378, "name":"Vivo Move3" },
        { "manu":1, "prod":3387, "name":"Vivo Active4 Small Asia" },
        { "manu":1, "prod":3388, "name":"Vivo Active4 Large Asia" },
        { "manu":1, "prod":3389, "name":"Vivo Active4 Oled Asia" },
        { "manu":1, "prod":3405, "name":"Swim2" },
        { "manu":1, "prod":3420, "name":"Marq Driver Asia" },
        { "manu":1, "prod":3421, "name":"Marq Aviator Asia" },
        { "manu":1, "prod":3422, "name":"Vivo Move3 Asia" },
        { "manu":1, "prod":3441, "name":"Fr945 Asia" },
        { "manu":1, "prod":3446, "name":"Vivo Active3T Chn" },
        { "manu":1, "prod":3448, "name":"Marq Captain Asia" },
        { "manu":1, "prod":3449, "name":"Marq Commander Asia" },
        { "manu":1, "prod":3450, "name":"Marq Expedition Asia" },
        { "manu":1, "prod":3451, "name":"Marq Athlete Asia" },
        { "manu":1, "prod":3461, "name":"Index Smart Scale 2" },
        { "manu":1, "prod":3466, "name":"Instinct Solar" },
        { "manu":1, "prod":3469, "name":"Fr45 Asia" },
        { "manu":1, "prod":3473, "name":"Vivoactive3 Daimler" },
        { "manu":1, "prod":3498, "name":"Legacy Rey" },
        { "manu":1, "prod":3499, "name":"Legacy Darth Vader" },
        { "manu":1, "prod":3500, "name":"Legacy Captain Marvel" },
        { "manu":1, "prod":3501, "name":"Legacy First Avenger" },
        { "manu":1, "prod":3512, "name":"Fenix6S Sport Asia" },
        { "manu":1, "prod":3513, "name":"Fenix6S Asia" },
        { "manu":1, "prod":3514, "name":"Fenix6 Sport Asia" },
        { "manu":1, "prod":3515, "name":"Fenix6 Asia" },
        { "manu":1, "prod":3516, "name":"Fenix6X Asia" },
        { "manu":1, "prod":3535, "name":"Legacy Captain Marvel Asia" },
        { "manu":1, "prod":3536, "name":"Legacy First Avenger Asia" },
        { "manu":1, "prod":3537, "name":"Legacy Rey Asia" },
        { "manu":1, "prod":3538, "name":"Legacy Darth Vader Asia" },
        { "manu":1, "prod":3542, "name":"Descent Mk2S" },
        { "manu":1, "prod":3558, "name":"Edge 130 Plus" },
        { "manu":1, "prod":3570, "name":"Edge 1030 Plus" },
        { "manu":1, "prod":3578, "name":"Rally 200" },
        { "manu":1, "prod":3589, "name":"Fr745" },
        { "manu":1, "prod":3596, "name":"Venusq Music" },
        { "manu":1, "prod":3599, "name":"Venusq Music V2" },
        { "manu":1, "prod":3600, "name":"Venusq" },
        { "manu":1, "prod":3615, "name":"Lily" },
        { "manu":1, "prod":3624, "name":"Marq Adventurer" },
        { "manu":1, "prod":3638, "name":"Enduro" },
        { "manu":1, "prod":3639, "name":"Swim2 Apac" },
        { "manu":1, "prod":3648, "name":"Marq Adventurer Asia" },
        { "manu":1, "prod":3652, "name":"Fr945 Lte" },
        { "manu":1, "prod":3702, "name":"Descent Mk2 Asia" },
        { "manu":1, "prod":3703, "name":"Venu2" },
        { "manu":1, "prod":3704, "name":"Venu2S" },
        { "manu":1, "prod":3737, "name":"Venu Daimler Asia" },
        { "manu":1, "prod":3739, "name":"Marq Golfer" },
        { "manu":1, "prod":3740, "name":"Venu Daimler" },
        { "manu":1, "prod":3794, "name":"Fr745 Asia" },
        { "manu":1, "prod":3808, "name":"Varia Rct715" },
        { "manu":1, "prod":3809, "name":"Lily Asia" },
        { "manu":1, "prod":3812, "name":"Edge 1030 Plus Asia" },
        { "manu":1, "prod":3813, "name":"Edge 130 Plus Asia" },
        { "manu":1, "prod":3823, "name":"Approach S12" },
        { "manu":1, "prod":3872, "name":"Enduro Asia" },
        { "manu":1, "prod":3837, "name":"Venusq Asia" },
        { "manu":1, "prod":3843, "name":"Edge 1040" },
        { "manu":1, "prod":3850, "name":"Marq Golfer Asia" },
        { "manu":1, "prod":3851, "name":"Venu2 Plus" },
        { "manu":1, "prod":3865, "name":"Gnss" },
        { "manu":1, "prod":3869, "name":"Fr55" },
        { "manu":1, "prod":3888, "name":"Instinct 2" },
        { "manu":1, "prod":3889, "name":"Instinct 2S" },
        { "manu":1, "prod":3905, "name":"Fenix7S" },
        { "manu":1, "prod":3906, "name":"Fenix7" },
        { "manu":1, "prod":3907, "name":"Fenix7X" },
        { "manu":1, "prod":3908, "name":"Fenix7S Apac" },
        { "manu":1, "prod":3909, "name":"Fenix7 Apac" },
        { "manu":1, "prod":3910, "name":"Fenix7X Apac" },
        { "manu":1, "prod":3927, "name":"Approach G12" },
        { "manu":1, "prod":3930, "name":"Descent Mk2S Asia" },
        { "manu":1, "prod":3934, "name":"Approach S42" },
        { "manu":1, "prod":3943, "name":"Epix Gen2" },
        { "manu":1, "prod":3944, "name":"Epix Gen2 Apac" },
        { "manu":1, "prod":3949, "name":"Venu2S Asia" },
        { "manu":1, "prod":3950, "name":"Venu2 Asia" },
        { "manu":1, "prod":3978, "name":"Fr945 Lte Asia" },
        { "manu":1, "prod":3982, "name":"Vivo Move Sport" },
        { "manu":1, "prod":3983, "name":"Vivomove Trend" },
        { "manu":1, "prod":3986, "name":"Approach S12 Asia" },
        { "manu":1, "prod":3990, "name":"Fr255 Music" },
        { "manu":1, "prod":3991, "name":"Fr255 Small Music" },
        { "manu":1, "prod":3992, "name":"Fr255" },
        { "manu":1, "prod":3993, "name":"Fr255 Small" },
        { "manu":1, "prod":4001, "name":"Approach G12 Asia" },
        { "manu":1, "prod":4002, "name":"Approach S42 Asia" },
        { "manu":1, "prod":4005, "name":"Descent G1" },
        { "manu":1, "prod":4017, "name":"Venu2 Plus Asia" },
        { "manu":1, "prod":4024, "name":"Fr955" },
        { "manu":1, "prod":4033, "name":"Fr55 Asia" },
        { "manu":1, "prod":4061, "name":"Edge 540" },
        { "manu":1, "prod":4062, "name":"Edge 840" },
        { "manu":1, "prod":4063, "name":"Vivosmart 5" },
        { "manu":1, "prod":4071, "name":"Instinct 2 Asia" },
        { "manu":1, "prod":4105, "name":"Marq Gen2" },
        { "manu":1, "prod":4115, "name":"Venusq2" },
        { "manu":1, "prod":4116, "name":"Venusq2Music" },
        { "manu":1, "prod":4124, "name":"Marq Gen2 Aviator" },
        { "manu":1, "prod":4125, "name":"D2 Air X10" },
        { "manu":1, "prod":4130, "name":"Hrm Pro Plus" },
        { "manu":1, "prod":4132, "name":"Descent G1 Asia" },
        { "manu":1, "prod":4135, "name":"Tactix7" },
        { "manu":1, "prod":4155, "name":"Instinct Crossover" },
        { "manu":1, "prod":4169, "name":"Edge Explore2" },
        { "manu":1, "prod":4222, "name":"Descent Mk3" },
        { "manu":1, "prod":4223, "name":"Descent Mk3I" },
        { "manu":1, "prod":4233, "name":"Approach S70" },
        { "manu":1, "prod":4257, "name":"Fr265 Large" },
        { "manu":1, "prod":4258, "name":"Fr265 Small" },
        { "manu":1, "prod":4260, "name":"Venu3" },
        { "manu":1, "prod":4261, "name":"Venu3S" },
        { "manu":1, "prod":4265, "name":"Tacx Neo Smart" },
        { "manu":1, "prod":4266, "name":"Tacx Neo2 Smart" },
        { "manu":1, "prod":4267, "name":"Tacx Neo2 T Smart" },
        { "manu":1, "prod":4268, "name":"Tacx Neo Smart Bike" },
        { "manu":1, "prod":4269, "name":"Tacx Satori Smart" },
        { "manu":1, "prod":4270, "name":"Tacx Flow Smart" },
        { "manu":1, "prod":4271, "name":"Tacx Vortex Smart" },
        { "manu":1, "prod":4272, "name":"Tacx Bushido Smart" },
        { "manu":1, "prod":4273, "name":"Tacx Genius Smart" },
        { "manu":1, "prod":4274, "name":"Tacx Flux Flux S Smart" },
        { "manu":1, "prod":4275, "name":"Tacx Flux2 Smart" },
        { "manu":1, "prod":4276, "name":"Tacx Magnum" },
        { "manu":1, "prod":4305, "name":"Edge 1040 Asia" },
        { "manu":1, "prod":4312, "name":"Epix Gen2 Pro 42" },
        { "manu":1, "prod":4313, "name":"Epix Gen2 Pro 47" },
        { "manu":1, "prod":4314, "name":"Epix Gen2 Pro 51" },
        { "manu":1, "prod":4315, "name":"Fr965" },
        { "manu":1, "prod":4341, "name":"Enduro2" },
        { "manu":1, "prod":4374, "name":"Fenix7S Pro Solar" },
        { "manu":1, "prod":4375, "name":"Fenix7 Pro Solar" },
        { "manu":1, "prod":4376, "name":"Fenix7X Pro Solar" },
        { "manu":1, "prod":4380, "name":"Lily2" },
        { "manu":1, "prod":4394, "name":"Instinct 2X" },
        { "manu":1, "prod":4426, "name":"Vivoactive5" },
        { "manu":1, "prod":4432, "name":"Fr165" },
        { "manu":1, "prod":4433, "name":"Fr165 Music" },
        { "manu":1, "prod":4440, "name":"Edge 1050" },
        { "manu":1, "prod":4442, "name":"Descent T2" },
        { "manu":1, "prod":4446, "name":"Hrm Fit" },
        { "manu":1, "prod":4472, "name":"Marq Gen2 Commander" },
        { "manu":1, "prod":4477, "name":"Lily Athlete" },
        { "manu":1, "prod":4532, "name":"Fenix8 Solar" },
        { "manu":1, "prod":4533, "name":"Fenix8 Solar Large" },
        { "manu":1, "prod":4534, "name":"Fenix8 Small" },
        { "manu":1, "prod":4536, "name":"Fenix8" },
        { "manu":1, "prod":4556, "name":"D2 Mach1 Pro" },
        { "manu":1, "prod":4575, "name":"Enduro3" },
        { "manu":1, "prod":4583, "name":"Instincte 40Mm" },
        { "manu":1, "prod":4584, "name":"Instincte 45Mm" },
        { "manu":1, "prod":4585, "name":"Instinct3 Solar 45Mm" },
        { "manu":1, "prod":4586, "name":"Instinct3 Amoled 45Mm" },
        { "manu":1, "prod":4587, "name":"Instinct3 Amoled 50Mm" },
        { "manu":1, "prod":4588, "name":"Descent G2" },
        { "manu":1, "prod":4606, "name":"Hrm 200" },
        { "manu":1, "prod":4625, "name":"Vivoactive6" },
        { "manu":1, "prod":4647, "name":"Approachs44" },
        { "manu":1, "prod":4656, "name":"Approachs50" },
        { "manu":1, "prod":4666, "name":"Fenix E" },
        { "manu":1, "prod":4759, "name":"Instinct3 Solar 50Mm" },
        { "manu":1, "prod":4775, "name":"Tactix8 Amoled" },
        { "manu":1, "prod":4776, "name":"Tactix8 Solar" },
        { "manu":1, "prod":10007, "name":"Sdm4" },
        { "manu":1, "prod":10014, "name":"Edge Remote" },
        { "manu":1, "prod":20533, "name":"Tacx Training App Win" },
        { "manu":1, "prod":20534, "name":"Tacx Training App Mac" },
        { "manu":1, "prod":20565, "name":"Tacx Training App Mac Catalyst" },
        { "manu":1, "prod":20119, "name":"Training Center" },
        { "manu":1, "prod":30045, "name":"Tacx Training App Android" },
        { "manu":1, "prod":30046, "name":"Tacx Training App Ios" },
        { "manu":1, "prod":30047, "name":"Tacx Training App Legacy" },
        { "manu":1, "prod":65531, "name":"Connectiq Simulator" },
        { "manu":1, "prod":65532, "name":"Android Antplus Plugin" },
        { "manu":1, "prod":65534, "name":"Connect" }
    ],

    "MANUFACTURERS":[
        { "manu":1, "name":"Garmin" },
        { "manu":2, "name":"Garmin Fr405 Antfs" },
        { "manu":3, "name":"Zephyr" },
        { "manu":4, "name":"Dayton" },
        { "manu":5, "name":"Idt" },
        { "manu":6, "name":"Srm" },
        { "manu":7, "name":"Quarq" },
        { "manu":8, "name":"Ibike" },
        { "manu":9, "name":"Saris" },
        { "manu":10, "name":"Spark Hk" },
        { "manu":11, "name":"Tanita" },
        { "manu":12, "name":"Echowell" },
        { "manu":13, "name":"Dynastream Oem" },
        { "manu":14, "name":"Nautilus" },
        { "manu":15, "name":"Dynastream" },
        { "manu":16, "name":"Timex" },
        { "manu":17, "name":"Metrigear" },
        { "manu":18, "name":"Xelic" },
        { "manu":19, "name":"Beurer" },
        { "manu":20, "name":"Cardiosport" },
        { "manu":21, "name":"A And D" },
        { "manu":22, "name":"Hmm" },
        { "manu":23, "name":"Suunto" },
        { "manu":24, "name":"Thita Elektronik" },
        { "manu":25, "name":"Gpulse" },
        { "manu":26, "name":"Clean Mobile" },
        { "manu":27, "name":"Pedal Brain" },
        { "manu":28, "name":"Peaksware" },
        { "manu":29, "name":"Saxonar" },
        { "manu":30, "name":"Lemond Fitness" },
        { "manu":31, "name":"Dexcom" },
        { "manu":32, "name":"Wahoo Fitness" },
        { "manu":33, "name":"Octane Fitness" },
        { "manu":34, "name":"Archinoetics" },
        { "manu":35, "name":"The Hurt Box" },
        { "manu":36, "name":"Citizen Systems" },
        { "manu":37, "name":"Magellan" },
        { "manu":38, "name":"Osynce" },
        { "manu":39, "name":"Holux" },
        { "manu":40, "name":"Concept2" },
        { "manu":41, "name":"Shimano" },
        { "manu":42, "name":"One Giant Leap" },
        { "manu":43, "name":"Ace Sensor" },
        { "manu":44, "name":"Brim Brothers" },
        { "manu":45, "name":"Xplova" },
        { "manu":46, "name":"Perception Digital" },
        { "manu":47, "name":"Bf1Systems" },
        { "manu":48, "name":"Pioneer" },
        { "manu":49, "name":"Spantec" },
        { "manu":50, "name":"Metalogics" },
        { "manu":51, "name":"4Iiiis" },
        { "manu":52, "name":"Seiko Epson" },
        { "manu":53, "name":"Seiko Epson Oem" },
        { "manu":54, "name":"Ifor Powell" },
        { "manu":55, "name":"Maxwell Guider" },
        { "manu":56, "name":"Star Trac" },
        { "manu":57, "name":"Breakaway" },
        { "manu":58, "name":"Alatech Technology Ltd" },
        { "manu":59, "name":"Mio Technology Europe" },
        { "manu":60, "name":"Rotor" },
        { "manu":61, "name":"Geonaute" },
        { "manu":62, "name":"Id Bike" },
        { "manu":63, "name":"Specialized" },
        { "manu":64, "name":"Wtek" },
        { "manu":65, "name":"Physical Enterprises" },
        { "manu":66, "name":"North Pole Engineering" },
        { "manu":67, "name":"Bkool" },
        { "manu":68, "name":"Cateye" },
        { "manu":69, "name":"Stages Cycling" },
        { "manu":70, "name":"Sigmasport" },
        { "manu":71, "name":"Tomtom" },
        { "manu":72, "name":"Peripedal" },
        { "manu":73, "name":"Wattbike" },
        { "manu":76, "name":"Moxy" },
        { "manu":77, "name":"Ciclosport" },
        { "manu":78, "name":"Powerbahn" },
        { "manu":79, "name":"Acorn Projects Aps" },
        { "manu":80, "name":"Lifebeam" },
        { "manu":81, "name":"Bontrager" },
        { "manu":82, "name":"Wellgo" },
        { "manu":83, "name":"Scosche" },
        { "manu":84, "name":"Magura" },
        { "manu":85, "name":"Woodway" },
        { "manu":86, "name":"Elite" },
        { "manu":87, "name":"Nielsen Kellerman" },
        { "manu":88, "name":"Dk City" },
        { "manu":89, "name":"Tacx" },
        { "manu":90, "name":"Direction Technology" },
        { "manu":91, "name":"Magtonic" },
        { "manu":92, "name":"1Partcarbon" },
        { "manu":93, "name":"Inside Ride Technologies" },
        { "manu":94, "name":"Sound Of Motion" },
        { "manu":95, "name":"Stryd" },
        { "manu":96, "name":"Icg" },
        { "manu":97, "name":"Mipulse" },
        { "manu":98, "name":"Bsx Athletics" },
        { "manu":99, "name":"Look" },
        { "manu":100, "name":"Campagnolo Srl" },
        { "manu":101, "name":"Body Bike Smart" },
        { "manu":102, "name":"Praxisworks" },
        { "manu":103, "name":"Limits Technology" },
        { "manu":104, "name":"Topaction Technology" },
        { "manu":105, "name":"Cosinuss" },
        { "manu":106, "name":"Fitcare" },
        { "manu":107, "name":"Magene" },
        { "manu":108, "name":"Giant Manufacturing Co" },
        { "manu":109, "name":"Tigrasport" },
        { "manu":110, "name":"Salutron" },
        { "manu":111, "name":"Technogym" },
        { "manu":112, "name":"Bryton Sensors" },
        { "manu":113, "name":"Latitude Limited" },
        { "manu":114, "name":"Soaring Technology" },
        { "manu":115, "name":"Igpsport" },
        { "manu":116, "name":"Thinkrider" },
        { "manu":117, "name":"Gopher Sport" },
        { "manu":118, "name":"Waterrower" },
        { "manu":119, "name":"Orangetheory" },
        { "manu":120, "name":"Inpeak" },
        { "manu":121, "name":"Kinetic" },
        { "manu":122, "name":"Johnson Health Tech" },
        { "manu":123, "name":"Polar Electro" },
        { "manu":124, "name":"Seesense" },
        { "manu":125, "name":"Nci Technology" },
        { "manu":126, "name":"Iqsquare" },
        { "manu":127, "name":"Leomo" },
        { "manu":128, "name":"Ifit Com" },
        { "manu":129, "name":"Coros Byte" },
        { "manu":130, "name":"Versa Design" },
        { "manu":131, "name":"Chileaf" },
        { "manu":132, "name":"Cycplus" },
        { "manu":133, "name":"Gravaa Byte" },
        { "manu":134, "name":"Sigeyi" },
        { "manu":135, "name":"Coospo" },
        { "manu":136, "name":"Geoid" },
        { "manu":137, "name":"Bosch" },
        { "manu":138, "name":"Kyto" },
        { "manu":139, "name":"Kinetic Sports" },
        { "manu":140, "name":"Decathlon Byte" },
        { "manu":141, "name":"Tq Systems" },
        { "manu":142, "name":"Tag Heuer" },
        { "manu":143, "name":"Keiser Fitness" },
        { "manu":144, "name":"Zwift Byte" },
        { "manu":145, "name":"Porsche Ep" },
        { "manu":146, "name":"Blackbird" },
        { "manu":147, "name":"Meilan Byte" },
        { "manu":148, "name":"Ezon" },
        { "manu":149, "name":"Laisi" },
        { "manu":150, "name":"Myzone" },
        { "manu":151, "name":"Abawo" },
        { "manu":152, "name":"Bafang" },
        { "manu":153, "name":"Luhong Technology" },
        { "manu":255, "name":"Development" },
        { "manu":257, "name":"Healthandlife" },
        { "manu":258, "name":"Lezyne" },
        { "manu":259, "name":"Scribe Labs" },
        { "manu":260, "name":"Zwift" },
        { "manu":261, "name":"Watteam" },
        { "manu":262, "name":"Recon" },
        { "manu":263, "name":"Favero Electronics" },
        { "manu":264, "name":"Dynovelo" },
        { "manu":265, "name":"Strava" },
        { "manu":266, "name":"Precor" },
        { "manu":267, "name":"Bryton" },
        { "manu":268, "name":"Sram" },
        { "manu":269, "name":"Navman" },
        { "manu":270, "name":"Cobi" },
        { "manu":271, "name":"Spivi" },
        { "manu":272, "name":"Mio Magellan" },
        { "manu":273, "name":"Evesports" },
        { "manu":274, "name":"Sensitivus Gauge" },
        { "manu":275, "name":"Podoon" },
        { "manu":276, "name":"Life Time Fitness" },
        { "manu":277, "name":"Falco E Motors" },
        { "manu":278, "name":"Minoura" },
        { "manu":279, "name":"Cycliq" },
        { "manu":280, "name":"Luxottica" },
        { "manu":281, "name":"Trainer Road" },
        { "manu":282, "name":"The Sufferfest" },
        { "manu":283, "name":"Fullspeedahead" },
        { "manu":284, "name":"Virtualtraining" },
        { "manu":285, "name":"Feedbacksports" },
        { "manu":286, "name":"Omata" },
        { "manu":287, "name":"Vdo" },
        { "manu":288, "name":"Magneticdays" },
        { "manu":289, "name":"Hammerhead" },
        { "manu":290, "name":"Kinetic By Kurt" },
        { "manu":291, "name":"Shapelog" },
        { "manu":292, "name":"Dabuziduo" },
        { "manu":293, "name":"Jetblack" },
        { "manu":294, "name":"Coros" },
        { "manu":295, "name":"Virtugo" },
        { "manu":296, "name":"Velosense" },
        { "manu":297, "name":"Cycligentinc" },
        { "manu":298, "name":"Trailforks" },
        { "manu":299, "name":"Mahle Ebikemotion" },
        { "manu":300, "name":"Nurvv" },
        { "manu":301, "name":"Microprogram" },
        { "manu":302, "name":"Zone5Cloud" },
        { "manu":303, "name":"Greenteg" },
        { "manu":304, "name":"Yamaha Motors" },
        { "manu":305, "name":"Whoop" },
        { "manu":306, "name":"Gravaa" },
        { "manu":307, "name":"Onelap" },
        { "manu":308, "name":"Monark Exercise" },
        { "manu":309, "name":"Form" },
        { "manu":310, "name":"Decathlon" },
        { "manu":311, "name":"Syncros" },
        { "manu":312, "name":"Heatup" },
        { "manu":313, "name":"Cannondale" },
        { "manu":314, "name":"True Fitness" },
        { "manu":315, "name":"Rgt Cycling" },
        { "manu":316, "name":"Vasa" },
        { "manu":317, "name":"Race Republic" },
        { "manu":318, "name":"Fazua" },
        { "manu":319, "name":"Oreka Training" },
        { "manu":320, "name":"Lsec" },
        { "manu":321, "name":"Lululemon Studio" },
        { "manu":322, "name":"Shanyue" },
        { "manu":323, "name":"Spinning Mda" },
        { "manu":324, "name":"Hilldating" },
        { "manu":325, "name":"Aero Sensor" },
        { "manu":326, "name":"Nike" },
        { "manu":327, "name":"Magicshine" },
        { "manu":328, "name":"Ictrainer" },
        { "manu":329, "name":"Absolute Cycling" },
        { "manu":330, "name":"Eo Swimbetter" },
        { "manu":331, "name":"Mywhoosh" },
        { "manu":332, "name":"Ravemen" },
        { "manu":333, "name":"Tektro Racing Products" },
        { "manu":334, "name":"Darad Innovation Corporation" },
        { "manu":335, "name":"Cycloptim" },
        { "manu":5759, "name":"Actigraphcorp" }
    ],

"FIELDS":[

    { "message":"file_id","num":2,"name":"product","type":"uint16" },
    { "message":"file_id","num":3,"name":"serial_number","type":"uint32z" },
    { "message":"file_id","num":4,"name":"time_created","type":"date_time" },
    { "message":"file_id","num":5,"name":"number","type":"uint16" },
    { "message":"file_id","num":8,"name":"product_name","type":"string" },
    { "message":"file_creator","num":0,"name":"software_version","type":"uint16" },
    { "message":"file_creator","num":1,"name":"hardware_version","type":"uint8" },
    { "message":"timestamp_correlation","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"timestamp_correlation","num":0,"name":"fractional_timestamp","type":"uint16","scale":32768,"units":"s" },
    { "message":"timestamp_correlation","num":1,"name":"system_timestamp","type":"date_time","units":"s" },
    { "message":"timestamp_correlation","num":2,"name":"fractional_system_timestamp","type":"uint16","scale":32768,"units":"s" },
    { "message":"timestamp_correlation","num":3,"name":"local_timestamp","type":"local_date_time","units":"s" },
    { "message":"timestamp_correlation","num":4,"name":"timestamp_ms","type":"uint16","units":"ms" },
    { "message":"timestamp_correlation","num":5,"name":"system_timestamp_ms","type":"uint16","units":"ms" },
    { "message":"software","num":254,"name":"message_index","type":"message_index" },
    { "message":"software","num":3,"name":"version","type":"uint16","scale":100 },
    { "message":"software","num":5,"name":"part_number","type":"string" },
    { "message":"slave_device","num":1,"name":"product","type":"uint16" },
    { "message":"capabilities","num":0,"name":"languages","type":"uint8z","array":"[N]" },
    { "message":"capabilities","num":1,"name":"sports","type":"sport_bits_0","array":"[N]" },
    { "message":"capabilities","num":21,"name":"workouts_supported","type":"workout_capabilities" },
    { "message":"capabilities","num":23,"name":"connectivity_supported","type":"connectivity_capabilities" },
    { "message":"file_capabilities","num":254,"name":"message_index","type":"message_index" },
    { "message":"file_capabilities","num":0,"name":"type","type":"file" },
    { "message":"file_capabilities","num":1,"name":"flags","type":"file_flags" },
    { "message":"file_capabilities","num":2,"name":"directory","type":"string" },
    { "message":"file_capabilities","num":3,"name":"max_count","type":"uint16" },
    { "message":"file_capabilities","num":4,"name":"max_size","type":"uint32","units":"bytes" },
    { "message":"mesg_capabilities","num":254,"name":"message_index","type":"message_index" },
    { "message":"mesg_capabilities","num":0,"name":"file","type":"file" },
    { "message":"mesg_capabilities","num":1,"name":"mesg_num","type":"mesg_num" },
    { "message":"mesg_capabilities","num":2,"name":"count_type","type":"mesg_count" },
    { "message":"mesg_capabilities","num":3,"name":"count","type":"uint16" },
    { "message":"field_capabilities","num":254,"name":"message_index","type":"message_index" },
    { "message":"field_capabilities","num":0,"name":"file","type":"file" },
    { "message":"field_capabilities","num":1,"name":"mesg_num","type":"mesg_num" },
    { "message":"field_capabilities","num":2,"name":"field_num","type":"uint8" },
    { "message":"field_capabilities","num":3,"name":"count","type":"uint16" },
    { "message":"device_settings","num":0,"name":"active_time_zone","type":"uint8" },
    { "message":"device_settings","num":1,"name":"utc_offset","type":"uint32" },
    { "message":"device_settings","num":2,"name":"time_offset","type":"uint32","array":"[N]","units":"s" },
    { "message":"device_settings","num":4,"name":"time_mode","type":"time_mode","array":"[N]" },
    { "message":"device_settings","num":5,"name":"time_zone_offset","type":"sint8","array":"[N]","scale":4,"units":"hr" },
    { "message":"device_settings","num":12,"name":"backlight_mode","type":"backlight_mode" },
    { "message":"device_settings","num":36,"name":"activity_tracker_enabled","type":"bool" },
    { "message":"device_settings","num":39,"name":"clock_time","type":"date_time" },
    { "message":"device_settings","num":40,"name":"pages_enabled","type":"uint16","array":"[N]" },
    { "message":"device_settings","num":46,"name":"move_alert_enabled","type":"bool" },
    { "message":"device_settings","num":47,"name":"date_mode","type":"date_mode" },
    { "message":"device_settings","num":55,"name":"display_orientation","type":"display_orientation" },
    { "message":"device_settings","num":56,"name":"mounting_side","type":"side" },
    { "message":"device_settings","num":57,"name":"default_page","type":"uint16","array":"[N]" },
    { "message":"device_settings","num":58,"name":"autosync_min_steps","type":"uint16","units":"steps" },
    { "message":"device_settings","num":59,"name":"autosync_min_time","type":"uint16","units":"minutes" },
    { "message":"device_settings","num":80,"name":"lactate_threshold_autodetect_enabled","type":"bool" },
    { "message":"device_settings","num":86,"name":"ble_auto_upload_enabled","type":"bool" },
    { "message":"device_settings","num":89,"name":"auto_sync_frequency","type":"auto_sync_frequency" },
    { "message":"device_settings","num":90,"name":"auto_activity_detect","type":"auto_activity_detect" },
    { "message":"device_settings","num":94,"name":"number_of_screens","type":"uint8" },
    { "message":"device_settings","num":95,"name":"smart_notification_display_orientation","type":"display_orientation" },
    { "message":"device_settings","num":134,"name":"tap_interface","type":"switch" },
    { "message":"device_settings","num":174,"name":"tap_sensitivity","type":"tap_sensitivity" },
    { "message":"user_profile","num":254,"name":"message_index","type":"message_index" },
    { "message":"user_profile","num":0,"name":"friendly_name","type":"string" },
    { "message":"user_profile","num":1,"name":"gender","type":"gender" },
    { "message":"user_profile","num":2,"name":"age","type":"uint8","units":"years" },
    { "message":"user_profile","num":3,"name":"height","type":"uint8","scale":100,"units":"m" },
    { "message":"user_profile","num":4,"name":"weight","type":"uint16","scale":10,"units":"kg" },
    { "message":"user_profile","num":5,"name":"language","type":"language" },
    { "message":"user_profile","num":6,"name":"elev_setting","type":"display_measure" },
    { "message":"user_profile","num":7,"name":"weight_setting","type":"display_measure" },
    { "message":"user_profile","num":8,"name":"resting_heart_rate","type":"uint8","units":"bpm" },
    { "message":"user_profile","num":9,"name":"default_max_running_heart_rate","type":"uint8","units":"bpm" },
    { "message":"user_profile","num":10,"name":"default_max_biking_heart_rate","type":"uint8","units":"bpm" },
    { "message":"user_profile","num":11,"name":"default_max_heart_rate","type":"uint8","units":"bpm" },
    { "message":"user_profile","num":12,"name":"hr_setting","type":"display_heart" },
    { "message":"user_profile","num":13,"name":"speed_setting","type":"display_measure" },
    { "message":"user_profile","num":14,"name":"dist_setting","type":"display_measure" },
    { "message":"user_profile","num":16,"name":"power_setting","type":"display_power" },
    { "message":"user_profile","num":17,"name":"activity_class","type":"activity_class" },
    { "message":"user_profile","num":18,"name":"position_setting","type":"display_position" },
    { "message":"user_profile","num":21,"name":"temperature_setting","type":"display_measure" },
    { "message":"user_profile","num":22,"name":"local_id","type":"user_local_id" },
    { "message":"user_profile","num":23,"name":"global_id","type":"byte","array":"[6]" },
    { "message":"user_profile","num":28,"name":"wake_time","type":"localtime_into_day" },
    { "message":"user_profile","num":29,"name":"sleep_time","type":"localtime_into_day" },
    { "message":"user_profile","num":30,"name":"height_setting","type":"display_measure" },
    { "message":"user_profile","num":31,"name":"user_running_step_length","type":"uint16","scale":1000,"units":"m" },
    { "message":"user_profile","num":32,"name":"user_walking_step_length","type":"uint16","scale":1000,"units":"m" },
    { "message":"user_profile","num":47,"name":"depth_setting","type":"display_measure" },
    { "message":"user_profile","num":49,"name":"dive_count","type":"uint32" },
    { "message":"hrm_profile","num":254,"name":"message_index","type":"message_index" },
    { "message":"hrm_profile","num":0,"name":"enabled","type":"bool" },
    { "message":"hrm_profile","num":1,"name":"hrm_ant_id","type":"uint16z" },
    { "message":"hrm_profile","num":2,"name":"log_hrv","type":"bool" },
    { "message":"hrm_profile","num":3,"name":"hrm_ant_id_trans_type","type":"uint8z" },
    { "message":"sdm_profile","num":254,"name":"message_index","type":"message_index" },
    { "message":"sdm_profile","num":0,"name":"enabled","type":"bool" },
    { "message":"sdm_profile","num":1,"name":"sdm_ant_id","type":"uint16z" },
    { "message":"sdm_profile","num":2,"name":"sdm_cal_factor","type":"uint16","scale":10,"units":"%" },
    { "message":"sdm_profile","num":3,"name":"odometer","type":"uint32","scale":100,"units":"m" },
    { "message":"sdm_profile","num":4,"name":"speed_source","type":"bool" },
    { "message":"sdm_profile","num":5,"name":"sdm_ant_id_trans_type","type":"uint8z" },
    { "message":"sdm_profile","num":7,"name":"odometer_rollover","type":"uint8" },
    { "message":"bike_profile","num":254,"name":"message_index","type":"message_index" },
    { "message":"bike_profile","num":0,"name":"name","type":"string" },
    { "message":"bike_profile","num":1,"name":"sport","type":"sport" },
    { "message":"bike_profile","num":2,"name":"sub_sport","type":"sub_sport" },
    { "message":"bike_profile","num":3,"name":"odometer","type":"uint32","scale":100,"units":"m" },
    { "message":"bike_profile","num":4,"name":"bike_spd_ant_id","type":"uint16z" },
    { "message":"bike_profile","num":5,"name":"bike_cad_ant_id","type":"uint16z" },
    { "message":"bike_profile","num":6,"name":"bike_spdcad_ant_id","type":"uint16z" },
    { "message":"bike_profile","num":7,"name":"bike_power_ant_id","type":"uint16z" },
    { "message":"bike_profile","num":8,"name":"custom_wheelsize","type":"uint16","scale":1000,"units":"m" },
    { "message":"bike_profile","num":9,"name":"auto_wheelsize","type":"uint16","scale":1000,"units":"m" },
    { "message":"bike_profile","num":10,"name":"bike_weight","type":"uint16","scale":10,"units":"kg" },
    { "message":"bike_profile","num":11,"name":"power_cal_factor","type":"uint16","scale":10,"units":"%" },
    { "message":"bike_profile","num":12,"name":"auto_wheel_cal","type":"bool" },
    { "message":"bike_profile","num":13,"name":"auto_power_zero","type":"bool" },
    { "message":"bike_profile","num":14,"name":"id","type":"uint8" },
    { "message":"bike_profile","num":15,"name":"spd_enabled","type":"bool" },
    { "message":"bike_profile","num":16,"name":"cad_enabled","type":"bool" },
    { "message":"bike_profile","num":17,"name":"spdcad_enabled","type":"bool" },
    { "message":"bike_profile","num":18,"name":"power_enabled","type":"bool" },
    { "message":"bike_profile","num":19,"name":"crank_length","type":"uint8","scale":2,"offset":"-110","units":"mm" },
    { "message":"bike_profile","num":20,"name":"enabled","type":"bool" },
    { "message":"bike_profile","num":21,"name":"bike_spd_ant_id_trans_type","type":"uint8z" },
    { "message":"bike_profile","num":22,"name":"bike_cad_ant_id_trans_type","type":"uint8z" },
    { "message":"bike_profile","num":23,"name":"bike_spdcad_ant_id_trans_type","type":"uint8z" },
    { "message":"bike_profile","num":24,"name":"bike_power_ant_id_trans_type","type":"uint8z" },
    { "message":"bike_profile","num":37,"name":"odometer_rollover","type":"uint8" },
    { "message":"bike_profile","num":38,"name":"front_gear_num","type":"uint8z" },
    { "message":"bike_profile","num":39,"name":"front_gear","type":"uint8z","array":"[N]" },
    { "message":"bike_profile","num":40,"name":"rear_gear_num","type":"uint8z" },
    { "message":"bike_profile","num":41,"name":"rear_gear","type":"uint8z","array":"[N]" },
    { "message":"bike_profile","num":44,"name":"shimano_di2_enabled","type":"bool" },
    { "message":"connectivity","num":0,"name":"bluetooth_enabled","type":"bool" },
    { "message":"connectivity","num":1,"name":"bluetooth_le_enabled","type":"bool" },
    { "message":"connectivity","num":2,"name":"ant_enabled","type":"bool" },
    { "message":"connectivity","num":3,"name":"name","type":"string" },
    { "message":"connectivity","num":4,"name":"live_tracking_enabled","type":"bool" },
    { "message":"connectivity","num":5,"name":"weather_conditions_enabled","type":"bool" },
    { "message":"connectivity","num":6,"name":"weather_alerts_enabled","type":"bool" },
    { "message":"connectivity","num":7,"name":"auto_activity_upload_enabled","type":"bool" },
    { "message":"connectivity","num":8,"name":"course_download_enabled","type":"bool" },
    { "message":"connectivity","num":9,"name":"workout_download_enabled","type":"bool" },
    { "message":"connectivity","num":10,"name":"gps_ephemeris_download_enabled","type":"bool" },
    { "message":"connectivity","num":11,"name":"incident_detection_enabled","type":"bool" },
    { "message":"connectivity","num":12,"name":"grouptrack_enabled","type":"bool" },
    { "message":"watchface_settings","num":254,"name":"message_index","type":"message_index" },
    { "message":"watchface_settings","num":0,"name":"mode","type":"watchface_mode" },
    { "message":"watchface_settings","num":1,"name":"layout","type":"byte" },
    { "message":"ohr_settings","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"ohr_settings","num":0,"name":"enabled","type":"switch" },
    { "message":"time_in_zone","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"time_in_zone","num":0,"name":"reference_mesg","type":"mesg_num" },
    { "message":"time_in_zone","num":1,"name":"reference_index","type":"message_index" },
    { "message":"time_in_zone","num":2,"name":"time_in_hr_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"time_in_zone","num":3,"name":"time_in_speed_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"time_in_zone","num":4,"name":"time_in_cadence_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"time_in_zone","num":5,"name":"time_in_power_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"time_in_zone","num":6,"name":"hr_zone_high_boundary","type":"uint8","array":"[N]","units":"bpm" },
    { "message":"time_in_zone","num":7,"name":"speed_zone_high_boundary","type":"uint16","array":"[N]","scale":1000,"units":"m/s" },
    { "message":"time_in_zone","num":8,"name":"cadence_zone_high_bondary","type":"uint8","array":"[N]","units":"rpm" },
    { "message":"time_in_zone","num":9,"name":"power_zone_high_boundary","type":"uint16","array":"[N]","units":"watts" },
    { "message":"time_in_zone","num":10,"name":"hr_calc_type","type":"hr_zone_calc" },
    { "message":"time_in_zone","num":11,"name":"max_heart_rate","type":"uint8" },
    { "message":"time_in_zone","num":12,"name":"resting_heart_rate","type":"uint8" },
    { "message":"time_in_zone","num":13,"name":"threshold_heart_rate","type":"uint8" },
    { "message":"time_in_zone","num":14,"name":"pwr_calc_type","type":"pwr_zone_calc" },
    { "message":"time_in_zone","num":15,"name":"functional_threshold_power","type":"uint16" },
    { "message":"zones_target","num":1,"name":"max_heart_rate","type":"uint8" },
    { "message":"zones_target","num":2,"name":"threshold_heart_rate","type":"uint8" },
    { "message":"zones_target","num":3,"name":"functional_threshold_power","type":"uint16" },
    { "message":"zones_target","num":5,"name":"hr_calc_type","type":"hr_zone_calc" },
    { "message":"zones_target","num":7,"name":"pwr_calc_type","type":"pwr_zone_calc" },
    { "message":"sport","num":0,"name":"sport","type":"sport" },
    { "message":"sport","num":1,"name":"sub_sport","type":"sub_sport" },
    { "message":"sport","num":3,"name":"name","type":"string" },
    { "message":"hr_zone","num":254,"name":"message_index","type":"message_index" },
    { "message":"hr_zone","num":1,"name":"high_bpm","type":"uint8","units":"bpm" },
    { "message":"hr_zone","num":2,"name":"name","type":"string" },
    { "message":"speed_zone","num":254,"name":"message_index","type":"message_index" },
    { "message":"speed_zone","num":0,"name":"high_value","type":"uint16","scale":1000,"units":"m/s" },
    { "message":"speed_zone","num":1,"name":"name","type":"string" },
    { "message":"cadence_zone","num":254,"name":"message_index","type":"message_index" },
    { "message":"cadence_zone","num":0,"name":"high_value","type":"uint8","units":"rpm" },
    { "message":"cadence_zone","num":1,"name":"name","type":"string" },
    { "message":"power_zone","num":254,"name":"message_index","type":"message_index" },
    { "message":"power_zone","num":1,"name":"high_value","type":"uint16","units":"watts" },
    { "message":"power_zone","num":2,"name":"name","type":"string" },
    { "message":"met_zone","num":254,"name":"message_index","type":"message_index" },
    { "message":"met_zone","num":1,"name":"high_bpm","type":"uint8" },
    { "message":"met_zone","num":2,"name":"calories","type":"uint16","scale":10,"units":"kcal / min" },
    { "message":"met_zone","num":3,"name":"fat_calories","type":"uint8","scale":10,"units":"kcal / min" },
    { "message":"dive_settings","num":253,"name":"timestamp","type":"date_time" },
    { "message":"dive_settings","num":254,"name":"message_index","type":"message_index" },
    { "message":"dive_settings","num":0,"name":"name","type":"string" },
    { "message":"dive_settings","num":1,"name":"model","type":"tissue_model_type" },
    { "message":"dive_settings","num":2,"name":"gf_low","type":"uint8","units":"percent" },
    { "message":"dive_settings","num":3,"name":"gf_high","type":"uint8","units":"percent" },
    { "message":"dive_settings","num":4,"name":"water_type","type":"water_type" },
    { "message":"dive_settings","num":5,"name":"water_density","type":"float32","units":"kg/m^3" },
    { "message":"dive_settings","num":6,"name":"po2_warn","type":"uint8","scale":100,"units":"percent" },
    { "message":"dive_settings","num":7,"name":"po2_critical","type":"uint8","scale":100,"units":"percent" },
    { "message":"dive_settings","num":8,"name":"po2_deco","type":"uint8","scale":100,"units":"percent" },
    { "message":"dive_settings","num":9,"name":"safety_stop_enabled","type":"bool" },
    { "message":"dive_settings","num":10,"name":"bottom_depth","type":"float32" },
    { "message":"dive_settings","num":11,"name":"bottom_time","type":"uint32" },
    { "message":"dive_settings","num":12,"name":"apnea_countdown_enabled","type":"bool" },
    { "message":"dive_settings","num":13,"name":"apnea_countdown_time","type":"uint32" },
    { "message":"dive_settings","num":14,"name":"backlight_mode","type":"dive_backlight_mode" },
    { "message":"dive_settings","num":15,"name":"backlight_brightness","type":"uint8" },
    { "message":"dive_settings","num":16,"name":"backlight_timeout","type":"backlight_timeout" },
    { "message":"dive_settings","num":17,"name":"repeat_dive_interval","type":"uint16","scale":1,"units":"s" },
    { "message":"dive_settings","num":18,"name":"safety_stop_time","type":"uint16","scale":1,"units":"s" },
    { "message":"dive_settings","num":19,"name":"heart_rate_source_type","type":"source_type" },
    { "message":"dive_settings","num":20,"name":"heart_rate_source","type":"uint8" },
    { "message":"dive_settings","num":21,"name":"travel_gas","type":"message_index" },
    { "message":"dive_settings","num":22,"name":"ccr_low_setpoint_switch_mode","type":"ccr_setpoint_switch_mode" },
    { "message":"dive_settings","num":23,"name":"ccr_low_setpoint","type":"uint8","scale":100,"units":"percent" },
    { "message":"dive_settings","num":24,"name":"ccr_low_setpoint_depth","type":"uint32","scale":1000,"units":"m" },
    { "message":"dive_settings","num":25,"name":"ccr_high_setpoint_switch_mode","type":"ccr_setpoint_switch_mode" },
    { "message":"dive_settings","num":26,"name":"ccr_high_setpoint","type":"uint8","scale":100,"units":"percent" },
    { "message":"dive_settings","num":27,"name":"ccr_high_setpoint_depth","type":"uint32","scale":1000,"units":"m" },
    { "message":"dive_settings","num":29,"name":"gas_consumption_display","type":"gas_consumption_rate_type" },
    { "message":"dive_settings","num":30,"name":"up_key_enabled","type":"bool" },
    { "message":"dive_settings","num":35,"name":"dive_sounds","type":"tone" },
    { "message":"dive_settings","num":36,"name":"last_stop_multiple","type":"uint8","scale":10 },
    { "message":"dive_settings","num":37,"name":"no_fly_time_mode","type":"no_fly_time_mode" },
    { "message":"dive_alarm","num":254,"name":"message_index","type":"message_index" },
    { "message":"dive_alarm","num":0,"name":"depth","type":"uint32","scale":1000,"units":"m" },
    { "message":"dive_alarm","num":1,"name":"time","type":"sint32","scale":1,"units":"s" },
    { "message":"dive_alarm","num":2,"name":"enabled","type":"bool" },
    { "message":"dive_alarm","num":3,"name":"alarm_type","type":"dive_alarm_type" },
    { "message":"dive_alarm","num":4,"name":"sound","type":"tone" },
    { "message":"dive_alarm","num":5,"name":"dive_types","type":"sub_sport","array":"[N]" },
    { "message":"dive_alarm","num":6,"name":"id","type":"uint32" },
    { "message":"dive_alarm","num":7,"name":"popup_enabled","type":"bool" },
    { "message":"dive_alarm","num":8,"name":"trigger_on_descent","type":"bool" },
    { "message":"dive_alarm","num":9,"name":"trigger_on_ascent","type":"bool" },
    { "message":"dive_alarm","num":10,"name":"repeating","type":"bool" },
    { "message":"dive_alarm","num":11,"name":"speed","type":"sint32","scale":1000,"units":"mps" },
    { "message":"dive_apnea_alarm","num":254,"name":"message_index","type":"message_index" },
    { "message":"dive_apnea_alarm","num":0,"name":"depth","type":"uint32","scale":1000,"units":"m" },
    { "message":"dive_apnea_alarm","num":1,"name":"time","type":"sint32","scale":1,"units":"s" },
    { "message":"dive_apnea_alarm","num":2,"name":"enabled","type":"bool" },
    { "message":"dive_apnea_alarm","num":3,"name":"alarm_type","type":"dive_alarm_type" },
    { "message":"dive_apnea_alarm","num":4,"name":"sound","type":"tone" },
    { "message":"dive_apnea_alarm","num":5,"name":"dive_types","type":"sub_sport","array":"[N]" },
    { "message":"dive_apnea_alarm","num":6,"name":"id","type":"uint32" },
    { "message":"dive_apnea_alarm","num":7,"name":"popup_enabled","type":"bool" },
    { "message":"dive_apnea_alarm","num":8,"name":"trigger_on_descent","type":"bool" },
    { "message":"dive_apnea_alarm","num":9,"name":"trigger_on_ascent","type":"bool" },
    { "message":"dive_apnea_alarm","num":10,"name":"repeating","type":"bool" },
    { "message":"dive_apnea_alarm","num":11,"name":"speed","type":"sint32","scale":1000,"units":"mps" },
    { "message":"dive_gas","num":254,"name":"message_index","type":"message_index" },
    { "message":"dive_gas","num":0,"name":"helium_content","type":"uint8","units":"percent" },
    { "message":"dive_gas","num":1,"name":"oxygen_content","type":"uint8","units":"percent" },
    { "message":"dive_gas","num":2,"name":"status","type":"dive_gas_status" },
    { "message":"dive_gas","num":3,"name":"mode","type":"dive_gas_mode" },
    { "message":"goal","num":254,"name":"message_index","type":"message_index" },
    { "message":"goal","num":0,"name":"sport","type":"sport" },
    { "message":"goal","num":1,"name":"sub_sport","type":"sub_sport" },
    { "message":"goal","num":2,"name":"start_date","type":"date_time" },
    { "message":"goal","num":3,"name":"end_date","type":"date_time" },
    { "message":"goal","num":4,"name":"type","type":"goal" },
    { "message":"goal","num":5,"name":"value","type":"uint32" },
    { "message":"goal","num":6,"name":"repeat","type":"bool" },
    { "message":"goal","num":7,"name":"target_value","type":"uint32" },
    { "message":"goal","num":8,"name":"recurrence","type":"goal_recurrence" },
    { "message":"goal","num":9,"name":"recurrence_value","type":"uint16" },
    { "message":"goal","num":10,"name":"enabled","type":"bool" },
    { "message":"goal","num":11,"name":"source","type":"goal_source" },
    { "message":"activity","num":253,"name":"timestamp","type":"date_time" },
    { "message":"activity","num":0,"name":"total_timer_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"activity","num":1,"name":"num_sessions","type":"uint16" },
    { "message":"activity","num":2,"name":"type","type":"activity" },
    { "message":"activity","num":3,"name":"event","type":"event" },
    { "message":"activity","num":4,"name":"event_type","type":"event_type" },
    { "message":"activity","num":5,"name":"local_timestamp","type":"local_date_time" },
    { "message":"activity","num":6,"name":"event_group","type":"uint8" },
    { "message":"session","num":254,"name":"message_index","type":"message_index" },
    { "message":"session","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"session","num":0,"name":"event","type":"event" },
    { "message":"session","num":1,"name":"event_type","type":"event_type" },
    { "message":"session","num":2,"name":"start_time","type":"date_time" },
    { "message":"session","num":3,"name":"start_position_lat","type":"sint32","units":"semicircles" },
    { "message":"session","num":4,"name":"start_position_long","type":"sint32","units":"semicircles" },
    { "message":"session","num":5,"name":"sport","type":"sport" },
    { "message":"session","num":6,"name":"sub_sport","type":"sub_sport" },
    { "message":"session","num":7,"name":"total_elapsed_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"session","num":8,"name":"total_timer_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"session","num":9,"name":"total_distance","type":"uint32","scale":100,"units":"m" },
    { "message":"session","num":10,"name":"total_cycles","type":"uint32","units":"cycles" },
    { "message":"session","num":11,"name":"total_calories","type":"uint16","units":"kcal" },
    { "message":"session","num":13,"name":"total_fat_calories","type":"uint16","units":"kcal" },
    { "message":"session","num":14,"name":"avg_speed","type":"uint16","scale":1000,"units":"m/s" },
    { "message":"session","num":15,"name":"max_speed","type":"uint16","scale":1000,"units":"m/s" },
    { "message":"session","num":16,"name":"avg_heart_rate","type":"uint8","units":"bpm" },
    { "message":"session","num":17,"name":"max_heart_rate","type":"uint8","units":"bpm" },
    { "message":"session","num":18,"name":"avg_cadence","type":"uint8","units":"rpm" },
    { "message":"session","num":19,"name":"max_cadence","type":"uint8","units":"rpm" },
    { "message":"session","num":20,"name":"avg_power","type":"uint16","units":"watts" },
    { "message":"session","num":21,"name":"max_power","type":"uint16","units":"watts" },
    { "message":"session","num":22,"name":"total_ascent","type":"uint16","units":"m" },
    { "message":"session","num":23,"name":"total_descent","type":"uint16","units":"m" },
    { "message":"session","num":24,"name":"total_training_effect","type":"uint8","scale":10 },
    { "message":"session","num":25,"name":"first_lap_index","type":"uint16" },
    { "message":"session","num":26,"name":"num_laps","type":"uint16" },
    { "message":"session","num":27,"name":"event_group","type":"uint8" },
    { "message":"session","num":28,"name":"trigger","type":"session_trigger" },
    { "message":"session","num":29,"name":"nec_lat","type":"sint32","units":"semicircles" },
    { "message":"session","num":30,"name":"nec_long","type":"sint32","units":"semicircles" },
    { "message":"session","num":31,"name":"swc_lat","type":"sint32","units":"semicircles" },
    { "message":"session","num":32,"name":"swc_long","type":"sint32","units":"semicircles" },
    { "message":"session","num":33,"name":"num_lengths","type":"uint16","units":"lengths" },
    { "message":"session","num":34,"name":"normalized_power","type":"uint16","units":"watts" },
    { "message":"session","num":35,"name":"training_stress_score","type":"uint16","scale":10,"units":"tss" },
    { "message":"session","num":36,"name":"intensity_factor","type":"uint16","scale":1000,"units":"if" },
    { "message":"session","num":37,"name":"left_right_balance","type":"left_right_balance_100" },
    { "message":"session","num":38,"name":"end_position_lat","type":"sint32","units":"semicircles" },
    { "message":"session","num":39,"name":"end_position_long","type":"sint32","units":"semicircles" },
    { "message":"session","num":41,"name":"avg_stroke_count","type":"uint32","scale":10,"units":"strokes/lap" },
    { "message":"session","num":42,"name":"avg_stroke_distance","type":"uint16","scale":100,"units":"m" },
    { "message":"session","num":43,"name":"swim_stroke","type":"swim_stroke","units":"swim_stroke" },
    { "message":"session","num":44,"name":"pool_length","type":"uint16","scale":100,"units":"m" },
    { "message":"session","num":45,"name":"threshold_power","type":"uint16","units":"watts" },
    { "message":"session","num":46,"name":"pool_length_unit","type":"display_measure" },
    { "message":"session","num":47,"name":"num_active_lengths","type":"uint16","units":"lengths" },
    { "message":"session","num":48,"name":"total_work","type":"uint32","units":"J" },
    { "message":"session","num":49,"name":"avg_altitude","type":"uint16","scale":5,"offset":500,"units":"m" },
    { "message":"session","num":50,"name":"max_altitude","type":"uint16","scale":5,"offset":500,"units":"m" },
    { "message":"session","num":51,"name":"gps_accuracy","type":"uint8","units":"m" },
    { "message":"session","num":52,"name":"avg_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"session","num":53,"name":"avg_pos_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"session","num":54,"name":"avg_neg_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"session","num":55,"name":"max_pos_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"session","num":56,"name":"max_neg_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"session","num":57,"name":"avg_temperature","type":"sint8","units":"C" },
    { "message":"session","num":58,"name":"max_temperature","type":"sint8","units":"C" },
    { "message":"session","num":59,"name":"total_moving_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"session","num":60,"name":"avg_pos_vertical_speed","type":"sint16","scale":1000,"units":"m/s" },
    { "message":"session","num":61,"name":"avg_neg_vertical_speed","type":"sint16","scale":1000,"units":"m/s" },
    { "message":"session","num":62,"name":"max_pos_vertical_speed","type":"sint16","scale":1000,"units":"m/s" },
    { "message":"session","num":63,"name":"max_neg_vertical_speed","type":"sint16","scale":1000,"units":"m/s" },
    { "message":"session","num":64,"name":"min_heart_rate","type":"uint8","units":"bpm" },
    { "message":"session","num":65,"name":"time_in_hr_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"session","num":66,"name":"time_in_speed_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"session","num":67,"name":"time_in_cadence_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"session","num":68,"name":"time_in_power_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"session","num":69,"name":"avg_lap_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"session","num":70,"name":"best_lap_index","type":"uint16" },
    { "message":"session","num":71,"name":"min_altitude","type":"uint16","scale":5,"offset":500,"units":"m" },
    { "message":"session","num":82,"name":"player_score","type":"uint16" },
    { "message":"session","num":83,"name":"opponent_score","type":"uint16" },
    { "message":"session","num":84,"name":"opponent_name","type":"string" },
    { "message":"session","num":85,"name":"stroke_count","type":"uint16","array":"[N]","units":"counts" },
    { "message":"session","num":86,"name":"zone_count","type":"uint16","array":"[N]","units":"counts" },
    { "message":"session","num":87,"name":"max_ball_speed","type":"uint16","scale":100,"units":"m/s" },
    { "message":"session","num":88,"name":"avg_ball_speed","type":"uint16","scale":100,"units":"m/s" },
    { "message":"session","num":89,"name":"avg_vertical_oscillation","type":"uint16","scale":10,"units":"mm" },
    { "message":"session","num":90,"name":"avg_stance_time_percent","type":"uint16","scale":100,"units":"percent" },
    { "message":"session","num":91,"name":"avg_stance_time","type":"uint16","scale":10,"units":"ms" },
    { "message":"session","num":92,"name":"avg_fractional_cadence","type":"uint8","scale":128,"units":"rpm" },
    { "message":"session","num":93,"name":"max_fractional_cadence","type":"uint8","scale":128,"units":"rpm" },
    { "message":"session","num":94,"name":"total_fractional_cycles","type":"uint8","scale":128,"units":"cycles" },
    { "message":"session","num":95,"name":"avg_total_hemoglobin_conc","type":"uint16","array":"[N]","scale":100,"units":"g/dL" },
    { "message":"session","num":96,"name":"min_total_hemoglobin_conc","type":"uint16","array":"[N]","scale":100,"units":"g/dL" },
    { "message":"session","num":97,"name":"max_total_hemoglobin_conc","type":"uint16","array":"[N]","scale":100,"units":"g/dL" },
    { "message":"session","num":98,"name":"avg_saturated_hemoglobin_percent","type":"uint16","array":"[N]","scale":10,"units":"%" },
    { "message":"session","num":99,"name":"min_saturated_hemoglobin_percent","type":"uint16","array":"[N]","scale":10,"units":"%" },
    { "message":"session","num":100,"name":"max_saturated_hemoglobin_percent","type":"uint16","array":"[N]","scale":10,"units":"%" },
    { "message":"session","num":101,"name":"avg_left_torque_effectiveness","type":"uint8","scale":2,"units":"percent" },
    { "message":"session","num":102,"name":"avg_right_torque_effectiveness","type":"uint8","scale":2,"units":"percent" },
    { "message":"session","num":103,"name":"avg_left_pedal_smoothness","type":"uint8","scale":2,"units":"percent" },
    { "message":"session","num":104,"name":"avg_right_pedal_smoothness","type":"uint8","scale":2,"units":"percent" },
    { "message":"session","num":105,"name":"avg_combined_pedal_smoothness","type":"uint8","scale":2,"units":"percent" },
    { "message":"session","num":110,"name":"sport_profile_name","type":"string" },
    { "message":"session","num":111,"name":"sport_index","type":"uint8" },
    { "message":"session","num":112,"name":"time_standing","type":"uint32","scale":1000,"units":"s" },
    { "message":"session","num":113,"name":"stand_count","type":"uint16" },
    { "message":"session","num":114,"name":"avg_left_pco","type":"sint8","units":"mm" },
    { "message":"session","num":115,"name":"avg_right_pco","type":"sint8","units":"mm" },
    { "message":"session","num":116,"name":"avg_left_power_phase","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"session","num":117,"name":"avg_left_power_phase_peak","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"session","num":118,"name":"avg_right_power_phase","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"session","num":119,"name":"avg_right_power_phase_peak","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"session","num":120,"name":"avg_power_position","type":"uint16","array":"[N]","units":"watts" },
    { "message":"session","num":121,"name":"max_power_position","type":"uint16","array":"[N]","units":"watts" },
    { "message":"session","num":122,"name":"avg_cadence_position","type":"uint8","array":"[N]","units":"rpm" },
    { "message":"session","num":123,"name":"max_cadence_position","type":"uint8","array":"[N]","units":"rpm" },
    { "message":"session","num":124,"name":"enhanced_avg_speed","type":"uint32","scale":1000,"units":"m/s" },
    { "message":"session","num":125,"name":"enhanced_max_speed","type":"uint32","scale":1000,"units":"m/s" },
    { "message":"session","num":126,"name":"enhanced_avg_altitude","type":"uint32","scale":5,"offset":500,"units":"m" },
    { "message":"session","num":127,"name":"enhanced_min_altitude","type":"uint32","scale":5,"offset":500,"units":"m" },
    { "message":"session","num":128,"name":"enhanced_max_altitude","type":"uint32","scale":5,"offset":500,"units":"m" },
    { "message":"session","num":129,"name":"avg_lev_motor_power","type":"uint16","units":"watts" },
    { "message":"session","num":130,"name":"max_lev_motor_power","type":"uint16","units":"watts" },
    { "message":"session","num":131,"name":"lev_battery_consumption","type":"uint8","scale":2,"units":"percent" },
    { "message":"session","num":132,"name":"avg_vertical_ratio","type":"uint16","scale":100,"units":"percent" },
    { "message":"session","num":133,"name":"avg_stance_time_balance","type":"uint16","scale":100,"units":"percent" },
    { "message":"session","num":134,"name":"avg_step_length","type":"uint16","scale":10,"units":"mm" },
    { "message":"session","num":137,"name":"total_anaerobic_training_effect","type":"uint8","scale":10 },
    { "message":"session","num":139,"name":"avg_vam","type":"uint16","scale":1000,"units":"m/s" },
    { "message":"session","num":140,"name":"avg_depth","type":"uint32","scale":1000,"units":"m" },
    { "message":"session","num":141,"name":"max_depth","type":"uint32","scale":1000,"units":"m" },
    { "message":"session","num":142,"name":"surface_interval","type":"uint32","scale":1,"units":"s" },
    { "message":"session","num":143,"name":"start_cns","type":"uint8","scale":1,"units":"percent" },
    { "message":"session","num":144,"name":"end_cns","type":"uint8","scale":1,"units":"percent" },
    { "message":"session","num":145,"name":"start_n2","type":"uint16","scale":1,"units":"percent" },
    { "message":"session","num":146,"name":"end_n2","type":"uint16","scale":1,"units":"percent" },
    { "message":"session","num":147,"name":"avg_respiration_rate","type":"uint8" },
    { "message":"session","num":148,"name":"max_respiration_rate","type":"uint8" },
    { "message":"session","num":149,"name":"min_respiration_rate","type":"uint8" },
    { "message":"session","num":150,"name":"min_temperature","type":"sint8","units":"C" },
    { "message":"session","num":155,"name":"o2_toxicity","type":"uint16","units":"OTUs" },
    { "message":"session","num":156,"name":"dive_number","type":"uint32" },
    { "message":"session","num":168,"name":"training_load_peak","type":"sint32","scale":65536 },
    { "message":"session","num":169,"name":"enhanced_avg_respiration_rate","type":"uint16","scale":100,"units":"Breaths/min" },
    { "message":"session","num":170,"name":"enhanced_max_respiration_rate","type":"uint16","scale":100,"units":"Breaths/min" },
    { "message":"session","num":180,"name":"enhanced_min_respiration_rate","type":"uint16","scale":100 },
    { "message":"session","num":181,"name":"total_grit","type":"float32","units":"kGrit" },
    { "message":"session","num":182,"name":"total_flow","type":"float32","units":"Flow" },
    { "message":"session","num":183,"name":"jump_count","type":"uint16" },
    { "message":"session","num":186,"name":"avg_grit","type":"float32","units":"kGrit" },
    { "message":"session","num":187,"name":"avg_flow","type":"float32","units":"Flow" },
    { "message":"session","num":194,"name":"avg_spo2","type":"uint8","units":"percent" },
    { "message":"session","num":195,"name":"avg_stress","type":"uint8","units":"percent" },
    { "message":"session","num":197,"name":"sdrr_hrv","type":"uint8","units":"mS" },
    { "message":"session","num":198,"name":"rmssd_hrv","type":"uint8","units":"mS" },
    { "message":"session","num":199,"name":"total_fractional_ascent","type":"uint8","scale":100,"units":"m" },
    { "message":"session","num":200,"name":"total_fractional_descent","type":"uint8","scale":100,"units":"m" },
    { "message":"session","num":208,"name":"avg_core_temperature","type":"uint16","scale":100,"units":"C" },
    { "message":"session","num":209,"name":"min_core_temperature","type":"uint16","scale":100,"units":"C" },
    { "message":"session","num":210,"name":"max_core_temperature","type":"uint16","scale":100,"units":"C" },
    { "message":"lap","num":254,"name":"message_index","type":"message_index" },
    { "message":"lap","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"lap","num":0,"name":"event","type":"event" },
    { "message":"lap","num":1,"name":"event_type","type":"event_type" },
    { "message":"lap","num":2,"name":"start_time","type":"date_time" },
    { "message":"lap","num":3,"name":"start_position_lat","type":"sint32","units":"semicircles" },
    { "message":"lap","num":4,"name":"start_position_long","type":"sint32","units":"semicircles" },
    { "message":"lap","num":5,"name":"end_position_lat","type":"sint32","units":"semicircles" },
    { "message":"lap","num":6,"name":"end_position_long","type":"sint32","units":"semicircles" },
    { "message":"lap","num":7,"name":"total_elapsed_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"lap","num":8,"name":"total_timer_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"lap","num":9,"name":"total_distance","type":"uint32","scale":100,"units":"m" },
    { "message":"lap","num":10,"name":"total_cycles","type":"uint32","units":"cycles" },
    { "message":"lap","num":11,"name":"total_calories","type":"uint16","units":"kcal" },
    { "message":"lap","num":12,"name":"total_fat_calories","type":"uint16","units":"kcal" },
    { "message":"lap","num":13,"name":"avg_speed","type":"uint16","scale":1000,"units":"m/s" },
    { "message":"lap","num":14,"name":"max_speed","type":"uint16","scale":1000,"units":"m/s" },
    { "message":"lap","num":15,"name":"avg_heart_rate","type":"uint8","units":"bpm" },
    { "message":"lap","num":16,"name":"max_heart_rate","type":"uint8","units":"bpm" },
    { "message":"lap","num":17,"name":"avg_cadence","type":"uint8","units":"rpm" },
    { "message":"lap","num":18,"name":"max_cadence","type":"uint8","units":"rpm" },
    { "message":"lap","num":19,"name":"avg_power","type":"uint16","units":"watts" },
    { "message":"lap","num":20,"name":"max_power","type":"uint16","units":"watts" },
    { "message":"lap","num":21,"name":"total_ascent","type":"uint16","units":"m" },
    { "message":"lap","num":22,"name":"total_descent","type":"uint16","units":"m" },
    { "message":"lap","num":23,"name":"intensity","type":"intensity" },
    { "message":"lap","num":24,"name":"lap_trigger","type":"lap_trigger" },
    { "message":"lap","num":25,"name":"sport","type":"sport" },
    { "message":"lap","num":26,"name":"event_group","type":"uint8" },
    { "message":"lap","num":32,"name":"num_lengths","type":"uint16","units":"lengths" },
    { "message":"lap","num":33,"name":"normalized_power","type":"uint16","units":"watts" },
    { "message":"lap","num":34,"name":"left_right_balance","type":"left_right_balance_100" },
    { "message":"lap","num":35,"name":"first_length_index","type":"uint16" },
    { "message":"lap","num":37,"name":"avg_stroke_distance","type":"uint16","scale":100,"units":"m" },
    { "message":"lap","num":38,"name":"swim_stroke","type":"swim_stroke" },
    { "message":"lap","num":39,"name":"sub_sport","type":"sub_sport" },
    { "message":"lap","num":40,"name":"num_active_lengths","type":"uint16","units":"lengths" },
    { "message":"lap","num":41,"name":"total_work","type":"uint32","units":"J" },
    { "message":"lap","num":42,"name":"avg_altitude","type":"uint16","scale":5,"offset":500,"units":"m" },
    { "message":"lap","num":43,"name":"max_altitude","type":"uint16","scale":5,"offset":500,"units":"m" },
    { "message":"lap","num":44,"name":"gps_accuracy","type":"uint8","units":"m" },
    { "message":"lap","num":45,"name":"avg_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"lap","num":46,"name":"avg_pos_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"lap","num":47,"name":"avg_neg_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"lap","num":48,"name":"max_pos_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"lap","num":49,"name":"max_neg_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"lap","num":50,"name":"avg_temperature","type":"sint8","units":"C" },
    { "message":"lap","num":51,"name":"max_temperature","type":"sint8","units":"C" },
    { "message":"lap","num":52,"name":"total_moving_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"lap","num":53,"name":"avg_pos_vertical_speed","type":"sint16","scale":1000,"units":"m/s" },
    { "message":"lap","num":54,"name":"avg_neg_vertical_speed","type":"sint16","scale":1000,"units":"m/s" },
    { "message":"lap","num":55,"name":"max_pos_vertical_speed","type":"sint16","scale":1000,"units":"m/s" },
    { "message":"lap","num":56,"name":"max_neg_vertical_speed","type":"sint16","scale":1000,"units":"m/s" },
    { "message":"lap","num":57,"name":"time_in_hr_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"lap","num":58,"name":"time_in_speed_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"lap","num":59,"name":"time_in_cadence_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"lap","num":60,"name":"time_in_power_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"lap","num":61,"name":"repetition_num","type":"uint16" },
    { "message":"lap","num":62,"name":"min_altitude","type":"uint16","scale":5,"offset":500,"units":"m" },
    { "message":"lap","num":63,"name":"min_heart_rate","type":"uint8","units":"bpm" },
    { "message":"lap","num":71,"name":"wkt_step_index","type":"message_index" },
    { "message":"lap","num":74,"name":"opponent_score","type":"uint16" },
    { "message":"lap","num":75,"name":"stroke_count","type":"uint16","array":"[N]","units":"counts" },
    { "message":"lap","num":76,"name":"zone_count","type":"uint16","array":"[N]","units":"counts" },
    { "message":"lap","num":77,"name":"avg_vertical_oscillation","type":"uint16","scale":10,"units":"mm" },
    { "message":"lap","num":78,"name":"avg_stance_time_percent","type":"uint16","scale":100,"units":"percent" },
    { "message":"lap","num":79,"name":"avg_stance_time","type":"uint16","scale":10,"units":"ms" },
    { "message":"lap","num":80,"name":"avg_fractional_cadence","type":"uint8","scale":128,"units":"rpm" },
    { "message":"lap","num":81,"name":"max_fractional_cadence","type":"uint8","scale":128,"units":"rpm" },
    { "message":"lap","num":82,"name":"total_fractional_cycles","type":"uint8","scale":128,"units":"cycles" },
    { "message":"lap","num":83,"name":"player_score","type":"uint16" },
    { "message":"lap","num":84,"name":"avg_total_hemoglobin_conc","type":"uint16","array":"[N]","scale":100,"units":"g/dL" },
    { "message":"lap","num":85,"name":"min_total_hemoglobin_conc","type":"uint16","array":"[N]","scale":100,"units":"g/dL" },
    { "message":"lap","num":86,"name":"max_total_hemoglobin_conc","type":"uint16","array":"[N]","scale":100,"units":"g/dL" },
    { "message":"lap","num":87,"name":"avg_saturated_hemoglobin_percent","type":"uint16","array":"[N]","scale":10,"units":"%" },
    { "message":"lap","num":88,"name":"min_saturated_hemoglobin_percent","type":"uint16","array":"[N]","scale":10,"units":"%" },
    { "message":"lap","num":89,"name":"max_saturated_hemoglobin_percent","type":"uint16","array":"[N]","scale":10,"units":"%" },
    { "message":"lap","num":91,"name":"avg_left_torque_effectiveness","type":"uint8","scale":2,"units":"percent" },
    { "message":"lap","num":92,"name":"avg_right_torque_effectiveness","type":"uint8","scale":2,"units":"percent" },
    { "message":"lap","num":93,"name":"avg_left_pedal_smoothness","type":"uint8","scale":2,"units":"percent" },
    { "message":"lap","num":94,"name":"avg_right_pedal_smoothness","type":"uint8","scale":2,"units":"percent" },
    { "message":"lap","num":95,"name":"avg_combined_pedal_smoothness","type":"uint8","scale":2,"units":"percent" },
    { "message":"lap","num":98,"name":"time_standing","type":"uint32","scale":1000,"units":"s" },
    { "message":"lap","num":99,"name":"stand_count","type":"uint16" },
    { "message":"lap","num":100,"name":"avg_left_pco","type":"sint8","units":"mm" },
    { "message":"lap","num":101,"name":"avg_right_pco","type":"sint8","units":"mm" },
    { "message":"lap","num":102,"name":"avg_left_power_phase","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"lap","num":103,"name":"avg_left_power_phase_peak","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"lap","num":104,"name":"avg_right_power_phase","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"lap","num":105,"name":"avg_right_power_phase_peak","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"lap","num":106,"name":"avg_power_position","type":"uint16","array":"[N]","units":"watts" },
    { "message":"lap","num":107,"name":"max_power_position","type":"uint16","array":"[N]","units":"watts" },
    { "message":"lap","num":108,"name":"avg_cadence_position","type":"uint8","array":"[N]","units":"rpm" },
    { "message":"lap","num":109,"name":"max_cadence_position","type":"uint8","array":"[N]","units":"rpm" },
    { "message":"lap","num":110,"name":"enhanced_avg_speed","type":"uint32","scale":1000,"units":"m/s" },
    { "message":"lap","num":111,"name":"enhanced_max_speed","type":"uint32","scale":1000,"units":"m/s" },
    { "message":"lap","num":112,"name":"enhanced_avg_altitude","type":"uint32","scale":5,"offset":500,"units":"m" },
    { "message":"lap","num":113,"name":"enhanced_min_altitude","type":"uint32","scale":5,"offset":500,"units":"m" },
    { "message":"lap","num":114,"name":"enhanced_max_altitude","type":"uint32","scale":5,"offset":500,"units":"m" },
    { "message":"lap","num":115,"name":"avg_lev_motor_power","type":"uint16","units":"watts" },
    { "message":"lap","num":116,"name":"max_lev_motor_power","type":"uint16","units":"watts" },
    { "message":"lap","num":117,"name":"lev_battery_consumption","type":"uint8","scale":2,"units":"percent" },
    { "message":"lap","num":118,"name":"avg_vertical_ratio","type":"uint16","scale":100,"units":"percent" },
    { "message":"lap","num":119,"name":"avg_stance_time_balance","type":"uint16","scale":100,"units":"percent" },
    { "message":"lap","num":120,"name":"avg_step_length","type":"uint16","scale":10,"units":"mm" },
    { "message":"lap","num":121,"name":"avg_vam","type":"uint16","scale":1000,"units":"m/s" },
    { "message":"lap","num":122,"name":"avg_depth","type":"uint32","scale":1000,"units":"m" },
    { "message":"lap","num":123,"name":"max_depth","type":"uint32","scale":1000,"units":"m" },
    { "message":"lap","num":124,"name":"min_temperature","type":"sint8","units":"C" },
    { "message":"lap","num":136,"name":"enhanced_avg_respiration_rate","type":"uint16","scale":100,"units":"Breaths/min" },
    { "message":"lap","num":137,"name":"enhanced_max_respiration_rate","type":"uint16","scale":100,"units":"Breaths/min" },
    { "message":"lap","num":147,"name":"avg_respiration_rate","type":"uint8" },
    { "message":"lap","num":148,"name":"max_respiration_rate","type":"uint8" },
    { "message":"lap","num":149,"name":"total_grit","type":"float32","units":"kGrit" },
    { "message":"lap","num":150,"name":"total_flow","type":"float32","units":"Flow" },
    { "message":"lap","num":151,"name":"jump_count","type":"uint16" },
    { "message":"lap","num":153,"name":"avg_grit","type":"float32","units":"kGrit" },
    { "message":"lap","num":154,"name":"avg_flow","type":"float32","units":"Flow" },
    { "message":"lap","num":156,"name":"total_fractional_ascent","type":"uint8","scale":100,"units":"m" },
    { "message":"lap","num":157,"name":"total_fractional_descent","type":"uint8","scale":100,"units":"m" },
    { "message":"lap","num":158,"name":"avg_core_temperature","type":"uint16","scale":100,"units":"C" },
    { "message":"lap","num":159,"name":"min_core_temperature","type":"uint16","scale":100,"units":"C" },
    { "message":"lap","num":160,"name":"max_core_temperature","type":"uint16","scale":100,"units":"C" },
    { "message":"length","num":254,"name":"message_index","type":"message_index" },
    { "message":"length","num":253,"name":"timestamp","type":"date_time" },
    { "message":"length","num":0,"name":"event","type":"event" },
    { "message":"length","num":1,"name":"event_type","type":"event_type" },
    { "message":"length","num":2,"name":"start_time","type":"date_time" },
    { "message":"length","num":3,"name":"total_elapsed_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"length","num":4,"name":"total_timer_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"length","num":5,"name":"total_strokes","type":"uint16","units":"strokes" },
    { "message":"length","num":6,"name":"avg_speed","type":"uint16","scale":1000,"units":"m/s" },
    { "message":"length","num":7,"name":"swim_stroke","type":"swim_stroke","units":"swim_stroke" },
    { "message":"length","num":9,"name":"avg_swimming_cadence","type":"uint8","units":"strokes/min" },
    { "message":"length","num":10,"name":"event_group","type":"uint8" },
    { "message":"length","num":11,"name":"total_calories","type":"uint16","units":"kcal" },
    { "message":"length","num":12,"name":"length_type","type":"length_type" },
    { "message":"length","num":18,"name":"player_score","type":"uint16" },
    { "message":"length","num":19,"name":"opponent_score","type":"uint16" },
    { "message":"length","num":20,"name":"stroke_count","type":"uint16","array":"[N]","units":"counts" },
    { "message":"length","num":21,"name":"zone_count","type":"uint16","array":"[N]","units":"counts" },
    { "message":"length","num":22,"name":"enhanced_avg_respiration_rate","type":"uint16","scale":100,"units":"Breaths/min" },
    { "message":"length","num":23,"name":"enhanced_max_respiration_rate","type":"uint16","scale":100,"units":"Breaths/min" },
    { "message":"length","num":24,"name":"avg_respiration_rate","type":"uint8" },
    { "message":"length","num":25,"name":"max_respiration_rate","type":"uint8" },
    { "message":"record","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"record","num":0,"name":"position_lat","type":"sint32","units":"semicircles" },
    { "message":"record","num":1,"name":"position_long","type":"sint32","units":"semicircles" },
    { "message":"record","num":2,"name":"altitude","type":"uint16","scale":5,"offset":500,"units":"m" },
    { "message":"record","num":3,"name":"heart_rate","type":"uint8","units":"bpm" },
    { "message":"record","num":4,"name":"cadence","type":"uint8","units":"rpm" },
    { "message":"record","num":5,"name":"distance","type":"uint32","scale":100,"units":"m" },
    { "message":"record","num":6,"name":"speed","type":"uint16","scale":1000,"units":"m/s" },
    { "message":"record","num":7,"name":"power","type":"uint16","units":"watts" },
    { "message":"record","num":9,"name":"grade","type":"sint16","scale":100,"units":"%" },
    { "message":"record","num":10,"name":"resistance","type":"uint8" },
    { "message":"record","num":11,"name":"time_from_course","type":"sint32","scale":1000,"units":"s" },
    { "message":"record","num":12,"name":"cycle_length","type":"uint8","scale":100,"units":"m" },
    { "message":"record","num":13,"name":"temperature","type":"sint8","units":"C" },
    { "message":"record","num":17,"name":"speed_1s","type":"uint8","array":"[N]","scale":16,"units":"m/s" },
    { "message":"record","num":18,"name":"cycles","type":"uint8","units":"cycles" },
    { "message":"record","num":19,"name":"total_cycles","type":"uint32","units":"cycles" },
    { "message":"record","num":28,"name":"compressed_accumulated_power","type":"uint16","units":"watts" },
    { "message":"record","num":29,"name":"accumulated_power","type":"uint32","units":"watts" },
    { "message":"record","num":30,"name":"left_right_balance","type":"left_right_balance" },
    { "message":"record","num":31,"name":"gps_accuracy","type":"uint8","units":"m" },
    { "message":"record","num":32,"name":"vertical_speed","type":"sint16","scale":1000,"units":"m/s" },
    { "message":"record","num":33,"name":"calories","type":"uint16","units":"kcal" },
    { "message":"record","num":39,"name":"vertical_oscillation","type":"uint16","scale":10,"units":"mm" },
    { "message":"record","num":40,"name":"stance_time_percent","type":"uint16","scale":100,"units":"percent" },
    { "message":"record","num":41,"name":"stance_time","type":"uint16","scale":10,"units":"ms" },
    { "message":"record","num":42,"name":"activity_type","type":"activity_type" },
    { "message":"record","num":43,"name":"left_torque_effectiveness","type":"uint8","scale":2,"units":"percent" },
    { "message":"record","num":44,"name":"right_torque_effectiveness","type":"uint8","scale":2,"units":"percent" },
    { "message":"record","num":45,"name":"left_pedal_smoothness","type":"uint8","scale":2,"units":"percent" },
    { "message":"record","num":46,"name":"right_pedal_smoothness","type":"uint8","scale":2,"units":"percent" },
    { "message":"record","num":47,"name":"combined_pedal_smoothness","type":"uint8","scale":2,"units":"percent" },
    { "message":"record","num":48,"name":"time128","type":"uint8","scale":128,"units":"s" },
    { "message":"record","num":49,"name":"stroke_type","type":"stroke_type" },
    { "message":"record","num":50,"name":"zone","type":"uint8" },
    { "message":"record","num":51,"name":"ball_speed","type":"uint16","scale":100,"units":"m/s" },
    { "message":"record","num":52,"name":"cadence256","type":"uint16","scale":256,"units":"rpm" },
    { "message":"record","num":53,"name":"fractional_cadence","type":"uint8","scale":128,"units":"rpm" },
    { "message":"record","num":54,"name":"total_hemoglobin_conc","type":"uint16","scale":100,"units":"g/dL" },
    { "message":"record","num":55,"name":"total_hemoglobin_conc_min","type":"uint16","scale":100,"units":"g/dL" },
    { "message":"record","num":56,"name":"total_hemoglobin_conc_max","type":"uint16","scale":100,"units":"g/dL" },
    { "message":"record","num":57,"name":"saturated_hemoglobin_percent","type":"uint16","scale":10,"units":"%" },
    { "message":"record","num":58,"name":"saturated_hemoglobin_percent_min","type":"uint16","scale":10,"units":"%" },
    { "message":"record","num":59,"name":"saturated_hemoglobin_percent_max","type":"uint16","scale":10,"units":"%" },
    { "message":"record","num":62,"name":"device_index","type":"device_index" },
    { "message":"record","num":67,"name":"left_pco","type":"sint8","units":"mm" },
    { "message":"record","num":68,"name":"right_pco","type":"sint8","units":"mm" },
    { "message":"record","num":69,"name":"left_power_phase","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"record","num":70,"name":"left_power_phase_peak","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"record","num":71,"name":"right_power_phase","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"record","num":72,"name":"right_power_phase_peak","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"record","num":73,"name":"enhanced_speed","type":"uint32","scale":1000,"units":"m/s" },
    { "message":"record","num":78,"name":"enhanced_altitude","type":"uint32","scale":5,"offset":500,"units":"m" },
    { "message":"record","num":81,"name":"battery_soc","type":"uint8","scale":2,"units":"percent" },
    { "message":"record","num":82,"name":"motor_power","type":"uint16","units":"watts" },
    { "message":"record","num":83,"name":"vertical_ratio","type":"uint16","scale":100,"units":"percent" },
    { "message":"record","num":84,"name":"stance_time_balance","type":"uint16","scale":100,"units":"percent" },
    { "message":"record","num":85,"name":"step_length","type":"uint16","scale":10,"units":"mm" },
    { "message":"record","num":87,"name":"cycle_length16","type":"uint16","scale":100,"units":"m" },
    { "message":"record","num":91,"name":"absolute_pressure","type":"uint32","units":"Pa" },
    { "message":"record","num":92,"name":"depth","type":"uint32","scale":1000,"units":"m" },
    { "message":"record","num":93,"name":"next_stop_depth","type":"uint32","scale":1000,"units":"m" },
    { "message":"record","num":94,"name":"next_stop_time","type":"uint32","scale":1,"units":"s" },
    { "message":"record","num":95,"name":"time_to_surface","type":"uint32","scale":1,"units":"s" },
    { "message":"record","num":96,"name":"ndl_time","type":"uint32","scale":1,"units":"s" },
    { "message":"record","num":97,"name":"cns_load","type":"uint8","units":"percent" },
    { "message":"record","num":98,"name":"n2_load","type":"uint16","scale":1,"units":"percent" },
    { "message":"record","num":99,"name":"respiration_rate","type":"uint8","scale":1,"units":"s" },
    { "message":"record","num":108,"name":"enhanced_respiration_rate","type":"uint16","scale":100,"units":"Breaths/min" },
    { "message":"record","num":114,"name":"grit","type":"float32" },
    { "message":"record","num":115,"name":"flow","type":"float32" },
    { "message":"record","num":116,"name":"current_stress","type":"uint16","scale":100 },
    { "message":"record","num":117,"name":"ebike_travel_range","type":"uint16","units":"km" },
    { "message":"record","num":118,"name":"ebike_battery_level","type":"uint8","units":"percent" },
    { "message":"record","num":119,"name":"ebike_assist_mode","type":"uint8","units":"depends on sensor" },
    { "message":"record","num":120,"name":"ebike_assist_level_percent","type":"uint8","units":"percent" },
    { "message":"record","num":123,"name":"air_time_remaining","type":"uint32","units":"s" },
    { "message":"record","num":124,"name":"pressure_sac","type":"uint16","scale":100,"units":"bar/min" },
    { "message":"record","num":125,"name":"volume_sac","type":"uint16","scale":100,"units":"L/min" },
    { "message":"record","num":126,"name":"rmv","type":"uint16","scale":100,"units":"L/min" },
    { "message":"record","num":127,"name":"ascent_rate","type":"sint32","scale":1000,"units":"m/s" },
    { "message":"record","num":129,"name":"po2","type":"uint8","scale":100,"units":"percent" },
    { "message":"record","num":139,"name":"core_temperature","type":"uint16","scale":100,"units":"C" },
    { "message":"event","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"event","num":0,"name":"event","type":"event" },
    { "message":"event","num":1,"name":"event_type","type":"event_type" },
    { "message":"event","num":2,"name":"data16","type":"uint16" },
    { "message":"event","num":3,"name":"data","type":"uint32" },
    { "message":"event","num":4,"name":"event_group","type":"uint8" },
    { "message":"event","num":7,"name":"score","type":"uint16" },
    { "message":"event","num":8,"name":"opponent_score","type":"uint16" },
    { "message":"event","num":9,"name":"front_gear_num","type":"uint8z" },
    { "message":"event","num":10,"name":"front_gear","type":"uint8z" },
    { "message":"event","num":11,"name":"rear_gear_num","type":"uint8z" },
    { "message":"event","num":12,"name":"rear_gear","type":"uint8z" },
    { "message":"event","num":13,"name":"device_index","type":"device_index" },
    { "message":"event","num":14,"name":"activity_type","type":"activity_type" },
    { "message":"event","num":15,"name":"start_timestamp","type":"date_time","units":"s" },
    { "message":"event","num":21,"name":"radar_threat_level_max","type":"radar_threat_level_type" },
    { "message":"event","num":22,"name":"radar_threat_count","type":"uint8" },
    { "message":"event","num":23,"name":"radar_threat_avg_approach_speed","type":"uint8","scale":10,"units":"m/s" },
    { "message":"event","num":24,"name":"radar_threat_max_approach_speed","type":"uint8","scale":10,"units":"m/s" },
    { "message":"device_info","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"device_info","num":0,"name":"device_index","type":"device_index" },
    { "message":"device_info","num":1,"name":"device_type","type":"uint8" },
    { "message":"device_info","num":2,"name":"manufacturer","type":"manufacturer" },
    { "message":"device_info","num":3,"name":"serial_number","type":"uint32z" },
    { "message":"device_info","num":4,"name":"product","type":"uint16" },
    { "message":"device_info","num":5,"name":"software_version","type":"uint16","scale":100 },
    { "message":"device_info","num":6,"name":"hardware_version","type":"uint8" },
    { "message":"device_info","num":7,"name":"cum_operating_time","type":"uint32","units":"s" },
    { "message":"device_info","num":10,"name":"battery_voltage","type":"uint16","scale":256,"units":"V" },
    { "message":"device_info","num":11,"name":"battery_status","type":"battery_status" },
    { "message":"device_info","num":18,"name":"sensor_position","type":"body_location" },
    { "message":"device_info","num":19,"name":"descriptor","type":"string" },
    { "message":"device_info","num":20,"name":"ant_transmission_type","type":"uint8z" },
    { "message":"device_info","num":21,"name":"ant_device_number","type":"uint16z" },
    { "message":"device_info","num":22,"name":"ant_network","type":"ant_network" },
    { "message":"device_info","num":25,"name":"source_type","type":"source_type" },
    { "message":"device_info","num":27,"name":"product_name","type":"string" },
    { "message":"device_info","num":32,"name":"battery_level","type":"uint8","units":"%" },
    { "message":"device_aux_battery_info","num":253,"name":"timestamp","type":"date_time" },
    { "message":"device_aux_battery_info","num":0,"name":"device_index","type":"device_index" },
    { "message":"device_aux_battery_info","num":1,"name":"battery_voltage","type":"uint16","scale":256,"units":"V" },
    { "message":"device_aux_battery_info","num":2,"name":"battery_status","type":"battery_status" },
    { "message":"device_aux_battery_info","num":3,"name":"battery_identifier","type":"uint8" },
    { "message":"training_file","num":253,"name":"timestamp","type":"date_time" },
    { "message":"training_file","num":0,"name":"type","type":"file" },
    { "message":"training_file","num":1,"name":"manufacturer","type":"manufacturer" },
    { "message":"training_file","num":2,"name":"product","type":"uint16" },
    { "message":"training_file","num":3,"name":"serial_number","type":"uint32z" },
    { "message":"training_file","num":4,"name":"time_created","type":"date_time" },
    { "message":"weather_conditions","num":253,"name":"timestamp","type":"date_time" },
    { "message":"weather_conditions","num":0,"name":"weather_report","type":"weather_report" },
    { "message":"weather_conditions","num":1,"name":"temperature","type":"sint8","units":"C" },
    { "message":"weather_conditions","num":2,"name":"condition","type":"weather_status" },
    { "message":"weather_conditions","num":3,"name":"wind_direction","type":"uint16","units":"degrees" },
    { "message":"weather_conditions","num":4,"name":"wind_speed","type":"uint16","scale":1000,"units":"m/s" },
    { "message":"weather_conditions","num":5,"name":"precipitation_probability","type":"uint8" },
    { "message":"weather_conditions","num":6,"name":"temperature_feels_like","type":"sint8","units":"C" },
    { "message":"weather_conditions","num":7,"name":"relative_humidity","type":"uint8" },
    { "message":"weather_conditions","num":8,"name":"location","type":"string" },
    { "message":"weather_conditions","num":9,"name":"observed_at_time","type":"date_time" },
    { "message":"weather_conditions","num":10,"name":"observed_location_lat","type":"sint32","units":"semicircles" },
    { "message":"weather_conditions","num":11,"name":"observed_location_long","type":"sint32","units":"semicircles" },
    { "message":"weather_conditions","num":12,"name":"day_of_week","type":"day_of_week" },
    { "message":"weather_conditions","num":13,"name":"high_temperature","type":"sint8","units":"C" },
    { "message":"weather_conditions","num":14,"name":"low_temperature","type":"sint8","units":"C" },
    { "message":"weather_alert","num":253,"name":"timestamp","type":"date_time" },
    { "message":"weather_alert","num":0,"name":"report_id","type":"string" },
    { "message":"weather_alert","num":1,"name":"issue_time","type":"date_time" },
    { "message":"weather_alert","num":2,"name":"expire_time","type":"date_time" },
    { "message":"weather_alert","num":3,"name":"severity","type":"weather_severity" },
    { "message":"weather_alert","num":4,"name":"type","type":"weather_severe_type" },
    { "message":"gps_metadata","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"gps_metadata","num":0,"name":"timestamp_ms","type":"uint16","units":"ms" },
    { "message":"gps_metadata","num":1,"name":"position_lat","type":"sint32","units":"semicircles" },
    { "message":"gps_metadata","num":2,"name":"position_long","type":"sint32","units":"semicircles" },
    { "message":"gps_metadata","num":3,"name":"enhanced_altitude","type":"uint32","scale":5,"offset":500,"units":"m" },
    { "message":"gps_metadata","num":4,"name":"enhanced_speed","type":"uint32","scale":1000,"units":"m/s" },
    { "message":"gps_metadata","num":5,"name":"heading","type":"uint16","scale":100,"units":"degrees" },
    { "message":"gps_metadata","num":6,"name":"utc_timestamp","type":"date_time","units":"s" },
    { "message":"gps_metadata","num":7,"name":"velocity","type":"sint16","array":"[3]","scale":100,"units":"m/s" },
    { "message":"camera_event","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"camera_event","num":0,"name":"timestamp_ms","type":"uint16","units":"ms" },
    { "message":"camera_event","num":1,"name":"camera_event_type","type":"camera_event_type" },
    { "message":"camera_event","num":2,"name":"camera_file_uuid","type":"string" },
    { "message":"camera_event","num":3,"name":"camera_orientation","type":"camera_orientation_type" },
    { "message":"gyroscope_data","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"gyroscope_data","num":0,"name":"timestamp_ms","type":"uint16","units":"ms" },
    { "message":"gyroscope_data","num":1,"name":"sample_time_offset","type":"uint16","array":"[N]","units":"ms" },
    { "message":"gyroscope_data","num":2,"name":"gyro_x","type":"uint16","array":"[N]","units":"counts" },
    { "message":"gyroscope_data","num":3,"name":"gyro_y","type":"uint16","array":"[N]","units":"counts" },
    { "message":"gyroscope_data","num":4,"name":"gyro_z","type":"uint16","array":"[N]","units":"counts" },
    { "message":"gyroscope_data","num":5,"name":"calibrated_gyro_x","type":"float32","array":"[N]","units":"deg/s" },
    { "message":"gyroscope_data","num":6,"name":"calibrated_gyro_y","type":"float32","array":"[N]","units":"deg/s" },
    { "message":"gyroscope_data","num":7,"name":"calibrated_gyro_z","type":"float32","array":"[N]","units":"deg/s" },
    { "message":"accelerometer_data","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"accelerometer_data","num":0,"name":"timestamp_ms","type":"uint16","units":"ms" },
    { "message":"accelerometer_data","num":1,"name":"sample_time_offset","type":"uint16","array":"[N]","units":"ms" },
    { "message":"accelerometer_data","num":2,"name":"accel_x","type":"uint16","array":"[N]","units":"counts" },
    { "message":"accelerometer_data","num":3,"name":"accel_y","type":"uint16","array":"[N]","units":"counts" },
    { "message":"accelerometer_data","num":4,"name":"accel_z","type":"uint16","array":"[N]","units":"counts" },
    { "message":"accelerometer_data","num":5,"name":"calibrated_accel_x","type":"float32","array":"[N]","units":"g" },
    { "message":"accelerometer_data","num":6,"name":"calibrated_accel_y","type":"float32","array":"[N]","units":"g" },
    { "message":"accelerometer_data","num":7,"name":"calibrated_accel_z","type":"float32","array":"[N]","units":"g" },
    { "message":"accelerometer_data","num":8,"name":"compressed_calibrated_accel_x","type":"sint16","array":"[N]","units":"mG" },
    { "message":"accelerometer_data","num":9,"name":"compressed_calibrated_accel_y","type":"sint16","array":"[N]","units":"mG" },
    { "message":"accelerometer_data","num":10,"name":"compressed_calibrated_accel_z","type":"sint16","array":"[N]","units":"mG" },
    { "message":"magnetometer_data","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"magnetometer_data","num":0,"name":"timestamp_ms","type":"uint16","units":"ms" },
    { "message":"magnetometer_data","num":1,"name":"sample_time_offset","type":"uint16","array":"[N]","units":"ms" },
    { "message":"magnetometer_data","num":2,"name":"mag_x","type":"uint16","array":"[N]","units":"counts" },
    { "message":"magnetometer_data","num":3,"name":"mag_y","type":"uint16","array":"[N]","units":"counts" },
    { "message":"magnetometer_data","num":4,"name":"mag_z","type":"uint16","array":"[N]","units":"counts" },
    { "message":"magnetometer_data","num":5,"name":"calibrated_mag_x","type":"float32","array":"[N]","units":"G" },
    { "message":"magnetometer_data","num":6,"name":"calibrated_mag_y","type":"float32","array":"[N]","units":"G" },
    { "message":"magnetometer_data","num":7,"name":"calibrated_mag_z","type":"float32","array":"[N]","units":"G" },
    { "message":"barometer_data","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"barometer_data","num":0,"name":"timestamp_ms","type":"uint16","units":"ms" },
    { "message":"barometer_data","num":1,"name":"sample_time_offset","type":"uint16","array":"[N]","units":"ms" },
    { "message":"barometer_data","num":2,"name":"baro_pres","type":"uint32","array":"[N]","units":"Pa" },
    { "message":"three_d_sensor_calibration","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"three_d_sensor_calibration","num":0,"name":"sensor_type","type":"sensor_type" },
    { "message":"three_d_sensor_calibration","num":1,"name":"calibration_factor","type":"uint32" },
    { "message":"three_d_sensor_calibration","name":"accel_cal_factor","type":"uint32","units":"g" },
    { "message":"three_d_sensor_calibration","name":"gyro_cal_factor","type":"uint32","units":"deg/s" },
    { "message":"three_d_sensor_calibration","num":2,"name":"calibration_divisor","type":"uint32","units":"counts" },
    { "message":"three_d_sensor_calibration","num":3,"name":"level_shift","type":"uint32" },
    { "message":"three_d_sensor_calibration","num":4,"name":"offset_cal","type":"sint32","array":"[3]" },
    { "message":"three_d_sensor_calibration","num":5,"name":"orientation_matrix","type":"sint32","array":"[9]","scale":65535 },
    { "message":"one_d_sensor_calibration","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"one_d_sensor_calibration","num":0,"name":"sensor_type","type":"sensor_type" },
    { "message":"one_d_sensor_calibration","num":1,"name":"calibration_factor","type":"uint32" },
    { "message":"one_d_sensor_calibration","name":"baro_cal_factor","type":"uint32","units":"Pa" },
    { "message":"one_d_sensor_calibration","num":2,"name":"calibration_divisor","type":"uint32","units":"counts" },
    { "message":"one_d_sensor_calibration","num":3,"name":"level_shift","type":"uint32" },
    { "message":"one_d_sensor_calibration","num":4,"name":"offset_cal","type":"sint32" },
    { "message":"video_frame","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"video_frame","num":0,"name":"timestamp_ms","type":"uint16","units":"ms" },
    { "message":"video_frame","num":1,"name":"frame_number","type":"uint32" },
    { "message":"obdii_data","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"obdii_data","num":0,"name":"timestamp_ms","type":"uint16","units":"ms" },
    { "message":"obdii_data","num":1,"name":"time_offset","type":"uint16","array":"[N]","units":"ms" },
    { "message":"obdii_data","num":2,"name":"pid","type":"byte" },
    { "message":"obdii_data","num":3,"name":"raw_data","type":"byte","array":"[N]" },
    { "message":"obdii_data","num":4,"name":"pid_data_size","type":"uint8","array":"[N]" },
    { "message":"obdii_data","num":5,"name":"system_time","type":"uint32","array":"[N]" },
    { "message":"obdii_data","num":6,"name":"start_timestamp","type":"date_time" },
    { "message":"obdii_data","num":7,"name":"start_timestamp_ms","type":"uint16","units":"ms" },
    { "message":"nmea_sentence","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"nmea_sentence","num":0,"name":"timestamp_ms","type":"uint16","units":"ms" },
    { "message":"nmea_sentence","num":1,"name":"sentence","type":"string" },
    { "message":"aviation_attitude","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"aviation_attitude","num":0,"name":"timestamp_ms","type":"uint16","units":"ms" },
    { "message":"aviation_attitude","num":1,"name":"system_time","type":"uint32","array":"[N]","units":"ms" },
    { "message":"aviation_attitude","num":2,"name":"pitch","type":"sint16","array":"[N]","scale":10430.38,"units":"radians" },
    { "message":"aviation_attitude","num":3,"name":"roll","type":"sint16","array":"[N]","scale":10430.38,"units":"radians" },
    { "message":"aviation_attitude","num":4,"name":"accel_lateral","type":"sint16","array":"[N]","scale":100,"units":"m/s^2" },
    { "message":"aviation_attitude","num":5,"name":"accel_normal","type":"sint16","array":"[N]","scale":100,"units":"m/s^2" },
    { "message":"aviation_attitude","num":6,"name":"turn_rate","type":"sint16","array":"[N]","scale":1024,"units":"radians/second" },
    { "message":"aviation_attitude","num":7,"name":"stage","type":"attitude_stage","array":"[N]" },
    { "message":"aviation_attitude","num":8,"name":"attitude_stage_complete","type":"uint8","array":"[N]","units":"%" },
    { "message":"aviation_attitude","num":9,"name":"track","type":"uint16","array":"[N]","scale":10430.38,"units":"radians" },
    { "message":"aviation_attitude","num":10,"name":"validity","type":"attitude_validity","array":"[N]" },
    { "message":"video","num":0,"name":"url","type":"string" },
    { "message":"video","num":1,"name":"hosting_provider","type":"string" },
    { "message":"video","num":2,"name":"duration","type":"uint32","units":"ms" },
    { "message":"video_title","num":254,"name":"message_index","type":"message_index" },
    { "message":"video_title","num":0,"name":"message_count","type":"uint16" },
    { "message":"video_title","num":1,"name":"text","type":"string" },
    { "message":"video_description","num":254,"name":"message_index","type":"message_index" },
    { "message":"video_description","num":0,"name":"message_count","type":"uint16" },
    { "message":"video_description","num":1,"name":"text","type":"string" },
    { "message":"video_clip","num":0,"name":"clip_number","type":"uint16" },
    { "message":"video_clip","num":1,"name":"start_timestamp","type":"date_time" },
    { "message":"video_clip","num":2,"name":"start_timestamp_ms","type":"uint16" },
    { "message":"video_clip","num":3,"name":"end_timestamp","type":"date_time" },
    { "message":"video_clip","num":4,"name":"end_timestamp_ms","type":"uint16" },
    { "message":"video_clip","num":6,"name":"clip_start","type":"uint32","units":"ms" },
    { "message":"video_clip","num":7,"name":"clip_end","type":"uint32","units":"ms" },
    { "message":"set","num":254,"name":"timestamp","type":"date_time" },
    { "message":"set","num":0,"name":"duration","type":"uint32","scale":1000,"units":"s" },
    { "message":"set","num":3,"name":"repetitions","type":"uint16" },
    { "message":"set","num":4,"name":"weight","type":"uint16","scale":16,"units":"kg" },
    { "message":"set","num":5,"name":"set_type","type":"set_type" },
    { "message":"set","num":6,"name":"start_time","type":"date_time" },
    { "message":"set","num":7,"name":"category","type":"exercise_category","array":"[N]" },
    { "message":"set","num":8,"name":"category_subtype","type":"uint16","array":"[N]" },
    { "message":"set","num":9,"name":"weight_display_unit","type":"fit_base_unit" },
    { "message":"set","num":10,"name":"message_index","type":"message_index" },
    { "message":"set","num":11,"name":"wkt_step_index","type":"message_index" },
    { "message":"jump","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"jump","num":0,"name":"distance","type":"float32","units":"m" },
    { "message":"jump","num":1,"name":"height","type":"float32","units":"m" },
    { "message":"jump","num":2,"name":"rotations","type":"uint8" },
    { "message":"jump","num":3,"name":"hang_time","type":"float32","units":"s" },
    { "message":"jump","num":4,"name":"score","type":"float32" },
    { "message":"jump","num":5,"name":"position_lat","type":"sint32","units":"semicircles" },
    { "message":"jump","num":6,"name":"position_long","type":"sint32","units":"semicircles" },
    { "message":"jump","num":7,"name":"speed","type":"uint16","scale":1000,"units":"m/s" },
    { "message":"jump","num":8,"name":"enhanced_speed","type":"uint32","scale":1000,"units":"m/s" },
    { "message":"split","num":0,"name":"split_type","type":"split_type" },
    { "message":"split","num":1,"name":"total_elapsed_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"split","num":2,"name":"total_timer_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"split","num":3,"name":"total_distance","type":"uint32","scale":100,"units":"m" },
    { "message":"split","num":9,"name":"start_time","type":"date_time" },
    { "message":"climb_pro","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"climb_pro","num":0,"name":"position_lat","type":"sint32","units":"semicircles" },
    { "message":"climb_pro","num":1,"name":"position_long","type":"sint32","units":"semicircles" },
    { "message":"climb_pro","num":2,"name":"climb_pro_event","type":"climb_pro_event" },
    { "message":"climb_pro","num":3,"name":"climb_number","type":"uint16" },
    { "message":"climb_pro","num":4,"name":"climb_category","type":"uint8" },
    { "message":"climb_pro","num":5,"name":"current_dist","type":"float32","units":"m" },
    { "message":"field_description","num":0,"name":"developer_data_index","type":"uint8" },
    { "message":"field_description","num":1,"name":"field_definition_number","type":"uint8" },
    { "message":"field_description","num":2,"name":"fit_base_type_id","type":"fit_base_type" },
    { "message":"field_description","num":3,"name":"field_name","type":"string","array":"[N]" },
    { "message":"field_description","num":4,"name":"array","type":"uint8" },
    { "message":"field_description","num":5,"name":"components","type":"string" },
    { "message":"field_description","num":6,"name":"scale","type":"uint8" },
    { "message":"field_description","num":7,"name":"offset","type":"sint8" },
    { "message":"field_description","num":8,"name":"units","type":"string","array":"[N]" },
    { "message":"field_description","num":9,"name":"bits","type":"string" },
    { "message":"field_description","num":10,"name":"accumulate","type":"string" },
    { "message":"field_description","num":13,"name":"fit_base_unit_id","type":"fit_base_unit" },
    { "message":"field_description","num":14,"name":"native_mesg_num","type":"mesg_num" },
    { "message":"field_description","num":15,"name":"native_field_num","type":"uint8" },
    { "message":"developer_data_id","num":0,"name":"developer_id","type":"byte","array":"[N]" },
    { "message":"developer_data_id","num":1,"name":"application_id","type":"byte","array":"[N]" },
    { "message":"developer_data_id","num":2,"name":"manufacturer_id","type":"manufacturer" },
    { "message":"developer_data_id","num":3,"name":"developer_data_index","type":"uint8" },
    { "message":"developer_data_id","num":4,"name":"application_version","type":"uint32" },
    { "message":"course","num":4,"name":"sport","type":"sport" },
    { "message":"course","num":5,"name":"name","type":"string" },
    { "message":"course","num":6,"name":"capabilities","type":"course_capabilities" },
    { "message":"course","num":7,"name":"sub_sport","type":"sub_sport" },
    { "message":"course_point","num":254,"name":"message_index","type":"message_index" },
    { "message":"course_point","num":1,"name":"timestamp","type":"date_time" },
    { "message":"course_point","num":2,"name":"position_lat","type":"sint32","units":"semicircles" },
    { "message":"course_point","num":3,"name":"position_long","type":"sint32","units":"semicircles" },
    { "message":"course_point","num":4,"name":"distance","type":"uint32","scale":100,"units":"m" },
    { "message":"course_point","num":5,"name":"type","type":"course_point" },
    { "message":"course_point","num":6,"name":"name","type":"string" },
    { "message":"course_point","num":8,"name":"favorite","type":"bool" },
    { "message":"segment_id","num":0,"name":"name","type":"string" },
    { "message":"segment_id","num":1,"name":"uuid","type":"string" },
    { "message":"segment_id","num":2,"name":"sport","type":"sport" },
    { "message":"segment_id","num":3,"name":"enabled","type":"bool" },
    { "message":"segment_id","num":4,"name":"user_profile_primary_key","type":"uint32" },
    { "message":"segment_id","num":5,"name":"device_id","type":"uint32" },
    { "message":"segment_id","num":6,"name":"default_race_leader","type":"uint8" },
    { "message":"segment_id","num":7,"name":"delete_status","type":"segment_delete_status" },
    { "message":"segment_id","num":8,"name":"selection_type","type":"segment_selection_type" },
    { "message":"segment_leaderboard_entry","num":254,"name":"message_index","type":"message_index" },
    { "message":"segment_leaderboard_entry","num":0,"name":"name","type":"string" },
    { "message":"segment_leaderboard_entry","num":1,"name":"type","type":"segment_leaderboard_type" },
    { "message":"segment_leaderboard_entry","num":2,"name":"group_primary_key","type":"uint32" },
    { "message":"segment_leaderboard_entry","num":3,"name":"activity_id","type":"uint32" },
    { "message":"segment_leaderboard_entry","num":4,"name":"segment_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"segment_leaderboard_entry","num":5,"name":"activity_id_string","type":"string" },
    { "message":"segment_point","num":254,"name":"message_index","type":"message_index" },
    { "message":"segment_point","num":1,"name":"position_lat","type":"sint32","units":"semicircles" },
    { "message":"segment_point","num":2,"name":"position_long","type":"sint32","units":"semicircles" },
    { "message":"segment_point","num":3,"name":"distance","type":"uint32","scale":100,"units":"m" },
    { "message":"segment_point","num":4,"name":"altitude","type":"uint16","scale":5,"offset":500,"units":"m" },
    { "message":"segment_point","num":5,"name":"leader_time","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"segment_point","num":6,"name":"enhanced_altitude","type":"uint32","scale":5,"offset":500,"units":"m" },
    { "message":"segment_lap","num":254,"name":"message_index","type":"message_index" },
    { "message":"segment_lap","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"segment_lap","num":0,"name":"event","type":"event" },
    { "message":"segment_lap","num":1,"name":"event_type","type":"event_type" },
    { "message":"segment_lap","num":2,"name":"start_time","type":"date_time" },
    { "message":"segment_lap","num":3,"name":"start_position_lat","type":"sint32","units":"semicircles" },
    { "message":"segment_lap","num":4,"name":"start_position_long","type":"sint32","units":"semicircles" },
    { "message":"segment_lap","num":5,"name":"end_position_lat","type":"sint32","units":"semicircles" },
    { "message":"segment_lap","num":6,"name":"end_position_long","type":"sint32","units":"semicircles" },
    { "message":"segment_lap","num":7,"name":"total_elapsed_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"segment_lap","num":8,"name":"total_timer_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"segment_lap","num":9,"name":"total_distance","type":"uint32","scale":100,"units":"m" },
    { "message":"segment_lap","num":10,"name":"total_cycles","type":"uint32","units":"cycles" },
    { "message":"segment_lap","num":11,"name":"total_calories","type":"uint16","units":"kcal" },
    { "message":"segment_lap","num":12,"name":"total_fat_calories","type":"uint16","units":"kcal" },
    { "message":"segment_lap","num":13,"name":"avg_speed","type":"uint16","scale":1000,"units":"m/s" },
    { "message":"segment_lap","num":14,"name":"max_speed","type":"uint16","scale":1000,"units":"m/s" },
    { "message":"segment_lap","num":15,"name":"avg_heart_rate","type":"uint8","units":"bpm" },
    { "message":"segment_lap","num":16,"name":"max_heart_rate","type":"uint8","units":"bpm" },
    { "message":"segment_lap","num":17,"name":"avg_cadence","type":"uint8","units":"rpm" },
    { "message":"segment_lap","num":18,"name":"max_cadence","type":"uint8","units":"rpm" },
    { "message":"segment_lap","num":19,"name":"avg_power","type":"uint16","units":"watts" },
    { "message":"segment_lap","num":20,"name":"max_power","type":"uint16","units":"watts" },
    { "message":"segment_lap","num":21,"name":"total_ascent","type":"uint16","units":"m" },
    { "message":"segment_lap","num":22,"name":"total_descent","type":"uint16","units":"m" },
    { "message":"segment_lap","num":23,"name":"sport","type":"sport" },
    { "message":"segment_lap","num":24,"name":"event_group","type":"uint8" },
    { "message":"segment_lap","num":25,"name":"nec_lat","type":"sint32","units":"semicircles" },
    { "message":"segment_lap","num":26,"name":"nec_long","type":"sint32","units":"semicircles" },
    { "message":"segment_lap","num":27,"name":"swc_lat","type":"sint32","units":"semicircles" },
    { "message":"segment_lap","num":28,"name":"swc_long","type":"sint32","units":"semicircles" },
    { "message":"segment_lap","num":29,"name":"name","type":"string" },
    { "message":"segment_lap","num":30,"name":"normalized_power","type":"uint16","units":"watts" },
    { "message":"segment_lap","num":31,"name":"left_right_balance","type":"left_right_balance_100" },
    { "message":"segment_lap","num":32,"name":"sub_sport","type":"sub_sport" },
    { "message":"segment_lap","num":33,"name":"total_work","type":"uint32","units":"J" },
    { "message":"segment_lap","num":34,"name":"avg_altitude","type":"uint16","scale":5,"offset":500,"units":"m" },
    { "message":"segment_lap","num":35,"name":"max_altitude","type":"uint16","scale":5,"offset":500,"units":"m" },
    { "message":"segment_lap","num":36,"name":"gps_accuracy","type":"uint8","units":"m" },
    { "message":"segment_lap","num":37,"name":"avg_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"segment_lap","num":38,"name":"avg_pos_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"segment_lap","num":39,"name":"avg_neg_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"segment_lap","num":40,"name":"max_pos_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"segment_lap","num":41,"name":"max_neg_grade","type":"sint16","scale":100,"units":"%" },
    { "message":"segment_lap","num":42,"name":"avg_temperature","type":"sint8","units":"C" },
    { "message":"segment_lap","num":43,"name":"max_temperature","type":"sint8","units":"C" },
    { "message":"segment_lap","num":44,"name":"total_moving_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"segment_lap","num":45,"name":"avg_pos_vertical_speed","type":"sint16","scale":1000,"units":"m/s" },
    { "message":"segment_lap","num":46,"name":"avg_neg_vertical_speed","type":"sint16","scale":1000,"units":"m/s" },
    { "message":"segment_lap","num":47,"name":"max_pos_vertical_speed","type":"sint16","scale":1000,"units":"m/s" },
    { "message":"segment_lap","num":48,"name":"max_neg_vertical_speed","type":"sint16","scale":1000,"units":"m/s" },
    { "message":"segment_lap","num":49,"name":"time_in_hr_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"segment_lap","num":50,"name":"time_in_speed_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"segment_lap","num":51,"name":"time_in_cadence_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"segment_lap","num":52,"name":"time_in_power_zone","type":"uint32","array":"[N]","scale":1000,"units":"s" },
    { "message":"segment_lap","num":53,"name":"repetition_num","type":"uint16" },
    { "message":"segment_lap","num":54,"name":"min_altitude","type":"uint16","scale":5,"offset":500,"units":"m" },
    { "message":"segment_lap","num":55,"name":"min_heart_rate","type":"uint8","units":"bpm" },
    { "message":"segment_lap","num":56,"name":"active_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"segment_lap","num":57,"name":"wkt_step_index","type":"message_index" },
    { "message":"segment_lap","num":58,"name":"sport_event","type":"sport_event" },
    { "message":"segment_lap","num":59,"name":"avg_left_torque_effectiveness","type":"uint8","scale":2,"units":"percent" },
    { "message":"segment_lap","num":60,"name":"avg_right_torque_effectiveness","type":"uint8","scale":2,"units":"percent" },
    { "message":"segment_lap","num":61,"name":"avg_left_pedal_smoothness","type":"uint8","scale":2,"units":"percent" },
    { "message":"segment_lap","num":62,"name":"avg_right_pedal_smoothness","type":"uint8","scale":2,"units":"percent" },
    { "message":"segment_lap","num":63,"name":"avg_combined_pedal_smoothness","type":"uint8","scale":2,"units":"percent" },
    { "message":"segment_lap","num":64,"name":"status","type":"segment_lap_status" },
    { "message":"segment_lap","num":65,"name":"uuid","type":"string" },
    { "message":"segment_lap","num":66,"name":"avg_fractional_cadence","type":"uint8","scale":128,"units":"rpm" },
    { "message":"segment_lap","num":67,"name":"max_fractional_cadence","type":"uint8","scale":128,"units":"rpm" },
    { "message":"segment_lap","num":68,"name":"total_fractional_cycles","type":"uint8","scale":128,"units":"cycles" },
    { "message":"segment_lap","num":69,"name":"front_gear_shift_count","type":"uint16" },
    { "message":"segment_lap","num":70,"name":"rear_gear_shift_count","type":"uint16" },
    { "message":"segment_lap","num":71,"name":"time_standing","type":"uint32","scale":1000,"units":"s" },
    { "message":"segment_lap","num":72,"name":"stand_count","type":"uint16" },
    { "message":"segment_lap","num":73,"name":"avg_left_pco","type":"sint8","units":"mm" },
    { "message":"segment_lap","num":74,"name":"avg_right_pco","type":"sint8","units":"mm" },
    { "message":"segment_lap","num":75,"name":"avg_left_power_phase","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"segment_lap","num":76,"name":"avg_left_power_phase_peak","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"segment_lap","num":77,"name":"avg_right_power_phase","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"segment_lap","num":78,"name":"avg_right_power_phase_peak","type":"uint8","array":"[N]","scale":"0.7111111","units":"degrees" },
    { "message":"segment_lap","num":79,"name":"avg_power_position","type":"uint16","array":"[N]","units":"watts" },
    { "message":"segment_lap","num":80,"name":"max_power_position","type":"uint16","array":"[N]","units":"watts" },
    { "message":"segment_lap","num":81,"name":"avg_cadence_position","type":"uint8","array":"[N]","units":"rpm" },
    { "message":"segment_lap","num":82,"name":"max_cadence_position","type":"uint8","array":"[N]","units":"rpm" },
    { "message":"segment_lap","num":83,"name":"manufacturer","type":"manufacturer" },
    { "message":"segment_lap","num":84,"name":"total_grit","type":"float32","units":"kGrit" },
    { "message":"segment_lap","num":85,"name":"total_flow","type":"float32","units":"Flow" },
    { "message":"segment_lap","num":86,"name":"avg_grit","type":"float32","units":"kGrit" },
    { "message":"segment_lap","num":87,"name":"avg_flow","type":"float32","units":"Flow" },
    { "message":"segment_lap","num":89,"name":"total_fractional_ascent","type":"uint8","scale":100,"units":"m" },
    { "message":"segment_lap","num":90,"name":"total_fractional_descent","type":"uint8","scale":100,"units":"m" },
    { "message":"segment_lap","num":91,"name":"enhanced_avg_altitude","type":"uint32","scale":5,"offset":500,"units":"m" },
    { "message":"segment_lap","num":92,"name":"enhanced_max_altitude","type":"uint32","scale":5,"offset":500,"units":"m" },
    { "message":"segment_lap","num":93,"name":"enhanced_min_altitude","type":"uint32","scale":5,"offset":500,"units":"m" },
    { "message":"segment_file","num":254,"name":"message_index","type":"message_index" },
    { "message":"segment_file","num":1,"name":"file_uuid","type":"string" },
    { "message":"segment_file","num":3,"name":"enabled","type":"bool" },
    { "message":"segment_file","num":4,"name":"user_profile_primary_key","type":"uint32" },
    { "message":"segment_file","num":7,"name":"leader_type","type":"segment_leaderboard_type","array":"[N]" },
    { "message":"segment_file","num":8,"name":"leader_group_primary_key","type":"uint32","array":"[N]" },
    { "message":"segment_file","num":9,"name":"leader_activity_id","type":"uint32","array":"[N]" },
    { "message":"segment_file","num":10,"name":"leader_activity_id_string","type":"string","array":"[N]" },
    { "message":"segment_file","num":11,"name":"default_race_leader","type":"uint8" },
    { "message":"workout","num":254,"name":"message_index","type":"message_index" },
    { "message":"workout","num":4,"name":"sport","type":"sport" },
    { "message":"workout","num":5,"name":"capabilities","type":"workout_capabilities" },
    { "message":"workout","num":6,"name":"num_valid_steps","type":"uint16" },
    { "message":"workout","num":8,"name":"wkt_name","type":"string" },
    { "message":"workout","num":11,"name":"sub_sport","type":"sub_sport" },
    { "message":"workout","num":14,"name":"pool_length","type":"uint16","scale":100,"units":"m" },
    { "message":"workout","num":15,"name":"pool_length_unit","type":"display_measure" },
    { "message":"workout_session","num":254,"name":"message_index","type":"message_index" },
    { "message":"workout_session","num":0,"name":"sport","type":"sport" },
    { "message":"workout_session","num":1,"name":"sub_sport","type":"sub_sport" },
    { "message":"workout_session","num":2,"name":"num_valid_steps","type":"uint16" },
    { "message":"workout_session","num":3,"name":"first_step_index","type":"uint16" },
    { "message":"workout_session","num":4,"name":"pool_length","type":"uint16","scale":100,"units":"m" },
    { "message":"workout_session","num":5,"name":"pool_length_unit","type":"display_measure" },
    { "message":"workout_step","num":254,"name":"message_index","type":"message_index" },
    { "message":"workout_step","num":0,"name":"wkt_step_name","type":"string" },
    { "message":"workout_step","num":1,"name":"duration_type","type":"wkt_step_duration" },
    { "message":"workout_step","num":2,"name":"duration_value","type":"uint32" },
    { "message":"workout_step","num":3,"name":"target_type","type":"wkt_step_target" },
    { "message":"workout_step","num":4,"name":"target_value","type":"uint32" },
    { "message":"workout_step","num":5,"name":"custom_target_value_low","type":"uint32" },
    { "message":"workout_step","num":6,"name":"custom_target_value_high","type":"uint32" },
    { "message":"workout_step","num":7,"name":"intensity","type":"intensity" },
    { "message":"workout_step","num":8,"name":"notes","type":"string" },
    { "message":"workout_step","num":9,"name":"equipment","type":"workout_equipment" },
    { "message":"workout_step","num":10,"name":"exercise_category","type":"exercise_category" },
    { "message":"workout_step","num":11,"name":"exercise_name","type":"uint16" },
    { "message":"workout_step","num":12,"name":"exercise_weight","type":"uint16","scale":100,"units":"kg" },
    { "message":"workout_step","num":13,"name":"weight_display_unit","type":"fit_base_unit" },
    { "message":"workout_step","num":19,"name":"secondary_target_type","type":"wkt_step_target" },
    { "message":"workout_step","num":20,"name":"secondary_target_value","type":"uint32" },
    { "message":"workout_step","num":21,"name":"secondary_custom_target_value_low","type":"uint32" },
    { "message":"workout_step","num":22,"name":"secondary_custom_target_value_high","type":"uint32" },
    { "message":"exercise_title","num":254,"name":"message_index","type":"message_index" },
    { "message":"exercise_title","num":0,"name":"exercise_category","type":"exercise_category" },
    { "message":"exercise_title","num":1,"name":"exercise_name","type":"uint16" },
    { "message":"exercise_title","num":2,"name":"wkt_step_name","type":"string","array":"[N]" },
    { "message":"schedule","num":0,"name":"manufacturer","type":"manufacturer" },
    { "message":"schedule","num":1,"name":"product","type":"uint16" },
    { "message":"schedule","num":2,"name":"serial_number","type":"uint32z" },
    { "message":"schedule","num":3,"name":"time_created","type":"date_time" },
    { "message":"schedule","num":4,"name":"completed","type":"bool" },
    { "message":"schedule","num":5,"name":"type","type":"schedule" },
    { "message":"schedule","num":6,"name":"scheduled_time","type":"local_date_time" },
    { "message":"totals","num":254,"name":"message_index","type":"message_index" },
    { "message":"totals","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"totals","num":0,"name":"timer_time","type":"uint32","units":"s" },
    { "message":"totals","num":1,"name":"distance","type":"uint32","units":"m" },
    { "message":"totals","num":2,"name":"calories","type":"uint32","units":"kcal" },
    { "message":"totals","num":3,"name":"sport","type":"sport" },
    { "message":"totals","num":4,"name":"elapsed_time","type":"uint32","units":"s" },
    { "message":"totals","num":5,"name":"sessions","type":"uint16" },
    { "message":"totals","num":6,"name":"active_time","type":"uint32","units":"s" },
    { "message":"totals","num":9,"name":"sport_index","type":"uint8" },
    { "message":"weight_scale","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"weight_scale","num":0,"name":"weight","type":"weight","scale":100,"units":"kg" },
    { "message":"weight_scale","num":1,"name":"percent_fat","type":"uint16","scale":100,"units":"%" },
    { "message":"weight_scale","num":2,"name":"percent_hydration","type":"uint16","scale":100,"units":"%" },
    { "message":"weight_scale","num":3,"name":"visceral_fat_mass","type":"uint16","scale":100,"units":"kg" },
    { "message":"weight_scale","num":4,"name":"bone_mass","type":"uint16","scale":100,"units":"kg" },
    { "message":"weight_scale","num":5,"name":"muscle_mass","type":"uint16","scale":100,"units":"kg" },
    { "message":"weight_scale","num":7,"name":"basal_met","type":"uint16","scale":4,"units":"kcal/day" },
    { "message":"weight_scale","num":8,"name":"physique_rating","type":"uint8" },
    { "message":"weight_scale","num":9,"name":"active_met","type":"uint16","scale":4,"units":"kcal/day" },
    { "message":"weight_scale","num":10,"name":"metabolic_age","type":"uint8","units":"years" },
    { "message":"weight_scale","num":11,"name":"visceral_fat_rating","type":"uint8" },
    { "message":"weight_scale","num":12,"name":"user_profile_index","type":"message_index" },
    { "message":"weight_scale","num":13,"name":"bmi","type":"uint16","scale":10,"units":"kg/m^2" },
    { "message":"blood_pressure","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"blood_pressure","num":0,"name":"systolic_pressure","type":"uint16","units":"mmHg" },
    { "message":"blood_pressure","num":1,"name":"diastolic_pressure","type":"uint16","units":"mmHg" },
    { "message":"blood_pressure","num":2,"name":"mean_arterial_pressure","type":"uint16","units":"mmHg" },
    { "message":"blood_pressure","num":3,"name":"map_3_sample_mean","type":"uint16","units":"mmHg" },
    { "message":"blood_pressure","num":4,"name":"map_morning_values","type":"uint16","units":"mmHg" },
    { "message":"blood_pressure","num":5,"name":"map_evening_values","type":"uint16","units":"mmHg" },
    { "message":"blood_pressure","num":6,"name":"heart_rate","type":"uint8","units":"bpm" },
    { "message":"blood_pressure","num":7,"name":"heart_rate_type","type":"hr_type" },
    { "message":"blood_pressure","num":8,"name":"status","type":"bp_status" },
    { "message":"blood_pressure","num":9,"name":"user_profile_index","type":"message_index" },
    { "message":"monitoring_info","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"monitoring_info","num":0,"name":"local_timestamp","type":"local_date_time","units":"s" },
    { "message":"monitoring_info","num":1,"name":"activity_type","type":"activity_type","array":"[N]" },
    { "message":"monitoring_info","num":3,"name":"cycles_to_distance","type":"uint16","array":"[N]","scale":5000,"units":"m/cycle" },
    { "message":"monitoring_info","num":4,"name":"cycles_to_calories","type":"uint16","array":"[N]","scale":5000,"units":"kcal/cycle" },
    { "message":"monitoring_info","num":5,"name":"resting_metabolic_rate","type":"uint16","units":"kcal / day" },
    { "message":"monitoring","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"monitoring","num":0,"name":"device_index","type":"device_index" },
    { "message":"monitoring","num":1,"name":"calories","type":"uint16","units":"kcal" },
    { "message":"monitoring","num":2,"name":"distance","type":"uint32","scale":100,"units":"m" },
    { "message":"monitoring","num":3,"name":"cycles","type":"uint32","scale":2,"units":"cycles" },
    { "message":"monitoring","num":4,"name":"active_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"monitoring","num":5,"name":"activity_type","type":"activity_type" },
    { "message":"monitoring","num":6,"name":"activity_subtype","type":"activity_subtype" },
    { "message":"monitoring","num":7,"name":"activity_level","type":"activity_level" },
    { "message":"monitoring","num":8,"name":"distance_16","type":"uint16","units":"100 * m" },
    { "message":"monitoring","num":9,"name":"cycles_16","type":"uint16","units":"2 * cycles (steps)" },
    { "message":"monitoring","num":10,"name":"active_time_16","type":"uint16","units":"s" },
    { "message":"monitoring","num":11,"name":"local_timestamp","type":"local_date_time" },
    { "message":"monitoring","num":12,"name":"temperature","type":"sint16","scale":100,"units":"C" },
    { "message":"monitoring","num":14,"name":"temperature_min","type":"sint16","scale":100,"units":"C" },
    { "message":"monitoring","num":15,"name":"temperature_max","type":"sint16","scale":100,"units":"C" },
    { "message":"monitoring","num":16,"name":"activity_time","type":"uint16","array":"[8]","units":"minutes" },
    { "message":"monitoring","num":19,"name":"active_calories","type":"uint16","units":"kcal" },
    { "message":"monitoring","num":24,"name":"current_activity_type_intensity","type":"byte" },
    { "message":"monitoring","num":25,"name":"timestamp_min_8","type":"uint8","units":"min" },
    { "message":"monitoring","num":26,"name":"timestamp_16","type":"uint16","units":"s" },
    { "message":"monitoring","num":27,"name":"heart_rate","type":"uint8","units":"bpm" },
    { "message":"monitoring","num":28,"name":"intensity","type":"uint8","scale":10 },
    { "message":"monitoring","num":29,"name":"duration_min","type":"uint16","units":"min" },
    { "message":"monitoring","num":30,"name":"duration","type":"uint32","units":"s" },
    { "message":"monitoring","num":31,"name":"ascent","type":"uint32","scale":1000,"units":"m" },
    { "message":"monitoring","num":32,"name":"descent","type":"uint32","scale":1000,"units":"m" },
    { "message":"monitoring","num":33,"name":"moderate_activity_minutes","type":"uint16","units":"minutes" },
    { "message":"monitoring","num":34,"name":"vigorous_activity_minutes","type":"uint16","units":"minutes" },
    { "message":"monitoring_hr_data","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"monitoring_hr_data","num":0,"name":"resting_heart_rate","type":"uint8","units":"bpm" },
    { "message":"monitoring_hr_data","num":1,"name":"current_day_resting_heart_rate","type":"uint8","units":"bpm" },
    { "message":"spo2_data","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"spo2_data","num":0,"name":"reading_spo2","type":"uint8","scale":1,"units":"percent" },
    { "message":"spo2_data","num":1,"name":"reading_confidence","type":"uint8","scale":1 },
    { "message":"spo2_data","num":2,"name":"mode","type":"spo2_measurement_type" },
    { "message":"hr","num":253,"name":"timestamp","type":"date_time" },
    { "message":"hr","num":0,"name":"fractional_timestamp","type":"uint16","scale":32768,"units":"s" },
    { "message":"hr","num":1,"name":"time256","type":"uint8","scale":256,"units":"s" },
    { "message":"hr","num":6,"name":"filtered_bpm","type":"uint8","array":"[N]","units":"bpm" },
    { "message":"hr","num":9,"name":"event_timestamp","type":"uint32","array":"[N]","scale":1024,"units":"s" },
    { "message":"stress_level","num":0,"name":"stress_level_value","type":"sint16" },
    { "message":"stress_level","num":1,"name":"stress_level_time","type":"date_time","units":"s" },
    { "message":"max_met_data","num":0,"name":"update_time","type":"date_time" },
    { "message":"max_met_data","num":2,"name":"vo2_max","type":"uint16","scale":10,"units":"mL/kg/min" },
    { "message":"max_met_data","num":5,"name":"sport","type":"sport" },
    { "message":"max_met_data","num":6,"name":"sub_sport","type":"sub_sport" },
    { "message":"max_met_data","num":8,"name":"max_met_category","type":"max_met_category" },
    { "message":"max_met_data","num":9,"name":"calibrated_data","type":"bool" },
    { "message":"max_met_data","num":12,"name":"hr_source","type":"max_met_heart_rate_source" },
    { "message":"max_met_data","num":13,"name":"speed_source","type":"max_met_speed_source" },
    { "message":"memo_glob","num":250,"name":"part_index","type":"uint32" },
    { "message":"memo_glob","num":0,"name":"memo","type":"byte","array":"[N]" },
    { "message":"memo_glob","num":1,"name":"mesg_num","type":"mesg_num" },
    { "message":"memo_glob","num":2,"name":"parent_index","type":"message_index" },
    { "message":"memo_glob","num":3,"name":"field_num","type":"uint8" },
    { "message":"memo_glob","num":4,"name":"data","type":"uint8z","array":"[N]" },
    { "message":"sleep_level","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"sleep_level","num":0,"name":"sleep_level","type":"sleep_level" },
    { "message":"ant_channel_id","num":0,"name":"channel_number","type":"uint8" },
    { "message":"ant_channel_id","num":1,"name":"device_type","type":"uint8z" },
    { "message":"ant_channel_id","num":2,"name":"device_number","type":"uint16z" },
    { "message":"ant_channel_id","num":3,"name":"transmission_type","type":"uint8z" },
    { "message":"ant_channel_id","num":4,"name":"device_index","type":"device_index" },
    { "message":"ant_rx","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"ant_rx","num":0,"name":"fractional_timestamp","type":"uint16","scale":32768,"units":"s" },
    { "message":"ant_rx","num":1,"name":"mesg_id","type":"byte" },
    { "message":"ant_rx","num":3,"name":"channel_number","type":"uint8" },
    { "message":"ant_rx","num":4,"name":"data","type":"byte","array":"[N]" },
    { "message":"ant_tx","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"ant_tx","num":0,"name":"fractional_timestamp","type":"uint16","scale":32768,"units":"s" },
    { "message":"ant_tx","num":1,"name":"mesg_id","type":"byte" },
    { "message":"ant_tx","num":3,"name":"channel_number","type":"uint8" },
    { "message":"ant_tx","num":4,"name":"data","type":"byte","array":"[N]" },
    { "message":"exd_screen_configuration","num":0,"name":"screen_index","type":"uint8" },
    { "message":"exd_screen_configuration","num":1,"name":"field_count","type":"uint8" },
    { "message":"exd_screen_configuration","num":2,"name":"layout","type":"exd_layout" },
    { "message":"exd_screen_configuration","num":3,"name":"screen_enabled","type":"bool" },
    { "message":"exd_data_field_configuration","num":0,"name":"screen_index","type":"uint8" },
    { "message":"exd_data_field_configuration","num":1,"name":"concept_field","type":"byte" },
    { "message":"exd_data_field_configuration","num":2,"name":"field_id","type":"uint8" },
    { "message":"exd_data_field_configuration","num":3,"name":"concept_count","type":"uint8" },
    { "message":"exd_data_field_configuration","num":4,"name":"display_type","type":"exd_display_type" },
    { "message":"exd_data_field_configuration","num":5,"name":"title","type":"string","array":"[32]" },
    { "message":"exd_data_concept_configuration","num":0,"name":"screen_index","type":"uint8" },
    { "message":"exd_data_concept_configuration","num":1,"name":"concept_field","type":"byte" },
    { "message":"exd_data_concept_configuration","num":2,"name":"field_id","type":"uint8" },
    { "message":"exd_data_concept_configuration","num":3,"name":"concept_index","type":"uint8" },
    { "message":"exd_data_concept_configuration","num":4,"name":"data_page","type":"uint8" },
    { "message":"exd_data_concept_configuration","num":5,"name":"concept_key","type":"uint8" },
    { "message":"exd_data_concept_configuration","num":6,"name":"scaling","type":"uint8" },
    { "message":"exd_data_concept_configuration","num":8,"name":"data_units","type":"exd_data_units" },
    { "message":"exd_data_concept_configuration","num":9,"name":"qualifier","type":"exd_qualifiers" },
    { "message":"exd_data_concept_configuration","num":10,"name":"descriptor","type":"exd_descriptors" },
    { "message":"exd_data_concept_configuration","num":11,"name":"is_signed","type":"bool" },
    { "message":"dive_summary","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"dive_summary","num":0,"name":"reference_mesg","type":"mesg_num" },
    { "message":"dive_summary","num":1,"name":"reference_index","type":"message_index" },
    { "message":"dive_summary","num":2,"name":"avg_depth","type":"uint32","scale":1000,"units":"m" },
    { "message":"dive_summary","num":3,"name":"max_depth","type":"uint32","scale":1000,"units":"m" },
    { "message":"dive_summary","num":4,"name":"surface_interval","type":"uint32","scale":1,"units":"s" },
    { "message":"dive_summary","num":5,"name":"start_cns","type":"uint8","scale":1,"units":"percent" },
    { "message":"dive_summary","num":6,"name":"end_cns","type":"uint8","scale":1,"units":"percent" },
    { "message":"dive_summary","num":7,"name":"start_n2","type":"uint16","scale":1,"units":"percent" },
    { "message":"dive_summary","num":8,"name":"end_n2","type":"uint16","scale":1,"units":"percent" },
    { "message":"dive_summary","num":9,"name":"o2_toxicity","type":"uint16","units":"OTUs" },
    { "message":"dive_summary","num":10,"name":"dive_number","type":"uint32" },
    { "message":"dive_summary","num":11,"name":"bottom_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"dive_summary","num":12,"name":"avg_pressure_sac","type":"uint16","scale":100,"units":"bar/min" },
    { "message":"dive_summary","num":13,"name":"avg_volume_sac","type":"uint16","scale":100,"units":"L/min" },
    { "message":"dive_summary","num":14,"name":"avg_rmv","type":"uint16","scale":100,"units":"L/min" },
    { "message":"dive_summary","num":15,"name":"descent_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"dive_summary","num":16,"name":"ascent_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"dive_summary","num":17,"name":"avg_ascent_rate","type":"sint32","scale":1000,"units":"m/s" },
    { "message":"dive_summary","num":22,"name":"avg_descent_rate","type":"uint32","scale":1000,"units":"m/s" },
    { "message":"dive_summary","num":23,"name":"max_ascent_rate","type":"uint32","scale":1000,"units":"m/s" },
    { "message":"dive_summary","num":24,"name":"max_descent_rate","type":"uint32","scale":1000,"units":"m/s" },
    { "message":"dive_summary","num":25,"name":"hang_time","type":"uint32","scale":1000,"units":"s" },
    { "message":"hrv","num":0,"name":"time","type":"uint16","array":"[N]","scale":1000,"units":"s" },
    { "message":"beat_intervals","num":253,"name":"timestamp","type":"date_time" },
    { "message":"beat_intervals","num":0,"name":"timestamp_ms","type":"uint16","units":"ms" },
    { "message":"beat_intervals","num":1,"name":"time","type":"uint16","array":"[N]","units":"ms" },
    { "message":"hrv_status_summary","num":253,"name":"timestamp","type":"date_time" },
    { "message":"hrv_status_summary","num":0,"name":"weekly_average","type":"uint16","scale":128,"units":"ms" },
    { "message":"hrv_status_summary","num":1,"name":"last_night_average","type":"uint16","scale":128,"units":"ms" },
    { "message":"hrv_status_summary","num":2,"name":"last_night_5_min_high","type":"uint16","scale":128,"units":"ms" },
    { "message":"hrv_status_summary","num":3,"name":"baseline_low_upper","type":"uint16","scale":128,"units":"ms" },
    { "message":"hrv_status_summary","num":4,"name":"baseline_balanced_lower","type":"uint16","scale":128,"units":"ms" },
    { "message":"hrv_status_summary","num":5,"name":"baseline_balanced_upper","type":"uint16","scale":128,"units":"ms" },
    { "message":"hrv_status_summary","num":6,"name":"status","type":"hrv_status" },
    { "message":"hrv_value","num":253,"name":"timestamp","type":"date_time" },
    { "message":"hrv_value","num":0,"name":"value","type":"uint16","scale":128,"units":"ms" },
    { "message":"respiration_rate","num":253,"name":"timestamp","type":"date_time" },
    { "message":"respiration_rate","num":0,"name":"respiration_rate","type":"sint16","scale":100,"units":"breaths/min" },
    { "message":"tank_update","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"tank_update","num":0,"name":"sensor","type":"ant_channel_id" },
    { "message":"tank_update","num":1,"name":"pressure","type":"uint16","scale":100,"units":"bar" },
    { "message":"tank_summary","num":253,"name":"timestamp","type":"date_time","units":"s" },
    { "message":"tank_summary","num":0,"name":"sensor","type":"ant_channel_id" },
    { "message":"tank_summary","num":1,"name":"start_pressure","type":"uint16","scale":100,"units":"bar" },
    { "message":"tank_summary","num":2,"name":"end_pressure","type":"uint16","scale":100,"units":"bar" },
    { "message":"tank_summary","num":3,"name":"volume_used","type":"uint32","scale":100,"units":"L" },
    { "message":"sleep_assessment","num":0,"name":"combined_awake_score","type":"uint8" },
    { "message":"sleep_assessment","num":1,"name":"awake_time_score","type":"uint8" },
    { "message":"sleep_assessment","num":2,"name":"awakenings_count_score","type":"uint8" },
    { "message":"sleep_assessment","num":3,"name":"deep_sleep_score","type":"uint8" },
    { "message":"sleep_assessment","num":4,"name":"sleep_duration_score","type":"uint8" },
    { "message":"sleep_assessment","num":5,"name":"light_sleep_score","type":"uint8" },
    { "message":"sleep_assessment","num":6,"name":"overall_sleep_score","type":"uint8" },
    { "message":"sleep_assessment","num":7,"name":"sleep_quality_score","type":"uint8" },
    { "message":"sleep_assessment","num":8,"name":"sleep_recovery_score","type":"uint8" },
    { "message":"sleep_assessment","num":9,"name":"rem_sleep_score","type":"uint8" },
    { "message":"sleep_assessment","num":10,"name":"sleep_restlessness_score","type":"uint8" },
    { "message":"sleep_assessment","num":11,"name":"awakenings_count","type":"uint8" },
    { "message":"sleep_assessment","num":14,"name":"interruptions_score","type":"uint8" },
    { "message":"sleep_assessment","num":15,"name":"average_stress_during_sleep","type":"uint16","scale":100 }

],

    "MESSAGES":[
        { "num": 1 , "desc":"Capabilities" },
        { "num": 2 , "desc":"Device Settings" },
        { "num": 3 , "desc":"User Profile" },
        { "num": 4 , "desc":"Hrm Profile" },
        { "num": 5 , "desc":"Sdm Profile" },
        { "num": 6 , "desc":"Bike Profile" },
        { "num": 7 , "desc":"Zones Target" },
        { "num": 8 , "desc":"Hr Zone" },
        { "num": 9 , "desc":"Power Zone" },
        { "num": 10 , "desc":"Met Zone" },
        { "num": 12 , "desc":"Sport" },
        { "num": 13 , "desc":"Training Settings" },
        { "num": 15 , "desc":"Goal" },
        { "num": 18 , "desc":"Session" },
        { "num": 19 , "desc":"Lap" },
        { "num": 20 , "desc":"Record" },
        { "num": 21 , "desc":"Event" },
        { "num": 23 , "desc":"Device Info" },
        { "num": 26 , "desc":"Workout" },
        { "num": 27 , "desc":"Workout Step" },
        { "num": 28 , "desc":"Schedule" },
        { "num": 30 , "desc":"Weight Scale" },
        { "num": 31 , "desc":"Course" },
        { "num": 32 , "desc":"Course Point" },
        { "num": 33 , "desc":"Totals" },
        { "num": 34 , "desc":"Activity" },
        { "num": 35 , "desc":"Software" },
        { "num": 37 , "desc":"File Capabilities" },
        { "num": 38 , "desc":"Mesg Capabilities" },
        { "num": 39 , "desc":"Field Capabilities" },
        { "num": 49 , "desc":"File Creator" },
        { "num": 51 , "desc":"Blood Pressure" },
        { "num": 53 , "desc":"Speed Zone" },
        { "num": 55 , "desc":"Monitoring" },
        { "num": 72 , "desc":"Training File" },
        { "num": 78 , "desc":"Hrv" },
        { "num": 80 , "desc":"Ant Rx" },
        { "num": 81 , "desc":"Ant Tx" },
        { "num": 82 , "desc":"Ant Channel Id" },
        { "num": 101 , "desc":"Length" },
        { "num": 103 , "desc":"Monitoring Info" },
        { "num": 105 , "desc":"Pad" },
        { "num": 106 , "desc":"Slave Device" },
        { "num": 127 , "desc":"Connectivity" },
        { "num": 128 , "desc":"Weather Conditions" },
        { "num": 129 , "desc":"Weather Alert" },
        { "num": 131 , "desc":"Cadence Zone" },
        { "num": 132 , "desc":"Hr" },
        { "num": 142 , "desc":"Segment Lap" },
        { "num": 145 , "desc":"Memo Glob" },
        { "num": 148 , "desc":"Segment Id" },
        { "num": 149 , "desc":"Segment Leaderboard Entry" },
        { "num": 150 , "desc":"Segment Point" },
        { "num": 151 , "desc":"Segment File" },
        { "num": 158 , "desc":"Workout Session" },
        { "num": 159 , "desc":"Watchface Settings" },
        { "num": 160 , "desc":"Gps Metadata" },
        { "num": 161 , "desc":"Camera Event" },
        { "num": 162 , "desc":"Timestamp Correlation" },
        { "num": 164 , "desc":"Gyroscope Data" },
        { "num": 165 , "desc":"Accelerometer Data" },
        { "num": 167 , "desc":"Three D Sensor Calibration" },
        { "num": 169 , "desc":"Video Frame" },
        { "num": 174 , "desc":"Obdii Data" },
        { "num": 177 , "desc":"Nmea Sentence" },
        { "num": 178 , "desc":"Aviation Attitude" },
        { "num": 184 , "desc":"Video" },
        { "num": 185 , "desc":"Video Title" },
        { "num": 186 , "desc":"Video Description" },
        { "num": 187 , "desc":"Video Clip" },
        { "num": 188 , "desc":"Ohr Settings" },
        { "num": 200 , "desc":"Exd Screen Configuration" },
        { "num": 201 , "desc":"Exd Data Field Configuration" },
        { "num": 202 , "desc":"Exd Data Concept Configuration" },
        { "num": 206 , "desc":"Field Description" },
        { "num": 207 , "desc":"Developer Data Id" },
        { "num": 208 , "desc":"Magnetometer Data" },
        { "num": 209 , "desc":"Barometer Data" },
        { "num": 210 , "desc":"One D Sensor Calibration" },
        { "num": 211 , "desc":"Monitoring Hr Data" },
        { "num": 216 , "desc":"Time In Zone" },
        { "num": 225 , "desc":"Set" },
        { "num": 227 , "desc":"Stress Level" },
        { "num": 229 , "desc":"Max Met Data" },
        { "num": 258 , "desc":"Dive Settings" },
        { "num": 259 , "desc":"Dive Gas" },
        { "num": 262 , "desc":"Dive Alarm" },
        { "num": 264 , "desc":"Exercise Title" },
        { "num": 268 , "desc":"Dive Summary" },
        { "num": 269 , "desc":"Spo2 Data" },
        { "num": 275 , "desc":"Sleep Level" },
        { "num": 285 , "desc":"Jump" },
        { "num": 289 , "desc":"Aad Accel Features" },
        { "num": 290 , "desc":"Beat Intervals" },
        { "num": 297 , "desc":"Respiration Rate" },
        { "num": 302 , "desc":"Hsa Accelerometer Data" },
        { "num": 304 , "desc":"Hsa Step Data" },
        { "num": 305 , "desc":"Hsa Spo2 Data" },
        { "num": 306 , "desc":"Hsa Stress Data" },
        { "num": 307 , "desc":"Hsa Respiration Data" },
        { "num": 308 , "desc":"Hsa Heart Rate Data" },
        { "num": 312 , "desc":"Split" },
        { "num": 313 , "desc":"Split Summary" },
        { "num": 314 , "desc":"Hsa Body Battery Data" },
        { "num": 315 , "desc":"Hsa Event" },
        { "num": 317 , "desc":"Climb Pro" },
        { "num": 319 , "desc":"Tank Update" },
        { "num": 323 , "desc":"Tank Summary" },
        { "num": 346 , "desc":"Sleep Assessment" },
        { "num": 370 , "desc":"Hrv Status Summary" },
        { "num": 371 , "desc":"Hrv Value" },
        { "num": 372 , "desc":"Raw Bbi" },
        { "num": 375 , "desc":"Device Aux Battery Info" },
        { "num": 376 , "desc":"Hsa Gyroscope Data" },
        { "num": 387 , "desc":"Chrono Shot Session" },
        { "num": 388 , "desc":"Chrono Shot Data" },
        { "num": 389 , "desc":"Hsa Configuration Data" },
        { "num": 393 , "desc":"Dive Apnea Alarm" },
        { "num": 398 , "desc":"Skin Temp Overnight" },
        { "num": 409 , "desc":"Hsa Wrist Temperature Data" }
    ]
}
