trackswap 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var En=Object.create;var be=Object.defineProperty;var Sn=Object.getOwnPropertyDescriptor;var On=Object.getOwnPropertyNames;var Fn=Object.getPrototypeOf,Dn=Object.prototype.hasOwnProperty;var N=(l,e)=>()=>(l&&(e=l(l=0)),e);var At=(l,e)=>{for(var s in e)be(l,s,{get:e[s],enumerable:!0})},ct=(l,e,s,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of On(e))!Dn.call(l,n)&&n!==s&&be(l,n,{get:()=>e[n],enumerable:!(t=Sn(e,n))||t.enumerable});return l};var J=(l,e,s)=>(s=l!=null?En(Fn(l)):{},ct(e||!l||!l.__esModule?be(s,"default",{value:l,enumerable:!0}):s,l)),Hn=l=>ct(be({},"__esModule",{value:!0}),l);var Ce,Ws,Q,Ee=N(()=>{Ce=[0,52225,55297,5120,61441,15360,10240,58369,40961,27648,30720,46081,20480,39937,34817,17408],Ws=class l{#t=0;constructor(){}get crc(){return this.#t}#e(e){let s=Ce[this.#t&15];return this.#t=this.#t>>4&4095,this.#t=this.#t^s^Ce[e&15],s=Ce[this.#t&15],this.#t=this.#t>>4&4095,this.#t=this.#t^s^Ce[e>>4&15],this.#t}addBytes(e,s,t){for(let n=s;n<t;n++)this.#t=this.#e(e[n]);return this.#t}static calculateCRC(e,s,t){return new l().addBytes(e,s,t)}},Q=Ws});var Vs,Ks,Et,St=N(()=>{Vs=class{#t=0;#e=0;constructor(e){this.#t=e,this.#e=e}accumulate(e,s){let t=(1<<s)-1;return this.#t+=e-this.#e&t,this.#e=e,this.#t}},Ks=class{#t={};createAccumulatedField(e,s,t){let n=new Vs(t);return this.#t[e]==null&&(this.#t[e]={}),this.#t[e][s]=n,n}accumulate(e,s,t,n){let a=this.#t[e]?.[s];return a==null&&(a=this.createAccumulatedField(e,s,t)),a.accumulate(t,n)}},Et=Ks});var L,Qn,jn,Ot,Zn,qn,xn,ea,sa,ta,Ft,na,Dt,Ht,wt,aa,vt,ia,Ut,r,q=N(()=>{L={ENUM:0,SINT8:1,UINT8:2,SINT16:3,UINT16:4,SINT32:5,UINT32:6,STRING:7,FLOAT32:8,FLOAT64:9,UINT8Z:10,UINT16Z:11,UINT32Z:12,BYTE:13,SINT64:14,UINT64:15,UINT64Z:16},Qn=31,jn={0:{size:1,type:L.ENUM,baseTypeEndianFlag:0,invalid:255},1:{size:1,type:L.SINT8,baseTypeEndianFlag:0,invalid:127},2:{size:1,type:L.UINT8,baseTypeEndianFlag:0,invalid:255},3:{size:2,type:L.SINT16,baseTypeEndianFlag:128,invalid:32767},4:{size:2,type:L.UINT16,baseTypeEndianFlag:128,invalid:65535},5:{size:4,type:L.SINT32,baseTypeEndianFlag:128,invalid:2147483647},6:{size:4,type:L.UINT32,baseTypeEndianFlag:128,invalid:4294967295},7:{size:1,type:L.STRING,baseTypeEndianFlag:0,invalid:0},8:{size:4,type:L.FLOAT32,baseTypeEndianFlag:128,invalid:4294967295},9:{size:8,type:L.FLOAT64,baseTypeEndianFlag:128,invalid:18446744073709552e3},10:{size:1,type:L.UINT8Z,baseTypeEndianFlag:0,invalid:0},11:{size:2,type:L.UINT16Z,baseTypeEndianFlag:128,invalid:0},12:{size:4,type:L.UINT32Z,baseTypeEndianFlag:128,invalid:0},13:{size:1,type:L.BYTE,baseTypeEndianFlag:0,invalid:255},14:{size:8,type:L.SINT64,baseTypeEndianFlag:128,invalid:9223372036854776e3},15:{size:8,type:L.UINT64,baseTypeEndianFlag:128,invalid:18446744073709552e3},16:{size:8,type:L.UINT64Z,baseTypeEndianFlag:128,invalid:0}},Ot=["sint8","uint8","sint16","uint16","sint32","uint32","float32","float64","uint8z","uint16z","uint32z","byte","sint64","uint64","uint64z"],Zn=new Set(Ot),qn={enum:"number",sint8:"number",uint8:"number",sint16:"number",uint16:"number",sint32:"number",uint32:"number",string:"string",float32:"number",float64:"number",uint8z:"number",uint16z:"number",uint32z:"number",byte:"number",sint64:"bigint",uint64:"bigint",uint64z:"bigint"},xn=["sint64","uint64","uint64z"],ea=["float32","float64"],sa={enum:L.UINT8,sint8:L.SINT8,uint8:L.UINT8,sint16:L.SINT16,uint16:L.UINT16,sint32:L.SINT32,uint32:L.UINT32,string:L.STRING,float32:L.FLOAT32,float64:L.FLOAT64,uint8z:L.UINT8Z,uint16z:L.UINT16Z,uint32z:L.UINT32Z,byte:L.BYTE,sint64:L.SINT64,uint64:L.UINT64,uint64z:L.UINT64Z},ta={[L.ENUM]:"enum",[L.SINT8]:"sint8",[L.UINT8]:"uint8",[L.SINT16]:"sint16",[L.UINT16]:"uint16",[L.SINT32]:"sint32",[L.UINT32]:"uint32",[L.STRING]:"string",[L.FLOAT32]:"float32",[L.FLOAT64]:"float64",[L.UINT8Z]:"uint8z",[L.UINT16Z]:"uint16z",[L.UINT32Z]:"uint32z",[L.BYTE]:"byte",[L.SINT64]:"sint64",[L.UINT64]:"uint64",[L.UINT64Z]:"uint64z"},Ft=l=>l==null,na=l=>typeof l=="object",Dt=l=>typeof l=="boolean",Ht=l=>typeof l=="object"&&l instanceof Date,wt=l=>typeof l=="string",aa=l=>typeof l=="bigint",vt=l=>{if(typeof l=="number")return!isNaN(l)&&isFinite(l);if(typeof l=="bigint")return!0;let e=parseFloat(l);return!isNaN(e)&&isFinite(e)},ia=l=>!Ut(l),Ut=l=>!(Ft(l)||!vt(l)&&!Ht(l)&&!wt(l)&&!Dt(l)),r={BaseType:L,BaseTypeMask:Qn,BaseTypeDefinitions:jn,NumericFieldTypes:Ot,NumericFieldTypesSet:Zn,BigIntFieldTypes:xn,FloatingPointFieldTypes:ea,FieldTypeToBaseType:sa,BaseTypeToFieldType:ta,FieldTypeToJsType:qn,isNullOrUndefined:Ft,isObject:na,isBoolean:Dt,isDate:Ht,isString:wt,isBigInt:aa,isNumeric:vt,isNumberStringDateOrBoolean:Ut,isNotNumberStringDateOrBoolean:ia,MAX_FIELD_SIZE:255,FIELD_DEFAULT_SCALE:1,FIELD_DEFAULT_OFFSET:0,MESG_DEFINITION_MASK:64,LOCAL_MESG_NUM_MASK:15,ARCH_LITTLE_ENDIAN:0,DEV_DATA_MASK:32,NULL_TERMINATOR:"\0"}});var ks,Bt,Mt=N(()=>{q();ks=class{#t=null;#e=null;#s=0;#l=0;#n=!1;#a=0;#o=0;#i=0;constructor(e,s=r.BaseType.UINT8){this.#t=Array.isArray(e)?e:[e];let t=r.BaseTypeDefinitions[s].size;this.#l=t*8,this.#n=this.#l>32,this.reset()}get bitsAvailable(){return this.#i}get hasBitsAvailable(){return this.#i>0}reset(){this.#e=null,this.#s=0,this.#i=this.#l*this.#t.length,this.#a=0,this.#o=0}readBit(){this.hasBitsAvailable||this.#p(),this.#e===null&&(this.#e=this.#t,this.#s=this.#t.length-this.#i/this.#l,this.#f()),this.#o>=this.#l&&this.#f();let e;return this.#n?(e=Number(this.#a&1n),this.#a>>=1n):(e=this.#a&1,this.#a>>=1),this.#o++,this.#i--,e}readBits(e){if(e===this.#l&&this.#e===null){this.hasBitsAvailable||this.#p();let t=this.#t.length-this.#i/this.#l,n=this.#t[t];return this.#i-=e,this.#n?Number(BigInt.asUintN(e,n)):e<32?(n&(1<<e)-1)>>>0:n>>>0}if(e<=32){let t=0;for(let n=0;n<e;n++)t|=this.readBit()<<n;return t>>>0}let s=0n;for(let t=0,n=0n;t<e;t++,n++)s|=BigInt(this.readBit())<<n;return Number(s)}#f(){this.#s>=this.#e.length&&this.#p(),this.#a=this.#e[this.#s++],this.#o=0}get array(){return this.#e}#p(e=""){throw Error("FIT Runtime Error no bits available.")}},Bt=ks});var Ns,la,oa,x,re=N(()=>{q();Ns=6310656e5,la=l=>new Date((l??0)*1e3+Ns),oa=l=>(l.getTime()-Ns)/1e3,x={FIT_EPOCH_MS:Ns,convertDateTimeToDate:la,convertDateToDateTime:oa,FitBaseType:r.BaseType,BaseTypeToFieldType:r.BaseTypeToFieldType,FieldTypeToBaseType:r.FieldTypeToBaseType}});var ua,Gt,Pt,de,Wt,Vt=N(()=>{re();ua=(l,e)=>{if(l==null||e==null||l.length==0||e.length==0)return;let s=Gt(l),t=0,n=null;for(let a=0;a<e.length;++a){let i=e[a],o=0,u=0,p=Pt(i.timestamp);n==null&&(n=p),n===p&&(n--,t=t>=1?t-1:0);let d=!0;for(;d&&t<s.length;){let _=s[t];if(_.timestamp>n&&_.timestamp<=p)o+=_.heartRate,u++;else if(_.timestamp>p){if(d=!1,u>0){let R=Math.round(o/u);i.heartRate=R}o=0,u=0,n=p;break}t++}}},Gt=l=>{if(l==null||l.length==0)return[];let a=0,i=null,o=[];return l.forEach(u=>{u==null&&de("HR mesg must not be null");let p=Array.isArray(u.eventTimestamp)?u.eventTimestamp:[u.eventTimestamp],d=Array.isArray(u.filteredBpm)?u.filteredBpm:[u.filteredBpm];u.timestamp!=null&&(i=Pt(u.timestamp),u.fractionalTimestamp!=null&&(i+=u.fractionalTimestamp),p.length==1?a=p[0]:de("anchor HR mesg must have 1 event_timestamp")),i==null||a==null?de("no anchor timestamp received in a HR mesg before delta HR mesgs"):p.length!=d.length&&de("HR mesg with mismatching event timestamp and filtered bpm");for(let _=0;_<p.length;_++){let R=p[_];R<a&&(a-R>4194304?R+=4194304:de("anchor event_timestamp is greater than subsequent event_timestamp. This does not allow for correct delta calculation."));let b={timestamp:i,heartRate:d[_]};if(b.timestamp+=R-a,o.length>0){let y=o[o.length-1],P=Math.abs(b.timestamp-y.timestamp)*1e3,v=1;for(;P>250&&v<=20;){let A={timestamp:y.timestamp,heartRate:y.heartRate};A.timestamp+=.25*v,o.push(A),P-=250,v++}}o.push(b)}}),o},Pt=l=>l instanceof Date?(l.getTime()-x.FIT_EPOCH_MS)/1e3:l,de=(l="")=>{throw Error(`FIT Runtime Error ${l}`.trimEnd())},Wt={mergeHeartRates:ua,expandHeartRates:Gt}});var fa,G,ue=N(()=>{fa={version:{major:21,minor:212,patch:0,type:"Release"},CommonFields:{PartIndex:250,Timestamp:253,MessageIndex:254},messages:{0:{num:0,name:"fileId",messagesKey:"fileIdMesgs",fields:{0:{num:0,name:"type",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},3:{num:3,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeCreated",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"number",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"productName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},49:{num:49,name:"fileCreator",messagesKey:"fileCreatorMesgs",fields:{0:{num:0,name:"softwareVersion",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"hardwareVersion",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},162:{num:162,name:"timestampCorrelation",messagesKey:"timestampCorrelationMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"systemTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"fractionalSystemTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"systemTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},35:{num:35,name:"software",messagesKey:"softwareMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"version",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"partNumber",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},106:{num:106,name:"slaveDevice",messagesKey:"slaveDeviceMesgs",fields:{0:{num:0,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]}}},1:{num:1,name:"capabilities",messagesKey:"capabilitiesMesgs",fields:{0:{num:0,name:"languages",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sports",type:"sportBits0",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"workoutsSupported",type:"workoutCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"connectivitySupported",type:"connectivityCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},37:{num:37,name:"fileCapabilities",messagesKey:"fileCapabilitiesMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"type",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"flags",type:"fileFlags",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"directory",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"maxCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"maxSize",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"bytes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},38:{num:38,name:"mesgCapabilities",messagesKey:"mesgCapabilitiesMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"file",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"countType",type:"mesgCount",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"count",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"numPerFile",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"countType",value:0}]},{name:"maxPerFile",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"countType",value:1}]},{name:"maxPerFileType",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"countType",value:2}]}]}}},39:{num:39,name:"fieldCapabilities",messagesKey:"fieldCapabilitiesMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"file",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"fieldNum",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"count",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},2:{num:2,name:"deviceSettings",messagesKey:"deviceSettingsMesgs",fields:{0:{num:0,name:"activeTimeZone",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"utcOffset",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"timeOffset",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeMode",type:"timeMode",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timeZoneOffset",type:"sint8",baseType:"sint8",array:!0,scale:4,offset:0,units:"hr",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"backlightMode",type:"backlightMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},36:{num:36,name:"activityTrackerEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"clockTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"pagesEnabled",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"moveAlertEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"dateMode",type:"dateMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"displayOrientation",type:"displayOrientation",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"mountingSide",type:"side",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"defaultPage",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"autosyncMinSteps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"steps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"autosyncMinTime",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},80:{num:80,name:"lactateThresholdAutodetectEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"bleAutoUploadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"autoSyncFrequency",type:"autoSyncFrequency",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},90:{num:90,name:"autoActivityDetect",type:"autoActivityDetect",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"numberOfScreens",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"smartNotificationDisplayOrientation",type:"displayOrientation",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},134:{num:134,name:"tapInterface",type:"switch",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},174:{num:174,name:"tapSensitivity",type:"tapSensitivity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},3:{num:3,name:"userProfile",messagesKey:"userProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"friendlyName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"gender",type:"gender",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"age",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"years",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"height",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"weight",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"language",type:"language",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"elevSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"weightSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"restingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"defaultMaxRunningHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"defaultMaxBikingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"defaultMaxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"hrSetting",type:"displayHeart",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"speedSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"distSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"powerSetting",type:"displayPower",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"activityClass",type:"activityClass",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"positionSetting",type:"displayPosition",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"temperatureSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"localId",type:"userLocalId",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"globalId",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"wakeTime",type:"localtimeIntoDay",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"sleepTime",type:"localtimeIntoDay",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"heightSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"userRunningStepLength",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"userWalkingStepLength",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"depthSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"diveCount",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},4:{num:4,name:"hrmProfile",messagesKey:"hrmProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"hrmAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"logHrv",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"hrmAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},5:{num:5,name:"sdmProfile",messagesKey:"sdmProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sdmAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"sdmCalFactor",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"odometer",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"speedSource",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sdmAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"odometerRollover",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},6:{num:6,name:"bikeProfile",messagesKey:"bikeProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"odometer",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"bikeSpdAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"bikeCadAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"bikeSpdcadAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"bikePowerAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"customWheelsize",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"autoWheelsize",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"bikeWeight",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"powerCalFactor",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"autoWheelCal",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"autoPowerZero",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"id",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"spdEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"cadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"spdcadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"powerEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"crankLength",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:-110,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"bikeSpdAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"bikeCadAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"bikeSpdcadAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"bikePowerAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"odometerRollover",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"frontGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"frontGear",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"rearGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"rearGear",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"shimanoDi2Enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},127:{num:127,name:"connectivity",messagesKey:"connectivityMesgs",fields:{0:{num:0,name:"bluetoothEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"bluetoothLeEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"antEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"liveTrackingEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"weatherConditionsEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"weatherAlertsEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"autoActivityUploadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"courseDownloadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"workoutDownloadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"gpsEphemerisDownloadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"incidentDetectionEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"grouptrackEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},159:{num:159,name:"watchfaceSettings",messagesKey:"watchfaceSettingsMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"mode",type:"watchfaceMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"layout",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"digitalLayout",type:"digitalWatchfaceLayout",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"mode",value:0}]},{name:"analogLayout",type:"analogWatchfaceLayout",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"mode",value:1}]}]}}},188:{num:188,name:"ohrSettings",messagesKey:"ohrSettingsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"enabled",type:"switch",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},216:{num:216,name:"timeInZone",messagesKey:"timeInZoneMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"referenceMesg",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"referenceIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"hrZoneHighBoundary",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"speedZoneHighBoundary",type:"uint16",baseType:"uint16",array:!0,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"cadenceZoneHighBondary",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"powerZoneHighBoundary",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"hrCalcType",type:"hrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"restingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"thresholdHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"pwrCalcType",type:"pwrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"functionalThresholdPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},7:{num:7,name:"zonesTarget",messagesKey:"zonesTargetMesgs",fields:{1:{num:1,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"thresholdHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"functionalThresholdPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"hrCalcType",type:"hrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"pwrCalcType",type:"pwrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},12:{num:12,name:"sport",messagesKey:"sportMesgs",fields:{0:{num:0,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},8:{num:8,name:"hrZone",messagesKey:"hrZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"highBpm",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},53:{num:53,name:"speedZone",messagesKey:"speedZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"highValue",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},131:{num:131,name:"cadenceZone",messagesKey:"cadenceZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"highValue",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},9:{num:9,name:"powerZone",messagesKey:"powerZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"highValue",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},10:{num:10,name:"metZone",messagesKey:"metZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"highBpm",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"calories",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kcal / min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"fatCalories",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"kcal / min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},13:{num:13,name:"trainingSettings",messagesKey:"trainingSettingsMesgs",fields:{31:{num:31,name:"targetDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"targetSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"targetTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},153:{num:153,name:"preciseTargetSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e6,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},258:{num:258,name:"diveSettings",messagesKey:"diveSettingsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"model",type:"tissueModelType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"gfLow",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"gfHigh",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"waterType",type:"waterType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"waterDensity",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kg/m^3",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"po2Warn",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"po2Critical",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"po2Deco",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"safetyStopEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"bottomDepth",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"bottomTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"apneaCountdownEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"apneaCountdownTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"backlightMode",type:"diveBacklightMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"backlightBrightness",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"backlightTimeout",type:"backlightTimeout",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"repeatDiveInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"safetyStopTime",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"heartRateSourceType",type:"sourceType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"heartRateSource",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"heartRateAntplusDeviceType",type:"antplusDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"heartRateSourceType",value:1}]},{name:"heartRateLocalDeviceType",type:"localDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"heartRateSourceType",value:5}]}]},21:{num:21,name:"travelGas",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"ccrLowSetpointSwitchMode",type:"ccrSetpointSwitchMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"ccrLowSetpoint",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"ccrLowSetpointDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"ccrHighSetpointSwitchMode",type:"ccrSetpointSwitchMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"ccrHighSetpoint",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"ccrHighSetpointDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"gasConsumptionDisplay",type:"gasConsumptionRateType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"upKeyEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},35:{num:35,name:"diveSounds",type:"tone",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},36:{num:36,name:"lastStopMultiple",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"noFlyTimeMode",type:"noFlyTimeMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},262:{num:262,name:"diveAlarm",messagesKey:"diveAlarmMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"depth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"alarmType",type:"diveAlarmType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sound",type:"tone",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"diveTypes",type:"subSport",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"id",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"popupEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"triggerOnDescent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"triggerOnAscent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"repeating",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"speed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"mps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},393:{num:393,name:"diveApneaAlarm",messagesKey:"diveApneaAlarmMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"depth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"alarmType",type:"diveAlarmType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sound",type:"tone",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"diveTypes",type:"subSport",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"id",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"popupEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"triggerOnDescent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"triggerOnAscent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"repeating",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"speed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"mps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},259:{num:259,name:"diveGas",messagesKey:"diveGasMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"heliumContent",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"oxygenContent",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"status",type:"diveGasStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"mode",type:"diveGasMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},15:{num:15,name:"goal",messagesKey:"goalMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startDate",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"endDate",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"type",type:"goal",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"value",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"repeat",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"targetValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"recurrence",type:"goalRecurrence",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"recurrenceValue",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"source",type:"goalSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},34:{num:34,name:"activity",messagesKey:"activityMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"numSessions",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"type",type:"activity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},18:{num:18,name:"session",messagesKey:"sessionMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"totalReps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"reps",bits:[],components:[],hasComponents:!1,map:[{name:"subSport",value:20},{name:"sport",value:62}]},{name:"totalStrides",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strides",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1},{name:"sport",value:11}]},{name:"totalStrokes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:2},{name:"sport",value:5},{name:"sport",value:15},{name:"sport",value:37}]},{name:"totalPushes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"pushes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:66},{name:"sport",value:65}]}]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"totalFatCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["124"],isAccumulated:!1,hasComponents:!0,subFields:[]},15:{num:15,name:"maxSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["125"],isAccumulated:!1,hasComponents:!0,subFields:[]},16:{num:16,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"avgCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"avgRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},19:{num:19,name:"maxCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"maxRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},20:{num:20,name:"avgPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"maxPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"totalTrainingEffect",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"firstLapIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"numLaps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"trigger",type:"sessionTrigger",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"necLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"necLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"swcLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"swcLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"numLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"normalizedPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},35:{num:35,name:"trainingStressScore",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"tss",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},36:{num:36,name:"intensityFactor",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"if",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"leftRightBalance",type:"leftRightBalance100",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"avgStrokeCount",type:"uint32",baseType:"uint32",array:!1,scale:10,offset:0,units:"strokes/lap",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"avgStrokeDistance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},43:{num:43,name:"swimStroke",type:"swimStroke",baseType:"enum",array:!1,scale:1,offset:0,units:"swim_stroke",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"poolLength",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"thresholdPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"poolLengthUnit",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"numActiveLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"totalWork",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"J",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"avgAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["126"],isAccumulated:!1,hasComponents:!0,subFields:[]},50:{num:50,name:"maxAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["128"],isAccumulated:!1,hasComponents:!0,subFields:[]},51:{num:51,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"avgGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"avgPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"avgNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"maxPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"maxNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"avgTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"maxTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},60:{num:60,name:"avgPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},61:{num:61,name:"avgNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"maxPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},63:{num:63,name:"maxNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},64:{num:64,name:"minHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},65:{num:65,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},66:{num:66,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},67:{num:67,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},68:{num:68,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},69:{num:69,name:"avgLapTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"bestLapIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"minAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["127"],isAccumulated:!1,hasComponents:!0,subFields:[]},78:{num:78,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"playerScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"opponentName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"strokeCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"zoneCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"maxBallSpeed",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},88:{num:88,name:"avgBallSpeed",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"avgVerticalOscillation",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},90:{num:90,name:"avgStanceTimePercent",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"avgStanceTime",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"avgFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"maxFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"totalFractionalCycles",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"avgTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},96:{num:96,name:"minTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},97:{num:97,name:"maxTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},98:{num:98,name:"avgSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},99:{num:99,name:"minSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},100:{num:100,name:"maxSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},101:{num:101,name:"avgLeftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},102:{num:102,name:"avgRightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},103:{num:103,name:"avgLeftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},104:{num:104,name:"avgRightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},105:{num:105,name:"avgCombinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},110:{num:110,name:"sportProfileName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},111:{num:111,name:"sportIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},112:{num:112,name:"timeStanding",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},113:{num:113,name:"standCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},114:{num:114,name:"avgLeftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},115:{num:115,name:"avgRightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},116:{num:116,name:"avgLeftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},117:{num:117,name:"avgLeftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},118:{num:118,name:"avgRightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},119:{num:119,name:"avgRightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},120:{num:120,name:"avgPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},121:{num:121,name:"maxPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},122:{num:122,name:"avgCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},123:{num:123,name:"maxCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},124:{num:124,name:"enhancedAvgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},125:{num:125,name:"enhancedMaxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},126:{num:126,name:"enhancedAvgAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},127:{num:127,name:"enhancedMinAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},128:{num:128,name:"enhancedMaxAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},129:{num:129,name:"avgLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},130:{num:130,name:"maxLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},131:{num:131,name:"levBatteryConsumption",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},132:{num:132,name:"avgVerticalRatio",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},133:{num:133,name:"avgStanceTimeBalance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},134:{num:134,name:"avgStepLength",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},137:{num:137,name:"totalAnaerobicTrainingEffect",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},139:{num:139,name:"avgVam",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},140:{num:140,name:"avgDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},141:{num:141,name:"maxDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},142:{num:142,name:"surfaceInterval",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},143:{num:143,name:"startCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},144:{num:144,name:"endCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},145:{num:145,name:"startN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},146:{num:146,name:"endN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},147:{num:147,name:"avgRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["169"],isAccumulated:!1,hasComponents:!0,subFields:[]},148:{num:148,name:"maxRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["170"],isAccumulated:!1,hasComponents:!0,subFields:[]},149:{num:149,name:"minRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["180"],isAccumulated:!1,hasComponents:!0,subFields:[]},150:{num:150,name:"minTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},155:{num:155,name:"o2Toxicity",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"OTUs",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},156:{num:156,name:"diveNumber",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},168:{num:168,name:"trainingLoadPeak",type:"sint32",baseType:"sint32",array:!1,scale:65536,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},169:{num:169,name:"enhancedAvgRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},170:{num:170,name:"enhancedMaxRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},180:{num:180,name:"enhancedMinRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},181:{num:181,name:"totalGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},182:{num:182,name:"totalFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},183:{num:183,name:"jumpCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},186:{num:186,name:"avgGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},187:{num:187,name:"avgFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},192:{num:192,name:"workoutFeel",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},193:{num:193,name:"workoutRpe",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},194:{num:194,name:"avgSpo2",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},195:{num:195,name:"avgStress",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},196:{num:196,name:"metabolicCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},197:{num:197,name:"sdrrHrv",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"mS",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},198:{num:198,name:"rmssdHrv",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"mS",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},199:{num:199,name:"totalFractionalAscent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},200:{num:200,name:"totalFractionalDescent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},208:{num:208,name:"avgCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},209:{num:209,name:"minCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},210:{num:210,name:"maxCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},19:{num:19,name:"lap",messagesKey:"lapMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"totalStrides",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strides",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1},{name:"sport",value:11}]},{name:"totalStrokes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:2},{name:"sport",value:5},{name:"sport",value:15},{name:"sport",value:37}]}]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"totalFatCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["110"],isAccumulated:!1,hasComponents:!0,subFields:[]},14:{num:14,name:"maxSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["111"],isAccumulated:!1,hasComponents:!0,subFields:[]},15:{num:15,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"avgCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"avgRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},18:{num:18,name:"maxCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"maxRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},19:{num:19,name:"avgPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"maxPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"intensity",type:"intensity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"lapTrigger",type:"lapTrigger",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"numLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"normalizedPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"leftRightBalance",type:"leftRightBalance100",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},35:{num:35,name:"firstLengthIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"avgStrokeDistance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"swimStroke",type:"swimStroke",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"numActiveLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"totalWork",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"J",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"avgAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["112"],isAccumulated:!1,hasComponents:!0,subFields:[]},43:{num:43,name:"maxAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["114"],isAccumulated:!1,hasComponents:!0,subFields:[]},44:{num:44,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"avgGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"avgPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"avgNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"maxPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"maxNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},50:{num:50,name:"avgTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},51:{num:51,name:"maxTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"avgPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"avgNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"maxPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"maxNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},60:{num:60,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},61:{num:61,name:"repetitionNum",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"minAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["113"],isAccumulated:!1,hasComponents:!0,subFields:[]},63:{num:63,name:"minHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"wktStepIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},74:{num:74,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},75:{num:75,name:"strokeCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},76:{num:76,name:"zoneCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},77:{num:77,name:"avgVerticalOscillation",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"avgStanceTimePercent",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},79:{num:79,name:"avgStanceTime",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},80:{num:80,name:"avgFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},81:{num:81,name:"maxFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"totalFractionalCycles",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"playerScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"avgTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"minTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"maxTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"avgSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},88:{num:88,name:"minSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"maxSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"avgLeftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"avgRightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"avgLeftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"avgRightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"avgCombinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},98:{num:98,name:"timeStanding",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},99:{num:99,name:"standCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},100:{num:100,name:"avgLeftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},101:{num:101,name:"avgRightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},102:{num:102,name:"avgLeftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},103:{num:103,name:"avgLeftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},104:{num:104,name:"avgRightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},105:{num:105,name:"avgRightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},106:{num:106,name:"avgPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},107:{num:107,name:"maxPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},108:{num:108,name:"avgCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},109:{num:109,name:"maxCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},110:{num:110,name:"enhancedAvgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},111:{num:111,name:"enhancedMaxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},112:{num:112,name:"enhancedAvgAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},113:{num:113,name:"enhancedMinAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},114:{num:114,name:"enhancedMaxAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},115:{num:115,name:"avgLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},116:{num:116,name:"maxLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},117:{num:117,name:"levBatteryConsumption",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},118:{num:118,name:"avgVerticalRatio",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},119:{num:119,name:"avgStanceTimeBalance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},120:{num:120,name:"avgStepLength",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},121:{num:121,name:"avgVam",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},122:{num:122,name:"avgDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},123:{num:123,name:"maxDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},124:{num:124,name:"minTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},136:{num:136,name:"enhancedAvgRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},137:{num:137,name:"enhancedMaxRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},147:{num:147,name:"avgRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["136"],isAccumulated:!1,hasComponents:!0,subFields:[]},148:{num:148,name:"maxRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["137"],isAccumulated:!1,hasComponents:!0,subFields:[]},149:{num:149,name:"totalGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},150:{num:150,name:"totalFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},151:{num:151,name:"jumpCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},153:{num:153,name:"avgGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},154:{num:154,name:"avgFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},156:{num:156,name:"totalFractionalAscent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},157:{num:157,name:"totalFractionalDescent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},158:{num:158,name:"avgCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},159:{num:159,name:"minCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},160:{num:160,name:"maxCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},101:{num:101,name:"length",messagesKey:"lengthMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"totalStrokes",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"strokes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"swimStroke",type:"swimStroke",baseType:"enum",array:!1,scale:1,offset:0,units:"swim_stroke",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"avgSwimmingCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"strokes/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"lengthType",type:"lengthType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"playerScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"strokeCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"zoneCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"enhancedAvgRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"enhancedMaxRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"avgRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["22"],isAccumulated:!1,hasComponents:!0,subFields:[]},25:{num:25,name:"maxRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["23"],isAccumulated:!1,hasComponents:!0,subFields:[]}}},20:{num:20,name:"record",messagesKey:"recordMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"altitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["78"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"heartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"cadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},6:{num:6,name:"speed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["73"],isAccumulated:!1,hasComponents:!0,subFields:[]},7:{num:7,name:"power",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"compressedSpeedDistance",type:"byte",baseType:"byte",array:!0,scale:[100,16],offset:[0,0],units:["m/s","m"],bits:[12,12],components:["6","5"],isAccumulated:!1,hasComponents:!0,subFields:[]},9:{num:9,name:"grade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"resistance",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"timeFromCourse",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"cycleLength",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"temperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"speed1s",type:"uint8",baseType:"uint8",array:!0,scale:16,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"cycles",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:["cycles"],bits:[8],components:["19"],isAccumulated:!1,hasComponents:!0,subFields:[]},19:{num:19,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},28:{num:28,name:"compressedAccumulatedPower",type:"uint16",baseType:"uint16",array:!1,scale:[1],offset:[0],units:["watts"],bits:[16],components:["29"],isAccumulated:!1,hasComponents:!0,subFields:[]},29:{num:29,name:"accumulatedPower",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},30:{num:30,name:"leftRightBalance",type:"leftRightBalance",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"verticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"calories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"verticalOscillation",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"stanceTimePercent",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"stanceTime",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"activityType",type:"activityType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},43:{num:43,name:"leftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"rightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"leftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"rightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"combinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"time128",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"strokeType",type:"strokeType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},50:{num:50,name:"zone",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},51:{num:51,name:"ballSpeed",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"cadence256",type:"uint16",baseType:"uint16",array:!1,scale:256,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"fractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"totalHemoglobinConc",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"totalHemoglobinConcMin",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"totalHemoglobinConcMax",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"saturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"saturatedHemoglobinPercentMin",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"saturatedHemoglobinPercentMax",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},67:{num:67,name:"leftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},68:{num:68,name:"rightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},69:{num:69,name:"leftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"leftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"rightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},72:{num:72,name:"rightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},73:{num:73,name:"enhancedSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"enhancedAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},81:{num:81,name:"batterySoc",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"motorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"verticalRatio",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"stanceTimeBalance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"stepLength",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"cycleLength16",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"absolutePressure",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"Pa",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"depth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"nextStopDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"nextStopTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"timeToSurface",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},96:{num:96,name:"ndlTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},97:{num:97,name:"cnsLoad",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},98:{num:98,name:"n2Load",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},99:{num:99,name:"respirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:["s"],bits:[8],components:["108"],isAccumulated:!1,hasComponents:!0,subFields:[]},108:{num:108,name:"enhancedRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},114:{num:114,name:"grit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},115:{num:115,name:"flow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},116:{num:116,name:"currentStress",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},117:{num:117,name:"ebikeTravelRange",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"km",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},118:{num:118,name:"ebikeBatteryLevel",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},119:{num:119,name:"ebikeAssistMode",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"depends on sensor",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},120:{num:120,name:"ebikeAssistLevelPercent",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},123:{num:123,name:"airTimeRemaining",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},124:{num:124,name:"pressureSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},125:{num:125,name:"volumeSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},126:{num:126,name:"rmv",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},127:{num:127,name:"ascentRate",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},129:{num:129,name:"po2",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},139:{num:139,name:"coreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},21:{num:21,name:"event",messagesKey:"eventMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"data16",type:"uint16",baseType:"uint16",array:!1,scale:[1],offset:[0],units:[""],bits:[16],components:["3"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"data",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"timerTrigger",type:"timerTrigger",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:0}]},{name:"coursePointIndex",type:"messageIndex",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:10}]},{name:"batteryLevel",type:"uint16",baseType:"uint16",scale:1e3,offset:0,units:"V",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:11}]},{name:"virtualPartnerSpeed",type:"uint16",baseType:"uint16",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:12}]},{name:"hrHighAlert",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"bpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:13}]},{name:"hrLowAlert",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"bpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:14}]},{name:"speedHighAlert",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:15}]},{name:"speedLowAlert",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:16}]},{name:"cadHighAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:17}]},{name:"cadLowAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:18}]},{name:"powerHighAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"watts",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:19}]},{name:"powerLowAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"watts",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:20}]},{name:"timeDurationAlert",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:23}]},{name:"distanceDurationAlert",type:"uint32",baseType:"uint32",scale:100,offset:0,units:"m",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:24}]},{name:"calorieDurationAlert",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"calories",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:25}]},{name:"fitnessEquipmentState",type:"fitnessEquipmentState",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:27}]},{name:"sportPoint",type:"uint32",baseType:"uint32",scale:[1,1],offset:[0,0],units:["",""],bits:[16,16],components:["7","8"],hasComponents:!0,map:[{name:"event",value:33}]},{name:"gearChangeData",type:"uint32",baseType:"uint32",scale:[1,1,1,1],offset:[0,0,0,0],units:["","","",""],bits:[8,8,8,8],components:["11","12","9","10"],hasComponents:!0,map:[{name:"event",value:42},{name:"event",value:43}]},{name:"riderPosition",type:"riderPositionType",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:44}]},{name:"commTimeout",type:"commTimeoutType",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:47}]},{name:"diveAlert",type:"diveAlert",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:56}]},{name:"autoActivityDetectDuration",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"min",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:54}]},{name:"radarThreatAlert",type:"uint32",baseType:"uint32",scale:[1,1,10,10],offset:[0,0,0,0],units:["","","",""],bits:[8,8,8,8],components:["21","22","23","24"],hasComponents:!0,map:[{name:"event",value:75}]}]},4:{num:4,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"score",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"frontGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"frontGear",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"rearGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"rearGear",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"activityType",type:"activityType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"startTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"autoActivityDetectStartTimestamp",type:"dateTime",baseType:"uint32",scale:1,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:54}]}]},21:{num:21,name:"radarThreatLevelMax",type:"radarThreatLevelType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"radarThreatCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"radarThreatAvgApproachSpeed",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"radarThreatMaxApproachSpeed",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},23:{num:23,name:"deviceInfo",messagesKey:"deviceInfoMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"deviceType",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"bleDeviceType",type:"bleDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:3}]},{name:"antplusDeviceType",type:"antplusDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:1}]},{name:"antDeviceType",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:0}]},{name:"localDeviceType",type:"localDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:5}]}]},2:{num:2,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},5:{num:5,name:"softwareVersion",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"hardwareVersion",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"cumOperatingTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"batteryVoltage",type:"uint16",baseType:"uint16",array:!1,scale:256,offset:0,units:"V",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"batteryStatus",type:"batteryStatus",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"sensorPosition",type:"bodyLocation",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"descriptor",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"antTransmissionType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"antDeviceNumber",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"antNetwork",type:"antNetwork",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"sourceType",type:"sourceType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"productName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"batteryLevel",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},375:{num:375,name:"deviceAuxBatteryInfo",messagesKey:"deviceAuxBatteryInfoMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"batteryVoltage",type:"uint16",baseType:"uint16",array:!1,scale:256,offset:0,units:"V",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"batteryStatus",type:"batteryStatus",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"batteryIdentifier",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},72:{num:72,name:"trainingFile",messagesKey:"trainingFileMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"type",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},3:{num:3,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeCreated",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},128:{num:128,name:"weatherConditions",messagesKey:"weatherConditionsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"weatherReport",type:"weatherReport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"temperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"condition",type:"weatherStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"windDirection",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"windSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"precipitationProbability",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"temperatureFeelsLike",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"relativeHumidity",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"location",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"observedAtTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"observedLocationLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"observedLocationLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"dayOfWeek",type:"dayOfWeek",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"highTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"lowTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},129:{num:129,name:"weatherAlert",messagesKey:"weatherAlertMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"reportId",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"issueTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"expireTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"severity",type:"weatherSeverity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"type",type:"weatherSevereType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},160:{num:160,name:"gpsMetadata",messagesKey:"gpsMetadataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"enhancedAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"enhancedSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"heading",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"utcTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"velocity",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},161:{num:161,name:"cameraEvent",messagesKey:"cameraEventMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"cameraEventType",type:"cameraEventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"cameraFileUuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"cameraOrientation",type:"cameraOrientationType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},164:{num:164,name:"gyroscopeData",messagesKey:"gyroscopeDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"gyroX",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"gyroY",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"gyroZ",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"calibratedGyroX",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"calibratedGyroY",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"calibratedGyroZ",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},165:{num:165,name:"accelerometerData",messagesKey:"accelerometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"accelX",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"accelY",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"accelZ",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"calibratedAccelX",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"g",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"calibratedAccelY",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"g",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"calibratedAccelZ",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"g",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"compressedCalibratedAccelX",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"compressedCalibratedAccelY",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"compressedCalibratedAccelZ",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},208:{num:208,name:"magnetometerData",messagesKey:"magnetometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"magX",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"magY",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"magZ",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"calibratedMagX",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"G",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"calibratedMagY",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"G",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"calibratedMagZ",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"G",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},209:{num:209,name:"barometerData",messagesKey:"barometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"baroPres",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"Pa",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},167:{num:167,name:"threeDSensorCalibration",messagesKey:"threeDSensorCalibrationMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensorType",type:"sensorType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"calibrationFactor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"accelCalFactor",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"g",bits:[],components:[],hasComponents:!1,map:[{name:"sensorType",value:0}]},{name:"gyroCalFactor",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"deg/s",bits:[],components:[],hasComponents:!1,map:[{name:"sensorType",value:1}]}]},2:{num:2,name:"calibrationDivisor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"levelShift",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"offsetCal",type:"sint32",baseType:"sint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"orientationMatrix",type:"sint32",baseType:"sint32",array:!0,scale:65535,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},210:{num:210,name:"oneDSensorCalibration",messagesKey:"oneDSensorCalibrationMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensorType",type:"sensorType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"calibrationFactor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"baroCalFactor",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"Pa",bits:[],components:[],hasComponents:!1,map:[{name:"sensorType",value:3}]}]},2:{num:2,name:"calibrationDivisor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"levelShift",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"offsetCal",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},169:{num:169,name:"videoFrame",messagesKey:"videoFrameMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"frameNumber",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},174:{num:174,name:"obdiiData",messagesKey:"obdiiDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"timeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"pid",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"rawData",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"pidDataSize",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"systemTime",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"startTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"startTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},177:{num:177,name:"nmeaSentence",messagesKey:"nmeaSentenceMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sentence",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},178:{num:178,name:"aviationAttitude",messagesKey:"aviationAttitudeMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"systemTime",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"pitch",type:"sint16",baseType:"sint16",array:!0,scale:10430.38,offset:0,units:"radians",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"roll",type:"sint16",baseType:"sint16",array:!0,scale:10430.38,offset:0,units:"radians",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"accelLateral",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"m/s^2",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"accelNormal",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"m/s^2",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"turnRate",type:"sint16",baseType:"sint16",array:!0,scale:1024,offset:0,units:"radians/second",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"stage",type:"attitudeStage",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"attitudeStageComplete",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"track",type:"uint16",baseType:"uint16",array:!0,scale:10430.38,offset:0,units:"radians",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"validity",type:"attitudeValidity",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},184:{num:184,name:"video",messagesKey:"videoMesgs",fields:{0:{num:0,name:"url",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"hostingProvider",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"duration",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},185:{num:185,name:"videoTitle",messagesKey:"videoTitleMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"messageCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"text",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},186:{num:186,name:"videoDescription",messagesKey:"videoDescriptionMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"messageCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"text",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},187:{num:187,name:"videoClip",messagesKey:"videoClipMesgs",fields:{0:{num:0,name:"clipNumber",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"startTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"endTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"endTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"clipStart",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"clipEnd",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},225:{num:225,name:"set",messagesKey:"setMesgs",fields:{254:{num:254,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"duration",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"repetitions",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"weight",type:"uint16",baseType:"uint16",array:!1,scale:16,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"setType",type:"setType",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"category",type:"exerciseCategory",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"categorySubtype",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"weightDisplayUnit",type:"fitBaseUnit",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"wktStepIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},285:{num:285,name:"jump",messagesKey:"jumpMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"distance",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"height",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"rotations",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"hangTime",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"score",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"speed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["8"],isAccumulated:!1,hasComponents:!0,subFields:[]},8:{num:8,name:"enhancedSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},312:{num:312,name:"split",messagesKey:"splitMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"splitType",type:"splitType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"avgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"maxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"avgVertSpeed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"endTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"totalCalories",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},74:{num:74,name:"startElevation",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},110:{num:110,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},313:{num:313,name:"splitSummary",messagesKey:"splitSummaryMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"splitType",type:"splitType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"numSplits",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"avgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"maxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"avgVertSpeed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"totalCalories",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},65:{num:65,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},77:{num:77,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},317:{num:317,name:"climbPro",messagesKey:"climbProMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"climbProEvent",type:"climbProEvent",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"climbNumber",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"climbCategory",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"currentDist",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},206:{num:206,name:"fieldDescription",messagesKey:"fieldDescriptionMesgs",fields:{0:{num:0,name:"developerDataIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"fieldDefinitionNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"fitBaseTypeId",type:"fitBaseType",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"fieldName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"array",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"components",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"scale",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"offset",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"units",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"bits",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"accumulate",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"fitBaseUnitId",type:"fitBaseUnit",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"nativeMesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"nativeFieldNum",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},207:{num:207,name:"developerDataId",messagesKey:"developerDataIdMesgs",fields:{0:{num:0,name:"developerId",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"applicationId",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"manufacturerId",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"developerDataIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"applicationVersion",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},31:{num:31,name:"course",messagesKey:"courseMesgs",fields:{4:{num:4,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"capabilities",type:"courseCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},32:{num:32,name:"coursePoint",messagesKey:"coursePointMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"type",type:"coursePoint",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"favorite",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},148:{num:148,name:"segmentId",messagesKey:"segmentIdMesgs",fields:{0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"uuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"userProfilePrimaryKey",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"deviceId",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"defaultRaceLeader",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"deleteStatus",type:"segmentDeleteStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"selectionType",type:"segmentSelectionType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},149:{num:149,name:"segmentLeaderboardEntry",messagesKey:"segmentLeaderboardEntryMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"type",type:"segmentLeaderboardType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"groupPrimaryKey",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"activityId",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"segmentTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"activityIdString",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},150:{num:150,name:"segmentPoint",messagesKey:"segmentPointMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"altitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["6"],isAccumulated:!1,hasComponents:!0,subFields:[]},5:{num:5,name:"leaderTime",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"enhancedAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},142:{num:142,name:"segmentLap",messagesKey:"segmentLapMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"totalStrokes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:2}]}]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"totalFatCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"maxSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"avgCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"maxCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"avgPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"maxPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"necLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"necLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"swcLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"swcLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"normalizedPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"leftRightBalance",type:"leftRightBalance100",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"totalWork",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"J",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"avgAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["91"],isAccumulated:!1,hasComponents:!0,subFields:[]},35:{num:35,name:"maxAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["92"],isAccumulated:!1,hasComponents:!0,subFields:[]},36:{num:36,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"avgGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"avgPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"avgNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"maxPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"maxNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"avgTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},43:{num:43,name:"maxTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"avgPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"avgNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"maxPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"maxNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},50:{num:50,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},51:{num:51,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"repetitionNum",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"minAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["93"],isAccumulated:!1,hasComponents:!0,subFields:[]},55:{num:55,name:"minHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"wktStepIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"sportEvent",type:"sportEvent",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"avgLeftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},60:{num:60,name:"avgRightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},61:{num:61,name:"avgLeftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"avgRightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},63:{num:63,name:"avgCombinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},64:{num:64,name:"status",type:"segmentLapStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},65:{num:65,name:"uuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},66:{num:66,name:"avgFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},67:{num:67,name:"maxFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},68:{num:68,name:"totalFractionalCycles",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},69:{num:69,name:"frontGearShiftCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"rearGearShiftCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"timeStanding",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},72:{num:72,name:"standCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},73:{num:73,name:"avgLeftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},74:{num:74,name:"avgRightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},75:{num:75,name:"avgLeftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},76:{num:76,name:"avgLeftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},77:{num:77,name:"avgRightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"avgRightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},79:{num:79,name:"avgPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},80:{num:80,name:"maxPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},81:{num:81,name:"avgCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"maxCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"totalGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"totalFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"avgGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"avgFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"totalFractionalAscent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},90:{num:90,name:"totalFractionalDescent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"enhancedAvgAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"enhancedMaxAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"enhancedMinAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},151:{num:151,name:"segmentFile",messagesKey:"segmentFileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"fileUuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"userProfilePrimaryKey",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"leaderType",type:"segmentLeaderboardType",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"leaderGroupPrimaryKey",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"leaderActivityId",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"leaderActivityIdString",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"defaultRaceLeader",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},26:{num:26,name:"workout",messagesKey:"workoutMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"capabilities",type:"workoutCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"numValidSteps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"wktName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"poolLength",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"poolLengthUnit",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"wktDescription",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},158:{num:158,name:"workoutSession",messagesKey:"workoutSessionMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"numValidSteps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"firstStepIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"poolLength",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"poolLengthUnit",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},27:{num:27,name:"workoutStep",messagesKey:"workoutStepMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"wktStepName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"durationType",type:"wktStepDuration",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"durationValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"durationTime",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:0},{name:"durationType",value:28}]},{name:"durationDistance",type:"uint32",baseType:"uint32",scale:100,offset:0,units:"m",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:1}]},{name:"durationHr",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:2},{name:"durationType",value:3}]},{name:"durationCalories",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"calories",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:4}]},{name:"durationStep",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:6},{name:"durationType",value:7},{name:"durationType",value:8},{name:"durationType",value:9},{name:"durationType",value:10},{name:"durationType",value:11},{name:"durationType",value:12},{name:"durationType",value:13}]},{name:"durationPower",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:14},{name:"durationType",value:15}]},{name:"durationReps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:29}]}]},3:{num:3,name:"targetType",type:"wktStepTarget",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"targetValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"targetSpeedZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:0}]},{name:"targetHrZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:1}]},{name:"targetCadenceZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:3}]},{name:"targetPowerZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:4}]},{name:"repeatSteps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:6}]},{name:"repeatTime",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:7}]},{name:"repeatDistance",type:"uint32",baseType:"uint32",scale:100,offset:0,units:"m",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:8}]},{name:"repeatCalories",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"calories",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:9}]},{name:"repeatHr",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:10},{name:"durationType",value:11}]},{name:"repeatPower",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:12},{name:"durationType",value:13}]},{name:"targetStrokeType",type:"swimStroke",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:11}]}]},5:{num:5,name:"customTargetValueLow",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"customTargetSpeedLow",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:0}]},{name:"customTargetHeartRateLow",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:1}]},{name:"customTargetCadenceLow",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:3}]},{name:"customTargetPowerLow",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:4}]}]},6:{num:6,name:"customTargetValueHigh",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"customTargetSpeedHigh",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:0}]},{name:"customTargetHeartRateHigh",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:1}]},{name:"customTargetCadenceHigh",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:3}]},{name:"customTargetPowerHigh",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:4}]}]},7:{num:7,name:"intensity",type:"intensity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"notes",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"equipment",type:"workoutEquipment",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"exerciseCategory",type:"exerciseCategory",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"exerciseName",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"exerciseWeight",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"weightDisplayUnit",type:"fitBaseUnit",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"secondaryTargetType",type:"wktStepTarget",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"secondaryTargetValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"secondaryTargetSpeedZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:0}]},{name:"secondaryTargetHrZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:1}]},{name:"secondaryTargetCadenceZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:3}]},{name:"secondaryTargetPowerZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:4}]},{name:"secondaryTargetStrokeType",type:"swimStroke",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:11}]}]},21:{num:21,name:"secondaryCustomTargetValueLow",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"secondaryCustomTargetSpeedLow",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:0}]},{name:"secondaryCustomTargetHeartRateLow",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:1}]},{name:"secondaryCustomTargetCadenceLow",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:3}]},{name:"secondaryCustomTargetPowerLow",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:4}]}]},22:{num:22,name:"secondaryCustomTargetValueHigh",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"secondaryCustomTargetSpeedHigh",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:0}]},{name:"secondaryCustomTargetHeartRateHigh",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:1}]},{name:"secondaryCustomTargetCadenceHigh",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:3}]},{name:"secondaryCustomTargetPowerHigh",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:4}]}]}}},264:{num:264,name:"exerciseTitle",messagesKey:"exerciseTitleMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"exerciseCategory",type:"exerciseCategory",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"exerciseName",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"wktStepName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},28:{num:28,name:"schedule",messagesKey:"scheduleMesgs",fields:{0:{num:0,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},2:{num:2,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"timeCreated",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"completed",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"type",type:"schedule",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"scheduledTime",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},33:{num:33,name:"totals",messagesKey:"totalsMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timerTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"calories",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"elapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sessions",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"sportIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},30:{num:30,name:"weightScale",messagesKey:"weightScaleMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"weight",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"percentFat",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"percentHydration",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"visceralFatMass",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"boneMass",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"muscleMass",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"basalMet",type:"uint16",baseType:"uint16",array:!1,scale:4,offset:0,units:"kcal/day",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"physiqueRating",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"activeMet",type:"uint16",baseType:"uint16",array:!1,scale:4,offset:0,units:"kcal/day",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"metabolicAge",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"years",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"visceralFatRating",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"userProfileIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"bmi",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kg/m^2",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},51:{num:51,name:"bloodPressure",messagesKey:"bloodPressureMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"systolicPressure",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"diastolicPressure",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"meanArterialPressure",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"map3SampleMean",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"mapMorningValues",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"mapEveningValues",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"heartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"heartRateType",type:"hrType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"status",type:"bpStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"userProfileIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},103:{num:103,name:"monitoringInfo",messagesKey:"monitoringInfoMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"activityType",type:"activityType",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"cyclesToDistance",type:"uint16",baseType:"uint16",array:!0,scale:5e3,offset:0,units:"m/cycle",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"cyclesToCalories",type:"uint16",baseType:"uint16",array:!0,scale:5e3,offset:0,units:"kcal/cycle",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"restingMetabolicRate",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal / day",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},55:{num:55,name:"monitoring",messagesKey:"monitoringMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"calories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"cycles",type:"uint32",baseType:"uint32",array:!1,scale:2,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"steps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"steps",bits:[],components:[],hasComponents:!1,map:[{name:"activityType",value:6},{name:"activityType",value:1}]},{name:"strokes",type:"uint32",baseType:"uint32",scale:2,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"activityType",value:2},{name:"activityType",value:5}]}]},4:{num:4,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"activityType",type:"activityType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"activitySubtype",type:"activitySubtype",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"activityLevel",type:"activityLevel",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"distance16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"100 * m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"cycles16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"2 * cycles (steps)",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"activeTime16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"temperature",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"temperatureMin",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"temperatureMax",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"activityTime",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"activeCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"currentActivityTypeIntensity",type:"byte",baseType:"byte",array:!1,scale:[1,1],offset:[0,0],units:["",""],bits:[5,3],components:["5","28"],isAccumulated:!1,hasComponents:!0,subFields:[]},25:{num:25,name:"timestampMin8",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"timestamp16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"heartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"intensity",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"durationMin",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"duration",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"ascent",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"descent",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"moderateActivityMinutes",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"vigorousActivityMinutes",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"pushes",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},211:{num:211,name:"monitoringHrData",messagesKey:"monitoringHrDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"restingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"currentDayRestingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},269:{num:269,name:"spo2Data",messagesKey:"spo2DataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"readingSpo2",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"readingConfidence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"mode",type:"spo2MeasurementType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},132:{num:132,name:"hr",messagesKey:"hrMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time256",type:"uint8",baseType:"uint8",array:!1,scale:[256],offset:[0],units:["s"],bits:[8],components:["0"],isAccumulated:!1,hasComponents:!0,subFields:[]},6:{num:6,name:"filteredBpm",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"eventTimestamp",type:"uint32",baseType:"uint32",array:!0,scale:1024,offset:0,units:"s",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},10:{num:10,name:"eventTimestamp12",type:"byte",baseType:"byte",array:!0,scale:[1024,1024,1024,1024,1024,1024,1024,1024,1024,1024],offset:[0,0,0,0,0,0,0,0,0,0],units:["s","","","","","","","","",""],bits:[12,12,12,12,12,12,12,12,12,12],components:["9","9","9","9","9","9","9","9","9","9"],isAccumulated:!1,hasComponents:!0,subFields:[]}}},227:{num:227,name:"stressLevel",messagesKey:"stressLevelMesgs",fields:{0:{num:0,name:"stressLevelValue",type:"sint16",baseType:"sint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"stressLevelTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},229:{num:229,name:"maxMetData",messagesKey:"maxMetDataMesgs",fields:{0:{num:0,name:"updateTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"vo2Max",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mL/kg/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"maxMetCategory",type:"maxMetCategory",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"calibratedData",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"hrSource",type:"maxMetHeartRateSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"speedSource",type:"maxMetSpeedSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},314:{num:314,name:"hsaBodyBatteryData",messagesKey:"hsaBodyBatteryDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"level",type:"sint8",baseType:"sint8",array:!0,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"charged",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"uncharged",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},315:{num:315,name:"hsaEvent",messagesKey:"hsaEventMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"eventId",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},302:{num:302,name:"hsaAccelerometerData",messagesKey:"hsaAccelerometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"samplingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"accelX",type:"sint16",baseType:"sint16",array:!0,scale:1.024,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"accelY",type:"sint16",baseType:"sint16",array:!0,scale:1.024,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"accelZ",type:"sint16",baseType:"sint16",array:!0,scale:1.024,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timestamp32k",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},376:{num:376,name:"hsaGyroscopeData",messagesKey:"hsaGyroscopeDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"samplingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"1/32768 s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"gyroX",type:"sint16",baseType:"sint16",array:!0,scale:28.57143,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"gyroY",type:"sint16",baseType:"sint16",array:!0,scale:28.57143,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"gyroZ",type:"sint16",baseType:"sint16",array:!0,scale:28.57143,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timestamp32k",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"1/32768 s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},304:{num:304,name:"hsaStepData",messagesKey:"hsaStepDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"steps",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"steps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},305:{num:305,name:"hsaSpo2Data",messagesKey:"hsaSpo2DataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"readingSpo2",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"confidence",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},306:{num:306,name:"hsaStressData",messagesKey:"hsaStressDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"stressLevel",type:"sint8",baseType:"sint8",array:!0,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},307:{num:307,name:"hsaRespirationData",messagesKey:"hsaRespirationDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"respirationRate",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},308:{num:308,name:"hsaHeartRateData",messagesKey:"hsaHeartRateDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"status",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"heartRate",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},389:{num:389,name:"hsaConfigurationData",messagesKey:"hsaConfigurationDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"data",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"dataSize",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},409:{num:409,name:"hsaWristTemperatureData",messagesKey:"hsaWristTemperatureDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"value",type:"uint16",baseType:"uint16",array:!0,scale:1e3,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},145:{num:145,name:"memoGlob",messagesKey:"memoGlobMesgs",fields:{250:{num:250,name:"partIndex",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"memo",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"parentIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"fieldNum",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"data",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},275:{num:275,name:"sleepLevel",messagesKey:"sleepLevelMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sleepLevel",type:"sleepLevel",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},82:{num:82,name:"antChannelId",messagesKey:"antChannelIdMesgs",fields:{0:{num:0,name:"channelNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"deviceType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"deviceNumber",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"transmissionType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},80:{num:80,name:"antRx",messagesKey:"antRxMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgId",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"mesgData",type:"byte",baseType:"byte",array:!0,scale:[1,1,1,1,1,1,1,1,1],offset:[0,0,0,0,0,0,0,0,0],units:["","","","","","","","",""],bits:[8,8,8,8,8,8,8,8,8],components:["3","4","4","4","4","4","4","4","4"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"channelNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"data",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},81:{num:81,name:"antTx",messagesKey:"antTxMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgId",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"mesgData",type:"byte",baseType:"byte",array:!0,scale:[1,1,1,1,1,1,1,1,1],offset:[0,0,0,0,0,0,0,0,0],units:["","","","","","","","",""],bits:[8,8,8,8,8,8,8,8,8],components:["3","4","4","4","4","4","4","4","4"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"channelNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"data",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},200:{num:200,name:"exdScreenConfiguration",messagesKey:"exdScreenConfigurationMesgs",fields:{0:{num:0,name:"screenIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"fieldCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"layout",type:"exdLayout",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"screenEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},201:{num:201,name:"exdDataFieldConfiguration",messagesKey:"exdDataFieldConfigurationMesgs",fields:{0:{num:0,name:"screenIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"conceptField",type:"byte",baseType:"byte",array:!1,scale:[1,1],offset:[0,0],units:["",""],bits:[4,4],components:["2","3"],isAccumulated:!1,hasComponents:!0,subFields:[]},2:{num:2,name:"fieldId",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"conceptCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"displayType",type:"exdDisplayType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"title",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},202:{num:202,name:"exdDataConceptConfiguration",messagesKey:"exdDataConceptConfigurationMesgs",fields:{0:{num:0,name:"screenIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"conceptField",type:"byte",baseType:"byte",array:!1,scale:[1,1],offset:[0,0],units:["",""],bits:[4,4],components:["2","3"],isAccumulated:!1,hasComponents:!0,subFields:[]},2:{num:2,name:"fieldId",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"conceptIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"dataPage",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"conceptKey",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"scaling",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"dataUnits",type:"exdDataUnits",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"qualifier",type:"exdQualifiers",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"descriptor",type:"exdDescriptors",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"isSigned",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},268:{num:268,name:"diveSummary",messagesKey:"diveSummaryMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"referenceMesg",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"referenceIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"avgDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"maxDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"surfaceInterval",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"startCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"endCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"startN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"endN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"o2Toxicity",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"OTUs",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"diveNumber",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"bottomTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"avgPressureSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"avgVolumeSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"avgRmv",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"descentTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"ascentTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"avgAscentRate",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"avgDescentRate",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"maxAscentRate",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"maxDescentRate",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"hangTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},289:{num:289,name:"aadAccelFeatures",messagesKey:"aadAccelFeaturesMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"time",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"energyTotal",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"zeroCrossCnt",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"instance",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeAboveThreshold",type:"uint16",baseType:"uint16",array:!1,scale:25,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},78:{num:78,name:"hrv",messagesKey:"hrvMesgs",fields:{0:{num:0,name:"time",type:"uint16",baseType:"uint16",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},290:{num:290,name:"beatIntervals",messagesKey:"beatIntervalsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},370:{num:370,name:"hrvStatusSummary",messagesKey:"hrvStatusSummaryMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"weeklyAverage",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"lastNightAverage",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"lastNight5MinHigh",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"baselineLowUpper",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"baselineBalancedLower",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"baselineBalancedUpper",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"status",type:"hrvStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},371:{num:371,name:"hrvValue",messagesKey:"hrvValueMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"value",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},372:{num:372,name:"rawBbi",messagesKey:"rawBbiMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"data",type:"uint16",baseType:"uint16",array:!0,scale:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],offset:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],units:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],bits:[14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1],components:["2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4"],isAccumulated:!1,hasComponents:!0,subFields:[]},2:{num:2,name:"time",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"quality",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"gap",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},297:{num:297,name:"respirationRate",messagesKey:"respirationRateMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"respirationRate",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},387:{num:387,name:"chronoShotSession",messagesKey:"chronoShotSessionMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"minSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"maxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"avgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"shotCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"projectileType",type:"projectileType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"grainWeight",type:"uint32",baseType:"uint32",array:!1,scale:10,offset:0,units:"gr",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"standardDeviation",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},388:{num:388,name:"chronoShotData",messagesKey:"chronoShotDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"shotSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"shotNum",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},319:{num:319,name:"tankUpdate",messagesKey:"tankUpdateMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensor",type:"antChannelId",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"pressure",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},323:{num:323,name:"tankSummary",messagesKey:"tankSummaryMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensor",type:"antChannelId",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"startPressure",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"endPressure",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"volumeUsed",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"L",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},346:{num:346,name:"sleepAssessment",messagesKey:"sleepAssessmentMesgs",fields:{0:{num:0,name:"combinedAwakeScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"awakeTimeScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"awakeningsCountScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"deepSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sleepDurationScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"lightSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"overallSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"sleepQualityScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"sleepRecoveryScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"remSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"sleepRestlessnessScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"awakeningsCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"interruptionsScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"averageStressDuringSleep",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},470:{num:470,name:"sleepDisruptionSeverityPeriod",messagesKey:"sleepDisruptionSeverityPeriodMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"severity",type:"sleepDisruptionSeverity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},471:{num:471,name:"sleepDisruptionOvernightSeverity",messagesKey:"sleepDisruptionOvernightSeverityMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"severity",type:"sleepDisruptionSeverity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},412:{num:412,name:"napEvent",messagesKey:"napEventMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"seconds",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"startTimezoneOffset",type:"sint16",baseType:"sint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"endTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"seconds",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"endTimezoneOffset",type:"sint16",baseType:"sint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"feedback",type:"napPeriodFeedback",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"isDeleted",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"source",type:"napSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"updateTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},398:{num:398,name:"skinTempOvernight",messagesKey:"skinTempOvernightMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"averageDeviation",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"average7DayDeviation",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"nightlyValue",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},105:{num:105,name:"pad",messagesKey:"padMesgs",fields:{}}},types:{file:{1:"device",2:"settings",3:"sport",4:"activity",5:"workout",6:"course",7:"schedules",9:"weight",10:"totals",11:"goals",14:"bloodPressure",15:"monitoringA",20:"activitySummary",28:"monitoringDaily",32:"monitoringB",34:"segment",35:"segmentList",40:"exdConfiguration",247:"mfgRangeMin",254:"mfgRangeMax"},mesgNum:{0:"fileId",1:"capabilities",2:"deviceSettings",3:"userProfile",4:"hrmProfile",5:"sdmProfile",6:"bikeProfile",7:"zonesTarget",8:"hrZone",9:"powerZone",10:"metZone",12:"sport",13:"trainingSettings",15:"goal",18:"session",19:"lap",20:"record",21:"event",23:"deviceInfo",26:"workout",27:"workoutStep",28:"schedule",30:"weightScale",31:"course",32:"coursePoint",33:"totals",34:"activity",35:"software",37:"fileCapabilities",38:"mesgCapabilities",39:"fieldCapabilities",49:"fileCreator",51:"bloodPressure",53:"speedZone",55:"monitoring",72:"trainingFile",78:"hrv",80:"antRx",81:"antTx",82:"antChannelId",101:"length",103:"monitoringInfo",105:"pad",106:"slaveDevice",127:"connectivity",128:"weatherConditions",129:"weatherAlert",131:"cadenceZone",132:"hr",142:"segmentLap",145:"memoGlob",148:"segmentId",149:"segmentLeaderboardEntry",150:"segmentPoint",151:"segmentFile",158:"workoutSession",159:"watchfaceSettings",160:"gpsMetadata",161:"cameraEvent",162:"timestampCorrelation",164:"gyroscopeData",165:"accelerometerData",167:"threeDSensorCalibration",169:"videoFrame",174:"obdiiData",177:"nmeaSentence",178:"aviationAttitude",184:"video",185:"videoTitle",186:"videoDescription",187:"videoClip",188:"ohrSettings",200:"exdScreenConfiguration",201:"exdDataFieldConfiguration",202:"exdDataConceptConfiguration",206:"fieldDescription",207:"developerDataId",208:"magnetometerData",209:"barometerData",210:"oneDSensorCalibration",211:"monitoringHrData",216:"timeInZone",225:"set",227:"stressLevel",229:"maxMetData",258:"diveSettings",259:"diveGas",262:"diveAlarm",264:"exerciseTitle",268:"diveSummary",269:"spo2Data",275:"sleepLevel",285:"jump",289:"aadAccelFeatures",290:"beatIntervals",297:"respirationRate",302:"hsaAccelerometerData",304:"hsaStepData",305:"hsaSpo2Data",306:"hsaStressData",307:"hsaRespirationData",308:"hsaHeartRateData",312:"split",313:"splitSummary",314:"hsaBodyBatteryData",315:"hsaEvent",317:"climbPro",319:"tankUpdate",323:"tankSummary",346:"sleepAssessment",370:"hrvStatusSummary",371:"hrvValue",372:"rawBbi",375:"deviceAuxBatteryInfo",376:"hsaGyroscopeData",387:"chronoShotSession",388:"chronoShotData",389:"hsaConfigurationData",393:"diveApneaAlarm",398:"skinTempOvernight",409:"hsaWristTemperatureData",412:"napEvent",470:"sleepDisruptionSeverityPeriod",471:"sleepDisruptionOvernightSeverity",65280:"mfgRangeMin",65534:"mfgRangeMax"},checksum:{0:"clear",1:"ok"},fileFlags:{2:"read",4:"write",8:"erase"},mesgCount:{0:"numPerFile",1:"maxPerFile",2:"maxPerFileType"},dateTime:{268435456:"min"},localDateTime:{268435456:"min"},messageIndex:{32768:"selected",28672:"reserved",4095:"mask"},deviceIndex:{0:"creator"},gender:{0:"female",1:"male"},language:{0:"english",1:"french",2:"italian",3:"german",4:"spanish",5:"croatian",6:"czech",7:"danish",8:"dutch",9:"finnish",10:"greek",11:"hungarian",12:"norwegian",13:"polish",14:"portuguese",15:"slovakian",16:"slovenian",17:"swedish",18:"russian",19:"turkish",20:"latvian",21:"ukrainian",22:"arabic",23:"farsi",24:"bulgarian",25:"romanian",26:"chinese",27:"japanese",28:"korean",29:"taiwanese",30:"thai",31:"hebrew",32:"brazilianPortuguese",33:"indonesian",34:"malaysian",35:"vietnamese",36:"burmese",37:"mongolian",254:"custom"},languageBits0:{1:"english",2:"french",4:"italian",8:"german",16:"spanish",32:"croatian",64:"czech",128:"danish"},languageBits1:{1:"dutch",2:"finnish",4:"greek",8:"hungarian",16:"norwegian",32:"polish",64:"portuguese",128:"slovakian"},languageBits2:{1:"slovenian",2:"swedish",4:"russian",8:"turkish",16:"latvian",32:"ukrainian",64:"arabic",128:"farsi"},languageBits3:{1:"bulgarian",2:"romanian",4:"chinese",8:"japanese",16:"korean",32:"taiwanese",64:"thai",128:"hebrew"},languageBits4:{1:"brazilianPortuguese",2:"indonesian",4:"malaysian",8:"vietnamese",16:"burmese",32:"mongolian"},timeZone:{0:"almaty",1:"bangkok",2:"bombay",3:"brasilia",4:"cairo",5:"capeVerdeIs",6:"darwin",7:"eniwetok",8:"fiji",9:"hongKong",10:"islamabad",11:"kabul",12:"magadan",13:"midAtlantic",14:"moscow",15:"muscat",16:"newfoundland",17:"samoa",18:"sydney",19:"tehran",20:"tokyo",21:"usAlaska",22:"usAtlantic",23:"usCentral",24:"usEastern",25:"usHawaii",26:"usMountain",27:"usPacific",28:"other",29:"auckland",30:"kathmandu",31:"europeWesternWet",32:"europeCentralCet",33:"europeEasternEet",34:"jakarta",35:"perth",36:"adelaide",37:"brisbane",38:"tasmania",39:"iceland",40:"amsterdam",41:"athens",42:"barcelona",43:"berlin",44:"brussels",45:"budapest",46:"copenhagen",47:"dublin",48:"helsinki",49:"lisbon",50:"london",51:"madrid",52:"munich",53:"oslo",54:"paris",55:"prague",56:"reykjavik",57:"rome",58:"stockholm",59:"vienna",60:"warsaw",61:"zurich",62:"quebec",63:"ontario",64:"manitoba",65:"saskatchewan",66:"alberta",67:"britishColumbia",68:"boise",69:"boston",70:"chicago",71:"dallas",72:"denver",73:"kansasCity",74:"lasVegas",75:"losAngeles",76:"miami",77:"minneapolis",78:"newYork",79:"newOrleans",80:"phoenix",81:"santaFe",82:"seattle",83:"washingtonDc",84:"usArizona",85:"chita",86:"ekaterinburg",87:"irkutsk",88:"kaliningrad",89:"krasnoyarsk",90:"novosibirsk",91:"petropavlovskKamchatskiy",92:"samara",93:"vladivostok",94:"mexicoCentral",95:"mexicoMountain",96:"mexicoPacific",97:"capeTown",98:"winkhoek",99:"lagos",100:"riyahd",101:"venezuela",102:"australiaLh",103:"santiago",253:"manual",254:"automatic"},displayMeasure:{0:"metric",1:"statute",2:"nautical"},displayHeart:{0:"bpm",1:"max",2:"reserve"},displayPower:{0:"watts",1:"percentFtp"},displayPosition:{0:"degree",1:"degreeMinute",2:"degreeMinuteSecond",3:"austrianGrid",4:"britishGrid",5:"dutchGrid",6:"hungarianGrid",7:"finnishGrid",8:"germanGrid",9:"icelandicGrid",10:"indonesianEquatorial",11:"indonesianIrian",12:"indonesianSouthern",13:"indiaZone0",14:"indiaZoneIA",15:"indiaZoneIB",16:"indiaZoneIIA",17:"indiaZoneIIB",18:"indiaZoneIIIA",19:"indiaZoneIIIB",20:"indiaZoneIVA",21:"indiaZoneIVB",22:"irishTransverse",23:"irishGrid",24:"loran",25:"maidenheadGrid",26:"mgrsGrid",27:"newZealandGrid",28:"newZealandTransverse",29:"qatarGrid",30:"modifiedSwedishGrid",31:"swedishGrid",32:"southAfricanGrid",33:"swissGrid",34:"taiwanGrid",35:"unitedStatesGrid",36:"utmUpsGrid",37:"westMalayan",38:"borneoRso",39:"estonianGrid",40:"latvianGrid",41:"swedishRef99Grid"},switch:{0:"off",1:"on",2:"auto"},sport:{0:"generic",1:"running",2:"cycling",3:"transition",4:"fitnessEquipment",5:"swimming",6:"basketball",7:"soccer",8:"tennis",9:"americanFootball",10:"training",11:"walking",12:"crossCountrySkiing",13:"alpineSkiing",14:"snowboarding",15:"rowing",16:"mountaineering",17:"hiking",18:"multisport",19:"paddling",20:"flying",21:"eBiking",22:"motorcycling",23:"boating",24:"driving",25:"golf",26:"hangGliding",27:"horsebackRiding",28:"hunting",29:"fishing",30:"inlineSkating",31:"rockClimbing",32:"sailing",33:"iceSkating",34:"skyDiving",35:"snowshoeing",36:"snowmobiling",37:"standUpPaddleboarding",38:"surfing",39:"wakeboarding",40:"waterSkiing",41:"kayaking",42:"rafting",43:"windsurfing",44:"kitesurfing",45:"tactical",46:"jumpmaster",47:"boxing",48:"floorClimbing",49:"baseball",53:"diving",56:"shooting",58:"winterSport",59:"grinding",62:"hiit",63:"videoGaming",64:"racket",65:"wheelchairPushWalk",66:"wheelchairPushRun",67:"meditation",68:"paraSport",69:"discGolf",70:"teamSport",71:"cricket",72:"rugby",73:"hockey",74:"lacrosse",75:"volleyball",76:"waterTubing",77:"wakesurfing",78:"waterSport",79:"archery",80:"mixedMartialArts",81:"motorSports",82:"snorkeling",83:"dance",84:"jumpRope",85:"poolApnea",86:"mobility",87:"geocaching",88:"canoeing",254:"all"},sportBits0:{1:"generic",2:"running",4:"cycling",8:"transition",16:"fitnessEquipment",32:"swimming",64:"basketball",128:"soccer"},sportBits1:{1:"tennis",2:"americanFootball",4:"training",8:"walking",16:"crossCountrySkiing",32:"alpineSkiing",64:"snowboarding",128:"rowing"},sportBits2:{1:"mountaineering",2:"hiking",4:"multisport",8:"paddling",16:"flying",32:"eBiking",64:"motorcycling",128:"boating"},sportBits3:{1:"driving",2:"golf",4:"hangGliding",8:"horsebackRiding",16:"hunting",32:"fishing",64:"inlineSkating",128:"rockClimbing"},sportBits4:{1:"sailing",2:"iceSkating",4:"skyDiving",8:"snowshoeing",16:"snowmobiling",32:"standUpPaddleboarding",64:"surfing",128:"wakeboarding"},sportBits5:{1:"waterSkiing",2:"kayaking",4:"rafting",8:"windsurfing",16:"kitesurfing",32:"tactical",64:"jumpmaster",128:"boxing"},sportBits6:{1:"floorClimbing"},subSport:{0:"generic",1:"treadmill",2:"street",3:"trail",4:"track",5:"spin",6:"indoorCycling",7:"road",8:"mountain",9:"downhill",10:"recumbent",11:"cyclocross",12:"handCycling",13:"trackCycling",14:"indoorRowing",15:"elliptical",16:"stairClimbing",17:"lapSwimming",18:"openWater",19:"flexibilityTraining",20:"strengthTraining",21:"warmUp",22:"match",23:"exercise",24:"challenge",25:"indoorSkiing",26:"cardioTraining",27:"indoorWalking",28:"eBikeFitness",29:"bmx",30:"casualWalking",31:"speedWalking",32:"bikeToRunTransition",33:"runToBikeTransition",34:"swimToBikeTransition",35:"atv",36:"motocross",37:"backcountry",38:"resort",39:"rcDrone",40:"wingsuit",41:"whitewater",42:"skateSkiing",43:"yoga",44:"pilates",45:"indoorRunning",46:"gravelCycling",47:"eBikeMountain",48:"commuting",49:"mixedSurface",50:"navigate",51:"trackMe",52:"map",53:"singleGasDiving",54:"multiGasDiving",55:"gaugeDiving",56:"apneaDiving",57:"apneaHunting",58:"virtualActivity",59:"obstacle",62:"breathing",63:"ccrDiving",65:"sailRace",66:"expedition",67:"ultra",68:"indoorClimbing",69:"bouldering",70:"hiit",71:"indoorGrinding",72:"huntingWithDogs",73:"amrap",74:"emom",75:"tabata",77:"esport",78:"triathlon",79:"duathlon",80:"brick",81:"swimRun",82:"adventureRace",83:"truckerWorkout",84:"pickleball",85:"padel",86:"indoorWheelchairWalk",87:"indoorWheelchairRun",88:"indoorHandCycling",90:"field",91:"ice",92:"ultimate",93:"platform",94:"squash",95:"badminton",96:"racquetball",97:"tableTennis",98:"overland",99:"trollingMotor",110:"flyCanopy",111:"flyParaglide",112:"flyParamotor",113:"flyPressurized",114:"flyNavigate",115:"flyTimer",116:"flyAltimeter",117:"flyWx",118:"flyVfr",119:"flyIfr",121:"dynamicApnea",123:"enduro",124:"rucking",125:"rally",126:"poolTriathlon",127:"eBikeEnduro",254:"all"},sportEvent:{0:"uncategorized",1:"geocaching",2:"fitness",3:"recreation",4:"race",5:"specialEvent",6:"training",7:"transportation",8:"touring"},activity:{0:"manual",1:"autoMultiSport"},intensity:{0:"active",1:"rest",2:"warmup",3:"cooldown",4:"recovery",5:"interval",6:"other"},sessionTrigger:{0:"activityEnd",1:"manual",2:"autoMultiSport",3:"fitnessEquipment"},autolapTrigger:{0:"time",1:"distance",2:"positionStart",3:"positionLap",4:"positionWaypoint",5:"positionMarked",6:"off",13:"autoSelect"},lapTrigger:{0:"manual",1:"time",2:"distance",3:"positionStart",4:"positionLap",5:"positionWaypoint",6:"positionMarked",7:"sessionEnd",8:"fitnessEquipment"},timeMode:{0:"hour12",1:"hour24",2:"military",3:"hour12WithSeconds",4:"hour24WithSeconds",5:"utc"},backlightMode:{0:"off",1:"manual",2:"keyAndMessages",3:"autoBrightness",4:"smartNotifications",5:"keyAndMessagesNight",6:"keyAndMessagesAndSmartNotifications"},dateMode:{0:"dayMonth",1:"monthDay"},backlightTimeout:{0:"infinite"},event:{0:"timer",3:"workout",4:"workoutStep",5:"powerDown",6:"powerUp",7:"offCourse",8:"session",9:"lap",10:"coursePoint",11:"battery",12:"virtualPartnerPace",13:"hrHighAlert",14:"hrLowAlert",15:"speedHighAlert",16:"speedLowAlert",17:"cadHighAlert",18:"cadLowAlert",19:"powerHighAlert",20:"powerLowAlert",21:"recoveryHr",22:"batteryLow",23:"timeDurationAlert",24:"distanceDurationAlert",25:"calorieDurationAlert",26:"activity",27:"fitnessEquipment",28:"length",32:"userMarker",33:"sportPoint",36:"calibration",42:"frontGearChange",43:"rearGearChange",44:"riderPositionChange",45:"elevHighAlert",46:"elevLowAlert",47:"commTimeout",54:"autoActivityDetect",56:"diveAlert",57:"diveGasSwitched",71:"tankPressureReserve",72:"tankPressureCritical",73:"tankLost",75:"radarThreatAlert",76:"tankBatteryLow",81:"tankPodConnected",82:"tankPodDisconnected"},eventType:{0:"start",1:"stop",2:"consecutiveDepreciated",3:"marker",4:"stopAll",5:"beginDepreciated",6:"endDepreciated",7:"endAllDepreciated",8:"stopDisable",9:"stopDisableAll"},timerTrigger:{0:"manual",1:"auto",2:"fitnessEquipment"},fitnessEquipmentState:{0:"ready",1:"inUse",2:"paused",3:"unknown"},tone:{0:"off",1:"tone",2:"vibrate",3:"toneAndVibrate"},autoscroll:{0:"none",1:"slow",2:"medium",3:"fast"},activityClass:{127:"level",100:"levelMax",128:"athlete"},hrZoneCalc:{0:"custom",1:"percentMaxHr",2:"percentHrr",3:"percentLthr"},pwrZoneCalc:{0:"custom",1:"percentFtp"},wktStepDuration:{0:"time",1:"distance",2:"hrLessThan",3:"hrGreaterThan",4:"calories",5:"open",6:"repeatUntilStepsCmplt",7:"repeatUntilTime",8:"repeatUntilDistance",9:"repeatUntilCalories",10:"repeatUntilHrLessThan",11:"repeatUntilHrGreaterThan",12:"repeatUntilPowerLessThan",13:"repeatUntilPowerGreaterThan",14:"powerLessThan",15:"powerGreaterThan",16:"trainingPeaksTss",17:"repeatUntilPowerLastLapLessThan",18:"repeatUntilMaxPowerLastLapLessThan",19:"power3sLessThan",20:"power10sLessThan",21:"power30sLessThan",22:"power3sGreaterThan",23:"power10sGreaterThan",24:"power30sGreaterThan",25:"powerLapLessThan",26:"powerLapGreaterThan",27:"repeatUntilTrainingPeaksTss",28:"repetitionTime",29:"reps",31:"timeOnly"},wktStepTarget:{0:"speed",1:"heartRate",2:"open",3:"cadence",4:"power",5:"grade",6:"resistance",7:"power3s",8:"power10s",9:"power30s",10:"powerLap",11:"swimStroke",12:"speedLap",13:"heartRateLap"},goal:{0:"time",1:"distance",2:"calories",3:"frequency",4:"steps",5:"ascent",6:"activeMinutes"},goalRecurrence:{0:"off",1:"daily",2:"weekly",3:"monthly",4:"yearly",5:"custom"},goalSource:{0:"auto",1:"community",2:"user"},schedule:{0:"workout",1:"course"},coursePoint:{0:"generic",1:"summit",2:"valley",3:"water",4:"food",5:"danger",6:"left",7:"right",8:"straight",9:"firstAid",10:"fourthCategory",11:"thirdCategory",12:"secondCategory",13:"firstCategory",14:"horsCategory",15:"sprint",16:"leftFork",17:"rightFork",18:"middleFork",19:"slightLeft",20:"sharpLeft",21:"slightRight",22:"sharpRight",23:"uTurn",24:"segmentStart",25:"segmentEnd",27:"campsite",28:"aidStation",29:"restArea",30:"generalDistance",31:"service",32:"energyGel",33:"sportsDrink",34:"mileMarker",35:"checkpoint",36:"shelter",37:"meetingSpot",38:"overlook",39:"toilet",40:"shower",41:"gear",42:"sharpCurve",43:"steepIncline",44:"tunnel",45:"bridge",46:"obstacle",47:"crossing",48:"store",49:"transition",50:"navaid",51:"transport",52:"alert",53:"info"},manufacturer:{1:"garmin",2:"garminFr405Antfs",3:"zephyr",4:"dayton",5:"idt",6:"srm",7:"quarq",8:"ibike",9:"saris",10:"sparkHk",11:"tanita",12:"echowell",13:"dynastreamOem",14:"nautilus",15:"dynastream",16:"timex",17:"metrigear",18:"xelic",19:"beurer",20:"cardiosport",21:"aAndD",22:"hmm",23:"suunto",24:"thitaElektronik",25:"gpulse",26:"cleanMobile",27:"pedalBrain",28:"peaksware",29:"saxonar",30:"lemondFitness",31:"dexcom",32:"wahooFitness",33:"octaneFitness",34:"archinoetics",35:"theHurtBox",36:"citizenSystems",37:"magellan",38:"osynce",39:"holux",40:"concept2",41:"shimano",42:"oneGiantLeap",43:"aceSensor",44:"brimBrothers",45:"xplova",46:"perceptionDigital",47:"bf1systems",48:"pioneer",49:"spantec",50:"metalogics",51:"4iiiis",52:"seikoEpson",53:"seikoEpsonOem",54:"iforPowell",55:"maxwellGuider",56:"starTrac",57:"breakaway",58:"alatechTechnologyLtd",59:"mioTechnologyEurope",60:"rotor",61:"geonaute",62:"idBike",63:"specialized",64:"wtek",65:"physicalEnterprises",66:"northPoleEngineering",67:"bkool",68:"cateye",69:"stagesCycling",70:"sigmasport",71:"tomtom",72:"peripedal",73:"wattbike",76:"moxy",77:"ciclosport",78:"powerbahn",79:"acornProjectsAps",80:"lifebeam",81:"bontrager",82:"wellgo",83:"scosche",84:"magura",85:"woodway",86:"elite",87:"nielsenKellerman",88:"dkCity",89:"tacx",90:"directionTechnology",91:"magtonic",92:"1partcarbon",93:"insideRideTechnologies",94:"soundOfMotion",95:"stryd",96:"icg",97:"miPulse",98:"bsxAthletics",99:"look",100:"campagnoloSrl",101:"bodyBikeSmart",102:"praxisworks",103:"limitsTechnology",104:"topactionTechnology",105:"cosinuss",106:"fitcare",107:"magene",108:"giantManufacturingCo",109:"tigrasport",110:"salutron",111:"technogym",112:"brytonSensors",113:"latitudeLimited",114:"soaringTechnology",115:"igpsport",116:"thinkrider",117:"gopherSport",118:"waterrower",119:"orangetheory",120:"inpeak",121:"kinetic",122:"johnsonHealthTech",123:"polarElectro",124:"seesense",125:"nciTechnology",126:"iqsquare",127:"leomo",128:"ifitCom",129:"corosByte",130:"versaDesign",131:"chileaf",132:"cycplus",133:"gravaaByte",134:"sigeyi",135:"coospo",136:"geoid",137:"bosch",138:"kyto",139:"kineticSports",140:"decathlonByte",141:"tqSystems",142:"tagHeuer",143:"keiserFitness",144:"zwiftByte",145:"porscheEp",146:"blackbird",147:"meilanByte",148:"ezon",149:"laisi",150:"myzone",151:"abawo",152:"bafang",153:"luhongTechnology",255:"development",257:"healthandlife",258:"lezyne",259:"scribeLabs",260:"zwift",261:"watteam",262:"recon",263:"faveroElectronics",264:"dynovelo",265:"strava",266:"precor",267:"bryton",268:"sram",269:"navman",270:"cobi",271:"spivi",272:"mioMagellan",273:"evesports",274:"sensitivusGauge",275:"podoon",276:"lifeTimeFitness",277:"falcoEMotors",278:"minoura",279:"cycliq",280:"luxottica",281:"trainerRoad",282:"theSufferfest",283:"fullspeedahead",284:"virtualtraining",285:"feedbacksports",286:"omata",287:"vdo",288:"magneticdays",289:"hammerhead",290:"kineticByKurt",291:"shapelog",292:"dabuziduo",293:"jetblack",294:"coros",295:"virtugo",296:"velosense",297:"cycligentinc",298:"trailforks",299:"mahleEbikemotion",300:"nurvv",301:"microprogram",302:"zone5cloud",303:"greenteg",304:"yamahaMotors",305:"whoop",306:"gravaa",307:"onelap",308:"monarkExercise",309:"form",310:"decathlon",311:"syncros",312:"heatup",313:"cannondale",314:"trueFitness",315:"rGTCycling",316:"vasa",317:"raceRepublic",318:"fazua",319:"orekaTraining",320:"lsec",321:"lululemonStudio",322:"shanyue",323:"spinningMda",324:"hilldating",325:"aeroSensor",326:"nike",327:"magicshine",328:"ictrainer",329:"absoluteCycling",330:"eoSwimbetter",331:"mywhoosh",332:"ravemen",333:"tektroRacingProducts",334:"daradInnovationCorporation",335:"cycloptim",337:"runna",339:"zepp",340:"peloton",341:"carv",342:"tissot",345:"realVelo",346:"wetech",347:"jespr",348:"huawei",349:"gotoes",350:"cadenceApp",351:"unaWatch",5759:"actigraphcorp"},garminProduct:{1:"hrm1",2:"axh01",3:"axb01",4:"axb02",5:"hrm2ss",6:"dsiAlf02",7:"hrm3ss",8:"hrmRunSingleByteProductId",9:"bsm",10:"bcm",11:"axs01",12:"hrmTriSingleByteProductId",13:"hrm4RunSingleByteProductId",14:"fr225SingleByteProductId",15:"gen3BsmSingleByteProductId",16:"gen3BcmSingleByteProductId",22:"hrmFitSingleByteProductId",255:"oHR",473:"fr301China",474:"fr301Japan",475:"fr301Korea",494:"fr301Taiwan",717:"fr405",782:"fr50",987:"fr405Japan",988:"fr60",1011:"dsiAlf01",1018:"fr310xt",1036:"edge500",1124:"fr110",1169:"edge800",1199:"edge500Taiwan",1213:"edge500Japan",1253:"chirp",1274:"fr110Japan",1325:"edge200",1328:"fr910xt",1333:"edge800Taiwan",1334:"edge800Japan",1341:"alf04",1345:"fr610",1360:"fr210Japan",1380:"vectorSs",1381:"vectorCp",1386:"edge800China",1387:"edge500China",1405:"approachG10",1410:"fr610Japan",1422:"edge500Korea",1436:"fr70",1446:"fr310xt4t",1461:"amx",1482:"fr10",1497:"edge800Korea",1499:"swim",1537:"fr910xtChina",1551:"fenix",1555:"edge200Taiwan",1561:"edge510",1567:"edge810",1570:"tempe",1600:"fr910xtJapan",1623:"fr620",1632:"fr220",1664:"fr910xtKorea",1688:"fr10Japan",1721:"edge810Japan",1735:"virbElite",1736:"edgeTouring",1742:"edge510Japan",1743:"hrmTri",1752:"hrmRun",1765:"fr920xt",1821:"edge510Asia",1822:"edge810China",1823:"edge810Taiwan",1836:"edge1000",1837:"vivoFit",1853:"virbRemote",1885:"vivoKi",1903:"fr15",1907:"vivoActive",1918:"edge510Korea",1928:"fr620Japan",1929:"fr620China",1930:"fr220Japan",1931:"fr220China",1936:"approachS6",1956:"vivoSmart",1967:"fenix2",1988:"epix",2050:"fenix3",2052:"edge1000Taiwan",2053:"edge1000Japan",2061:"fr15Japan",2067:"edge520",2070:"edge1000China",2072:"fr620Russia",2073:"fr220Russia",2079:"vectorS",2100:"edge1000Korea",2130:"fr920xtTaiwan",2131:"fr920xtChina",2132:"fr920xtJapan",2134:"virbx",2135:"vivoSmartApac",2140:"etrexTouch",2147:"edge25",2148:"fr25",2150:"vivoFit2",2153:"fr225",2156:"fr630",2157:"fr230",2158:"fr735xt",2160:"vivoActiveApac",2161:"vector2",2162:"vector2s",2172:"virbxe",2173:"fr620Taiwan",2174:"fr220Taiwan",2175:"truswing",2187:"d2airvenu",2188:"fenix3China",2189:"fenix3Twn",2192:"variaHeadlight",2193:"variaTaillightOld",2204:"edgeExplore1000",2219:"fr225Asia",2225:"variaRadarTaillight",2226:"variaRadarDisplay",2238:"edge20",2260:"edge520Asia",2261:"edge520Japan",2262:"d2Bravo",2266:"approachS20",2271:"vivoSmart2",2274:"edge1000Thai",2276:"variaRemote",2288:"edge25Asia",2289:"edge25Jpn",2290:"edge20Asia",2292:"approachX40",2293:"fenix3Japan",2294:"vivoSmartEmea",2310:"fr630Asia",2311:"fr630Jpn",2313:"fr230Jpn",2327:"hrm4Run",2332:"epixJapan",2337:"vivoActiveHr",2347:"vivoSmartGpsHr",2348:"vivoSmartHr",2361:"vivoSmartHrAsia",2362:"vivoSmartGpsHrAsia",2368:"vivoMove",2379:"variaTaillight",2396:"fr235Asia",2397:"fr235Japan",2398:"variaVision",2406:"vivoFit3",2407:"fenix3Korea",2408:"fenix3Sea",2413:"fenix3Hr",2417:"virbUltra30",2429:"indexSmartScale",2431:"fr235",2432:"fenix3Chronos",2441:"oregon7xx",2444:"rino7xx",2457:"epixKorea",2473:"fenix3HrChn",2474:"fenix3HrTwn",2475:"fenix3HrJpn",2476:"fenix3HrSea",2477:"fenix3HrKor",2496:"nautix",2497:"vivoActiveHrApac",2503:"fr35",2512:"oregon7xxWw",2530:"edge820",2531:"edgeExplore820",2533:"fr735xtApac",2534:"fr735xtJapan",2544:"fenix5s",2547:"d2BravoTitanium",2567:"variaUt800",2593:"runningDynamicsPod",2599:"edge820China",2600:"edge820Japan",2604:"fenix5x",2606:"vivoFitJr",2622:"vivoSmart3",2623:"vivoSport",2628:"edge820Taiwan",2629:"edge820Korea",2630:"edge820Sea",2650:"fr35Hebrew",2656:"approachS60",2667:"fr35Apac",2668:"fr35Japan",2675:"fenix3ChronosAsia",2687:"virb360",2691:"fr935",2697:"fenix5",2700:"vivoactive3",2733:"fr235ChinaNfc",2769:"foretrex601_701",2772:"vivoMoveHr",2713:"edge1030",2727:"fr35Sea",2787:"vector3",2796:"fenix5Asia",2797:"fenix5sAsia",2798:"fenix5xAsia",2806:"approachZ80",2814:"fr35Korea",2819:"d2charlie",2831:"vivoSmart3Apac",2832:"vivoSportApac",2833:"fr935Asia",2859:"descent",2878:"vivoFit4",2886:"fr645",2888:"fr645m",2891:"fr30",2900:"fenix5sPlus",2909:"edge130",2924:"edge1030Asia",2927:"vivosmart4",2945:"vivoMoveHrAsia",2962:"approachX10",2977:"fr30Asia",2988:"vivoactive3mW",3003:"fr645Asia",3004:"fr645mAsia",3011:"edgeExplore",3028:"gpsmap66",3049:"approachS10",3066:"vivoactive3mL",3076:"fr245",3077:"fr245Music",3085:"approachG80",3092:"edge130Asia",3095:"edge1030Bontrager",3110:"fenix5Plus",3111:"fenix5xPlus",3112:"edge520Plus",3113:"fr945",3121:"edge530",3122:"edge830",3126:"instinctEsports",3134:"fenix5sPlusApac",3135:"fenix5xPlusApac",3142:"edge520PlusApac",3143:"descentT1",3144:"fr235lAsia",3145:"fr245Asia",3163:"vivoActive3mApac",3192:"gen3Bsm",3193:"gen3Bcm",3218:"vivoSmart4Asia",3224:"vivoactive4Small",3225:"vivoactive4Large",3226:"venu",3246:"marqDriver",3247:"marqAviator",3248:"marqCaptain",3249:"marqCommander",3250:"marqExpedition",3251:"marqAthlete",3258:"descentMk2",3282:"fr45",3284:"gpsmap66i",3287:"fenix6SSport",3288:"fenix6S",3289:"fenix6Sport",3290:"fenix6",3291:"fenix6x",3299:"hrmDual",3300:"hrmPro",3308:"vivoMove3Premium",3314:"approachS40",3321:"fr245mAsia",3349:"edge530Apac",3350:"edge830Apac",3378:"vivoMove3",3387:"vivoActive4SmallAsia",3388:"vivoActive4LargeAsia",3389:"vivoActive4OledAsia",3405:"swim2",3420:"marqDriverAsia",3421:"marqAviatorAsia",3422:"vivoMove3Asia",3441:"fr945Asia",3446:"vivoActive3tChn",3448:"marqCaptainAsia",3449:"marqCommanderAsia",3450:"marqExpeditionAsia",3451:"marqAthleteAsia",3461:"indexSmartScale2",3466:"instinctSolar",3469:"fr45Asia",3473:"vivoactive3Daimler",3498:"legacyRey",3499:"legacyDarthVader",3500:"legacyCaptainMarvel",3501:"legacyFirstAvenger",3512:"fenix6sSportAsia",3513:"fenix6sAsia",3514:"fenix6SportAsia",3515:"fenix6Asia",3516:"fenix6xAsia",3535:"legacyCaptainMarvelAsia",3536:"legacyFirstAvengerAsia",3537:"legacyReyAsia",3538:"legacyDarthVaderAsia",3542:"descentMk2s",3558:"edge130Plus",3570:"edge1030Plus",3578:"rally200",3589:"fr745",3596:"venusqMusic",3599:"venusqMusicV2",3600:"venusq",3615:"lily",3624:"marqAdventurer",3638:"enduro",3639:"swim2Apac",3648:"marqAdventurerAsia",3652:"fr945Lte",3702:"descentMk2Asia",3703:"venu2",3704:"venu2s",3737:"venuDaimlerAsia",3739:"marqGolfer",3740:"venuDaimler",3794:"fr745Asia",3808:"variaRct715",3809:"lilyAsia",3812:"edge1030PlusAsia",3813:"edge130PlusAsia",3823:"approachS12",3872:"enduroAsia",3837:"venusqAsia",3843:"edge1040",3850:"marqGolferAsia",3851:"venu2Plus",3865:"gnss",3869:"fr55",3888:"instinct2",3889:"instinct2s",3905:"fenix7s",3906:"fenix7",3907:"fenix7x",3908:"fenix7sApac",3909:"fenix7Apac",3910:"fenix7xApac",3927:"approachG12",3930:"descentMk2sAsia",3934:"approachS42",3943:"epixGen2",3944:"epixGen2Apac",3949:"venu2sAsia",3950:"venu2Asia",3978:"fr945LteAsia",3982:"vivoMoveSport",3983:"vivomoveTrend",3986:"approachS12Asia",3990:"fr255Music",3991:"fr255SmallMusic",3992:"fr255",3993:"fr255Small",4001:"approachG12Asia",4002:"approachS42Asia",4005:"descentG1",4017:"venu2PlusAsia",4024:"fr955",4033:"fr55Asia",4061:"edge540",4062:"edge840",4063:"vivosmart5",4071:"instinct2Asia",4105:"marqGen2",4115:"venusq2",4116:"venusq2music",4124:"marqGen2Aviator",4125:"d2AirX10",4130:"hrmProPlus",4132:"descentG1Asia",4135:"tactix7",4155:"instinctCrossover",4169:"edgeExplore2",4222:"descentMk3",4223:"descentMk3i",4233:"approachS70",4257:"fr265Large",4258:"fr265Small",4260:"venu3",4261:"venu3s",4265:"tacxNeoSmart",4266:"tacxNeo2Smart",4267:"tacxNeo2TSmart",4268:"tacxNeoSmartBike",4269:"tacxSatoriSmart",4270:"tacxFlowSmart",4271:"tacxVortexSmart",4272:"tacxBushidoSmart",4273:"tacxGeniusSmart",4274:"tacxFluxFluxSSmart",4275:"tacxFlux2Smart",4276:"tacxMagnum",4305:"edge1040Asia",4312:"epixGen2Pro42",4313:"epixGen2Pro47",4314:"epixGen2Pro51",4315:"fr965",4341:"enduro2",4374:"fenix7sProSolar",4375:"fenix7ProSolar",4376:"fenix7xProSolar",4380:"lily2",4394:"instinct2x",4426:"vivoactive5",4432:"fr165",4433:"fr165Music",4440:"edge1050",4442:"descentT2",4446:"hrmFit",4472:"marqGen2Commander",4477:"lilyAthlete",4525:"rallyX10",4532:"fenix8Solar",4533:"fenix8SolarLarge",4534:"fenix8Small",4536:"fenix8",4556:"d2Mach1Pro",4575:"enduro3",4583:"instinctE40mm",4584:"instinctE45mm",4585:"instinct3Solar45mm",4586:"instinct3Amoled45mm",4587:"instinct3Amoled50mm",4588:"descentG2",4595:"fenix7ProSolarNoWifi",4603:"venuX1",4606:"hrm200",4625:"vivoactive6",4631:"fenix8Pro",4633:"edge550",4634:"edge850",4643:"venu4",4644:"venu4s",4647:"approachS44",4655:"edgeMtb",4656:"approachS50",4666:"fenixE",4745:"bounce2",4759:"instinct3Solar50mm",4775:"tactix8Amoled",4776:"tactix8Solar",4814:"fr170Music",4815:"fr170",4825:"approachJ1",4879:"d2Mach2",4916:"fr702026",4678:"instinctCrossoverAmoled",4944:"d2AirX15",5019:"cirqaSmartBand",5056:"d2Mach2Pro",10007:"sdm4",10014:"edgeRemote",20533:"tacxTrainingAppWin",20534:"tacxTrainingAppMac",20565:"tacxTrainingAppMacCatalyst",20119:"trainingCenter",30045:"tacxTrainingAppAndroid",30046:"tacxTrainingAppIos",30047:"tacxTrainingAppLegacy",65531:"connectiqSimulator",65532:"androidAntplusPlugin",65534:"connect"},antplusDeviceType:{1:"antfs",11:"bikePower",12:"environmentSensorLegacy",15:"multiSportSpeedDistance",16:"control",17:"fitnessEquipment",18:"bloodPressure",19:"geocacheNode",20:"lightElectricVehicle",25:"envSensor",26:"racquet",27:"controlHub",31:"muscleOxygen",34:"shifting",35:"bikeLightMain",36:"bikeLightShared",38:"exd",40:"bikeRadar",46:"bikeAero",119:"weightScale",120:"heartRate",121:"bikeSpeedCadence",122:"bikeCadence",123:"bikeSpeed",124:"strideSpeedDistance"},antNetwork:{0:"public",1:"antplus",2:"antfs",3:"private"},workoutCapabilities:{1:"interval",2:"custom",4:"fitnessEquipment",8:"firstbeat",16:"newLeaf",32:"tcx",128:"speed",256:"heartRate",512:"distance",1024:"cadence",2048:"power",4096:"grade",8192:"resistance",16384:"protected"},batteryStatus:{1:"new",2:"good",3:"ok",4:"low",5:"critical",6:"charging",7:"unknown"},hrType:{0:"normal",1:"irregular"},courseCapabilities:{1:"processed",2:"valid",4:"time",8:"distance",16:"position",32:"heartRate",64:"power",128:"cadence",256:"training",512:"navigation",1024:"bikeway",4096:"aviation"},weight:{65534:"calculating"},workoutHr:{100:"bpmOffset"},workoutPower:{1e3:"wattsOffset"},bpStatus:{0:"noError",1:"errorIncompleteData",2:"errorNoMeasurement",3:"errorDataOutOfRange",4:"errorIrregularHeartRate"},userLocalId:{0:"localMin",15:"localMax",16:"stationaryMin",255:"stationaryMax",256:"portableMin",65534:"portableMax"},swimStroke:{0:"freestyle",1:"backstroke",2:"breaststroke",3:"butterfly",4:"drill",5:"mixed",6:"im",7:"imByRound",8:"rimo"},activityType:{0:"generic",1:"running",2:"cycling",3:"transition",4:"fitnessEquipment",5:"swimming",6:"walking",8:"sedentary",13:"wheelchairPushing",254:"all"},activitySubtype:{0:"generic",1:"treadmill",2:"street",3:"trail",4:"track",5:"spin",6:"indoorCycling",7:"road",8:"mountain",9:"downhill",10:"recumbent",11:"cyclocross",12:"handCycling",13:"trackCycling",14:"indoorRowing",15:"elliptical",16:"stairClimbing",17:"lapSwimming",18:"openWater",254:"all"},activityLevel:{0:"low",1:"medium",2:"high"},side:{0:"right",1:"left"},leftRightBalance:{127:"mask",128:"right"},leftRightBalance100:{16383:"mask",32768:"right"},lengthType:{0:"idle",1:"active"},dayOfWeek:{0:"sunday",1:"monday",2:"tuesday",3:"wednesday",4:"thursday",5:"friday",6:"saturday"},connectivityCapabilities:{1:"bluetooth",2:"bluetoothLe",4:"ant",8:"activityUpload",16:"courseDownload",32:"workoutDownload",64:"liveTrack",128:"weatherConditions",256:"weatherAlerts",512:"gpsEphemerisDownload",1024:"explicitArchive",2048:"setupIncomplete",4096:"continueSyncAfterSoftwareUpdate",8192:"connectIqAppDownload",16384:"golfCourseDownload",32768:"deviceInitiatesSync",65536:"connectIqWatchAppDownload",131072:"connectIqWidgetDownload",262144:"connectIqWatchFaceDownload",524288:"connectIqDataFieldDownload",1048576:"connectIqAppManagment",2097152:"swingSensor",4194304:"swingSensorRemote",8388608:"incidentDetection",16777216:"audioPrompts",33554432:"wifiVerification",67108864:"trueUp",134217728:"findMyWatch",268435456:"remoteManualSync",536870912:"liveTrackAutoStart",1073741824:"liveTrackMessaging",2147483648:"instantInput"},weatherReport:{0:"current",1:"forecast",1:"hourlyForecast",2:"dailyForecast"},weatherStatus:{0:"clear",1:"partlyCloudy",2:"mostlyCloudy",3:"rain",4:"snow",5:"windy",6:"thunderstorms",7:"wintryMix",8:"fog",11:"hazy",12:"hail",13:"scatteredShowers",14:"scatteredThunderstorms",15:"unknownPrecipitation",16:"lightRain",17:"heavyRain",18:"lightSnow",19:"heavySnow",20:"lightRainSnow",21:"heavyRainSnow",22:"cloudy"},weatherSeverity:{0:"unknown",1:"warning",2:"watch",3:"advisory",4:"statement"},weatherSevereType:{0:"unspecified",1:"tornado",2:"tsunami",3:"hurricane",4:"extremeWind",5:"typhoon",6:"inlandHurricane",7:"hurricaneForceWind",8:"waterspout",9:"severeThunderstorm",10:"wreckhouseWinds",11:"lesSuetesWind",12:"avalanche",13:"flashFlood",14:"tropicalStorm",15:"inlandTropicalStorm",16:"blizzard",17:"iceStorm",18:"freezingRain",19:"debrisFlow",20:"flashFreeze",21:"dustStorm",22:"highWind",23:"winterStorm",24:"heavyFreezingSpray",25:"extremeCold",26:"windChill",27:"coldWave",28:"heavySnowAlert",29:"lakeEffectBlowingSnow",30:"snowSquall",31:"lakeEffectSnow",32:"winterWeather",33:"sleet",34:"snowfall",35:"snowAndBlowingSnow",36:"blowingSnow",37:"snowAlert",38:"arcticOutflow",39:"freezingDrizzle",40:"storm",41:"stormSurge",42:"rainfall",43:"arealFlood",44:"coastalFlood",45:"lakeshoreFlood",46:"excessiveHeat",47:"heat",48:"weather",49:"highHeatAndHumidity",50:"humidexAndHealth",51:"humidex",52:"gale",53:"freezingSpray",54:"specialMarine",55:"squall",56:"strongWind",57:"lakeWind",58:"marineWeather",59:"wind",60:"smallCraftHazardousSeas",61:"hazardousSeas",62:"smallCraft",63:"smallCraftWinds",64:"smallCraftRoughBar",65:"highWaterLevel",66:"ashfall",67:"freezingFog",68:"denseFog",69:"denseSmoke",70:"blowingDust",71:"hardFreeze",72:"freeze",73:"frost",74:"fireWeather",75:"flood",76:"ripTide",77:"highSurf",78:"smog",79:"airQuality",80:"briskWind",81:"airStagnation",82:"lowWater",83:"hydrological",84:"specialWeather"},timeIntoDay:{},localtimeIntoDay:{},strokeType:{0:"noEvent",1:"other",2:"serve",3:"forehand",4:"backhand",5:"smash"},bodyLocation:{0:"leftLeg",1:"leftCalf",2:"leftShin",3:"leftHamstring",4:"leftQuad",5:"leftGlute",6:"rightLeg",7:"rightCalf",8:"rightShin",9:"rightHamstring",10:"rightQuad",11:"rightGlute",12:"torsoBack",13:"leftLowerBack",14:"leftUpperBack",15:"rightLowerBack",16:"rightUpperBack",17:"torsoFront",18:"leftAbdomen",19:"leftChest",20:"rightAbdomen",21:"rightChest",22:"leftArm",23:"leftShoulder",24:"leftBicep",25:"leftTricep",26:"leftBrachioradialis",27:"leftForearmExtensors",28:"rightArm",29:"rightShoulder",30:"rightBicep",31:"rightTricep",32:"rightBrachioradialis",33:"rightForearmExtensors",34:"neck",35:"throat",36:"waistMidBack",37:"waistFront",38:"waistLeft",39:"waistRight"},segmentLapStatus:{0:"end",1:"fail"},segmentLeaderboardType:{0:"overall",1:"personalBest",2:"connections",3:"group",4:"challenger",5:"kom",6:"qom",7:"pr",8:"goal",9:"carrot",10:"clubLeader",11:"rival",12:"last",13:"recentBest",14:"courseRecord"},segmentDeleteStatus:{0:"doNotDelete",1:"deleteOne",2:"deleteAll"},segmentSelectionType:{0:"starred",1:"suggested"},sourceType:{0:"ant",1:"antplus",2:"bluetooth",3:"bluetoothLowEnergy",4:"wifi",5:"local"},localDeviceType:{0:"gps",1:"glonass",2:"gpsGlonass",3:"accelerometer",4:"barometer",5:"temperature",10:"whr",12:"sensorHub"},bleDeviceType:{0:"connectedGps",1:"heartRate",2:"bikePower",3:"bikeSpeedCadence",4:"bikeSpeed",5:"bikeCadence",6:"footpod",7:"bikeTrainer"},antChannelId:{4026531840:"antExtendedDeviceNumberUpperNibble",251658240:"antTransmissionTypeLowerNibble",16711680:"antDeviceType",65535:"antDeviceNumber"},displayOrientation:{0:"auto",1:"portrait",2:"landscape",3:"portraitFlipped",4:"landscapeFlipped"},workoutEquipment:{0:"none",1:"swimFins",2:"swimKickboard",3:"swimPaddles",4:"swimPullBuoy",5:"swimSnorkel"},watchfaceMode:{0:"digital",1:"analog",2:"connectIq",3:"disabled"},digitalWatchfaceLayout:{0:"traditional",1:"modern",2:"bold"},analogWatchfaceLayout:{0:"minimal",1:"traditional",2:"modern"},riderPositionType:{0:"seated",1:"standing",2:"transitionToSeated",3:"transitionToStanding"},powerPhaseType:{0:"powerPhaseStartAngle",1:"powerPhaseEndAngle",2:"powerPhaseArcLength",3:"powerPhaseCenter"},cameraEventType:{0:"videoStart",1:"videoSplit",2:"videoEnd",3:"photoTaken",4:"videoSecondStreamStart",5:"videoSecondStreamSplit",6:"videoSecondStreamEnd",7:"videoSplitStart",8:"videoSecondStreamSplitStart",11:"videoPause",12:"videoSecondStreamPause",13:"videoResume",14:"videoSecondStreamResume"},sensorType:{0:"accelerometer",1:"gyroscope",2:"compass",3:"barometer"},bikeLightNetworkConfigType:{0:"auto",4:"individual",5:"highVisibility",6:"trail"},commTimeoutType:{0:"wildcardPairingTimeout",1:"pairingTimeout",2:"connectionLost",3:"connectionTimeout"},cameraOrientationType:{0:"cameraOrientation0",1:"cameraOrientation90",2:"cameraOrientation180",3:"cameraOrientation270"},attitudeStage:{0:"failed",1:"aligning",2:"degraded",3:"valid"},attitudeValidity:{1:"trackAngleHeadingValid",2:"pitchValid",4:"rollValid",8:"lateralBodyAccelValid",16:"normalBodyAccelValid",32:"turnRateValid",64:"hwFail",128:"magInvalid",256:"noGps",512:"gpsInvalid",1024:"solutionCoasting",2048:"trueTrackAngle",4096:"magneticHeading"},autoSyncFrequency:{0:"never",1:"occasionally",2:"frequent",3:"onceADay",4:"remote"},exdLayout:{0:"fullScreen",1:"halfVertical",2:"halfHorizontal",3:"halfVerticalRightSplit",4:"halfHorizontalBottomSplit",5:"fullQuarterSplit",6:"halfVerticalLeftSplit",7:"halfHorizontalTopSplit",8:"dynamic"},exdDisplayType:{0:"numerical",1:"simple",2:"graph",3:"bar",4:"circleGraph",5:"virtualPartner",6:"balance",7:"stringList",8:"string",9:"simpleDynamicIcon",10:"gauge"},exdDataUnits:{0:"noUnits",1:"laps",2:"milesPerHour",3:"kilometersPerHour",4:"feetPerHour",5:"metersPerHour",6:"degreesCelsius",7:"degreesFarenheit",8:"zone",9:"gear",10:"rpm",11:"bpm",12:"degrees",13:"millimeters",14:"meters",15:"kilometers",16:"feet",17:"yards",18:"kilofeet",19:"miles",20:"time",21:"enumTurnType",22:"percent",23:"watts",24:"wattsPerKilogram",25:"enumBatteryStatus",26:"enumBikeLightBeamAngleMode",27:"enumBikeLightBatteryStatus",28:"enumBikeLightNetworkConfigType",29:"lights",30:"seconds",31:"minutes",32:"hours",33:"calories",34:"kilojoules",35:"milliseconds",36:"secondPerMile",37:"secondPerKilometer",38:"centimeter",39:"enumCoursePoint",40:"bradians",41:"enumSport",42:"inchesHg",43:"mmHg",44:"mbars",45:"hectoPascals",46:"feetPerMin",47:"metersPerMin",48:"metersPerSec",49:"eightCardinal"},exdQualifiers:{0:"noQualifier",1:"instantaneous",2:"average",3:"lap",4:"maximum",5:"maximumAverage",6:"maximumLap",7:"lastLap",8:"averageLap",9:"toDestination",10:"toGo",11:"toNext",12:"nextCoursePoint",13:"total",14:"threeSecondAverage",15:"tenSecondAverage",16:"thirtySecondAverage",17:"percentMaximum",18:"percentMaximumAverage",19:"lapPercentMaximum",20:"elapsed",21:"sunrise",22:"sunset",23:"comparedToVirtualPartner",24:"maximum24h",25:"minimum24h",26:"minimum",27:"first",28:"second",29:"third",30:"shifter",31:"lastSport",32:"moving",33:"stopped",34:"estimatedTotal",242:"zone9",243:"zone8",244:"zone7",245:"zone6",246:"zone5",247:"zone4",248:"zone3",249:"zone2",250:"zone1"},exdDescriptors:{0:"bikeLightBatteryStatus",1:"beamAngleStatus",2:"bateryLevel",3:"lightNetworkMode",4:"numberLightsConnected",5:"cadence",6:"distance",7:"estimatedTimeOfArrival",8:"heading",9:"time",10:"batteryLevel",11:"trainerResistance",12:"trainerTargetPower",13:"timeSeated",14:"timeStanding",15:"elevation",16:"grade",17:"ascent",18:"descent",19:"verticalSpeed",20:"di2BatteryLevel",21:"frontGear",22:"rearGear",23:"gearRatio",24:"heartRate",25:"heartRateZone",26:"timeInHeartRateZone",27:"heartRateReserve",28:"calories",29:"gpsAccuracy",30:"gpsSignalStrength",31:"temperature",32:"timeOfDay",33:"balance",34:"pedalSmoothness",35:"power",36:"functionalThresholdPower",37:"intensityFactor",38:"work",39:"powerRatio",40:"normalizedPower",41:"trainingStressScore",42:"timeOnZone",43:"speed",44:"laps",45:"reps",46:"workoutStep",47:"courseDistance",48:"navigationDistance",49:"courseEstimatedTimeOfArrival",50:"navigationEstimatedTimeOfArrival",51:"courseTime",52:"navigationTime",53:"courseHeading",54:"navigationHeading",55:"powerZone",56:"torqueEffectiveness",57:"timerTime",58:"powerWeightRatio",59:"leftPlatformCenterOffset",60:"rightPlatformCenterOffset",61:"leftPowerPhaseStartAngle",62:"rightPowerPhaseStartAngle",63:"leftPowerPhaseFinishAngle",64:"rightPowerPhaseFinishAngle",65:"gears",66:"pace",67:"trainingEffect",68:"verticalOscillation",69:"verticalRatio",70:"groundContactTime",71:"leftGroundContactTimeBalance",72:"rightGroundContactTimeBalance",73:"strideLength",74:"runningCadence",75:"performanceCondition",76:"courseType",77:"timeInPowerZone",78:"navigationTurn",79:"courseLocation",80:"navigationLocation",81:"compass",82:"gearCombo",83:"muscleOxygen",84:"icon",85:"compassHeading",86:"gpsHeading",87:"gpsElevation",88:"anaerobicTrainingEffect",89:"course",90:"offCourse",91:"glideRatio",92:"verticalDistance",93:"vmg",94:"ambientPressure",95:"pressure",96:"vam"},autoActivityDetect:{0:"none",1:"running",2:"cycling",4:"swimming",8:"walking",32:"elliptical",1024:"sedentary"},supportedExdScreenLayouts:{1:"fullScreen",2:"halfVertical",4:"halfHorizontal",8:"halfVerticalRightSplit",16:"halfHorizontalBottomSplit",32:"fullQuarterSplit",64:"halfVerticalLeftSplit",128:"halfHorizontalTopSplit"},fitBaseType:{0:"enum",1:"sint8",2:"uint8",131:"sint16",132:"uint16",133:"sint32",134:"uint32",7:"string",136:"float32",137:"float64",10:"uint8z",139:"uint16z",140:"uint32z",13:"byte",142:"sint64",143:"uint64",144:"uint64z"},turnType:{0:"arrivingIdx",1:"arrivingLeftIdx",2:"arrivingRightIdx",3:"arrivingViaIdx",4:"arrivingViaLeftIdx",5:"arrivingViaRightIdx",6:"bearKeepLeftIdx",7:"bearKeepRightIdx",8:"continueIdx",9:"exitLeftIdx",10:"exitRightIdx",11:"ferryIdx",12:"roundabout45Idx",13:"roundabout90Idx",14:"roundabout135Idx",15:"roundabout180Idx",16:"roundabout225Idx",17:"roundabout270Idx",18:"roundabout315Idx",19:"roundabout360Idx",20:"roundaboutNeg45Idx",21:"roundaboutNeg90Idx",22:"roundaboutNeg135Idx",23:"roundaboutNeg180Idx",24:"roundaboutNeg225Idx",25:"roundaboutNeg270Idx",26:"roundaboutNeg315Idx",27:"roundaboutNeg360Idx",28:"roundaboutGenericIdx",29:"roundaboutNegGenericIdx",30:"sharpTurnLeftIdx",31:"sharpTurnRightIdx",32:"turnLeftIdx",33:"turnRightIdx",34:"uturnLeftIdx",35:"uturnRightIdx",36:"iconInvIdx",37:"iconIdxCnt"},bikeLightBeamAngleMode:{0:"manual",1:"auto"},fitBaseUnit:{0:"other",1:"kilogram",2:"pound"},setType:{0:"rest",1:"active"},maxMetCategory:{0:"generic",1:"cycling"},exerciseCategory:{0:"benchPress",1:"calfRaise",2:"cardio",3:"carry",4:"chop",5:"core",6:"crunch",7:"curl",8:"deadlift",9:"flye",10:"hipRaise",11:"hipStability",12:"hipSwing",13:"hyperextension",14:"lateralRaise",15:"legCurl",16:"legRaise",17:"lunge",18:"olympicLift",19:"plank",20:"plyo",21:"pullUp",22:"pushUp",23:"row",24:"shoulderPress",25:"shoulderStability",26:"shrug",27:"sitUp",28:"squat",29:"totalBody",30:"tricepsExtension",31:"warmUp",32:"run",33:"bike",34:"cardioSensors",35:"move",36:"pose",37:"bandedExercises",38:"battleRope",39:"elliptical",40:"floorClimb",41:"indoorBike",42:"indoorRow",43:"ladder",44:"sandbag",45:"sled",46:"sledgeHammer",47:"stairStepper",49:"suspension",50:"tire",52:"runIndoor",53:"bikeOutdoor",65534:"unknown"},benchPressExerciseName:{0:"alternatingDumbbellChestPressOnSwissBall",1:"barbellBenchPress",2:"barbellBoardBenchPress",3:"barbellFloorPress",4:"closeGripBarbellBenchPress",5:"declineDumbbellBenchPress",6:"dumbbellBenchPress",7:"dumbbellFloorPress",8:"inclineBarbellBenchPress",9:"inclineDumbbellBenchPress",10:"inclineSmithMachineBenchPress",11:"isometricBarbellBenchPress",12:"kettlebellChestPress",13:"neutralGripDumbbellBenchPress",14:"neutralGripDumbbellInclineBenchPress",15:"oneArmFloorPress",16:"weightedOneArmFloorPress",17:"partialLockout",18:"reverseGripBarbellBenchPress",19:"reverseGripInclineBenchPress",20:"singleArmCableChestPress",21:"singleArmDumbbellBenchPress",22:"smithMachineBenchPress",23:"swissBallDumbbellChestPress",24:"tripleStopBarbellBenchPress",25:"wideGripBarbellBenchPress",26:"alternatingDumbbellChestPress"},calfRaiseExerciseName:{0:"3WayCalfRaise",1:"3WayWeightedCalfRaise",2:"3WaySingleLegCalfRaise",3:"3WayWeightedSingleLegCalfRaise",4:"donkeyCalfRaise",5:"weightedDonkeyCalfRaise",6:"seatedCalfRaise",7:"weightedSeatedCalfRaise",8:"seatedDumbbellToeRaise",9:"singleLegBentKneeCalfRaise",10:"weightedSingleLegBentKneeCalfRaise",11:"singleLegDeclinePushUp",12:"singleLegDonkeyCalfRaise",13:"weightedSingleLegDonkeyCalfRaise",14:"singleLegHipRaiseWithKneeHold",15:"singleLegStandingCalfRaise",16:"singleLegStandingDumbbellCalfRaise",17:"standingBarbellCalfRaise",18:"standingCalfRaise",19:"weightedStandingCalfRaise",20:"standingDumbbellCalfRaise"},cardioExerciseName:{0:"bobAndWeaveCircle",1:"weightedBobAndWeaveCircle",2:"cardioCoreCrawl",3:"weightedCardioCoreCrawl",4:"doubleUnder",5:"weightedDoubleUnder",6:"jumpRope",7:"weightedJumpRope",8:"jumpRopeCrossover",9:"weightedJumpRopeCrossover",10:"jumpRopeJog",11:"weightedJumpRopeJog",12:"jumpingJacks",13:"weightedJumpingJacks",14:"skiMoguls",15:"weightedSkiMoguls",16:"splitJacks",17:"weightedSplitJacks",18:"squatJacks",19:"weightedSquatJacks",20:"tripleUnder",21:"weightedTripleUnder",22:"elliptical",23:"spinning",24:"polePaddleForwardWheelchair",25:"polePaddleBackwardWheelchair",26:"poleHandcycleForwardWheelchair",27:"poleHandcycleBackwardWheelchair",28:"poleRainbowWheelchair",29:"doublePunchForwardWheelchair",30:"doublePunchDownWheelchair",31:"doublePunchSidewaysWheelchair",32:"doublePunchUpWheelchair",33:"sitSkiWheelchair",34:"sittingJacksWheelchair",35:"punchForwardWheelchair",36:"punchDownWheelchair",37:"punchSidewaysWheelchair",38:"punchUpWheelchair",39:"punchBagWheelchair",40:"poleDdFfUuWheelchair",41:"butterflyArmsWheelchair",42:"punch"},carryExerciseName:{0:"barHolds",1:"farmersWalk",2:"farmersWalkOnToes",3:"hexDumbbellHold",4:"overheadCarry",5:"dumbbellWaiterCarry",6:"farmersCarryWalkLunge",7:"farmersCarry",8:"farmersCarryOnToes"},chopExerciseName:{0:"cablePullThrough",1:"cableRotationalLift",2:"cableWoodchop",3:"crossChopToKnee",4:"weightedCrossChopToKnee",5:"dumbbellChop",6:"halfKneelingRotation",7:"weightedHalfKneelingRotation",8:"halfKneelingRotationalChop",9:"halfKneelingRotationalReverseChop",10:"halfKneelingStabilityChop",11:"halfKneelingStabilityReverseChop",12:"kneelingRotationalChop",13:"kneelingRotationalReverseChop",14:"kneelingStabilityChop",15:"kneelingWoodchopper",16:"medicineBallWoodChops",17:"powerSquatChops",18:"weightedPowerSquatChops",19:"standingRotationalChop",20:"standingSplitRotationalChop",21:"standingSplitRotationalReverseChop",22:"standingStabilityReverseChop"},coreExerciseName:{0:"absJabs",1:"weightedAbsJabs",2:"alternatingPlateReach",3:"barbellRollout",4:"weightedBarbellRollout",5:"bodyBarObliqueTwist",6:"cableCorePress",7:"cableSideBend",8:"sideBend",9:"weightedSideBend",10:"crescentCircle",11:"weightedCrescentCircle",12:"cyclingRussianTwist",13:"weightedCyclingRussianTwist",14:"elevatedFeetRussianTwist",15:"weightedElevatedFeetRussianTwist",16:"halfTurkishGetUp",17:"kettlebellWindmill",18:"kneelingAbWheel",19:"weightedKneelingAbWheel",20:"modifiedFrontLever",21:"openKneeTucks",22:"weightedOpenKneeTucks",23:"sideAbsLegLift",24:"weightedSideAbsLegLift",25:"swissBallJackknife",26:"weightedSwissBallJackknife",27:"swissBallPike",28:"weightedSwissBallPike",29:"swissBallRollout",30:"weightedSwissBallRollout",31:"triangleHipPress",32:"weightedTriangleHipPress",33:"trxSuspendedJackknife",34:"weightedTrxSuspendedJackknife",35:"uBoat",36:"weightedUBoat",37:"windmillSwitches",38:"weightedWindmillSwitches",39:"alternatingSlideOut",40:"weightedAlternatingSlideOut",41:"ghdBackExtensions",42:"weightedGhdBackExtensions",43:"overheadWalk",44:"inchworm",45:"weightedModifiedFrontLever",46:"russianTwist",47:"abdominalLegRotations",48:"armAndLegExtensionOnKnees",49:"bicycle",50:"bicepCurlWithLegExtension",51:"catCow",52:"corkscrew",53:"crissCross",54:"crissCrossWithBall",55:"doubleLegStretch",56:"kneeFolds",57:"lowerLift",58:"neckPull",59:"pelvicClocks",60:"rollOver",61:"rollUp",62:"rolling",63:"rowing1",64:"rowing2",65:"scissors",66:"singleLegCircles",67:"singleLegStretch",68:"snakeTwist1And2",69:"swan",70:"swimming",71:"teaser",72:"theHundred",73:"bicepCurlWithLegExtensionWithWeights",75:"hangingLSit",77:"lowerLiftWithWeights",79:"ringLSit",80:"rowing1WithWeights",81:"rowing2WithWeights",82:"scissorsWithWeights",83:"singleLegStretchWithWeights",84:"toesToElbows",85:"weightedCrissCross",86:"weightedDoubleLegStretch",87:"weightedTheHundred",88:"lSit",89:"turkishGetUp",90:"weightedRingLSit",91:"weightedHangingLSit",92:"weightedLSit",93:"sideBendLowWheelchair",94:"sideBendMidWheelchair",95:"sideBendHighWheelchair",96:"seatedSideBend"},crunchExerciseName:{0:"bicycleCrunch",1:"cableCrunch",2:"circularArmCrunch",3:"crossedArmsCrunch",4:"weightedCrossedArmsCrunch",5:"crossLegReverseCrunch",6:"weightedCrossLegReverseCrunch",7:"crunchChop",8:"weightedCrunchChop",9:"doubleCrunch",10:"weightedDoubleCrunch",11:"elbowToKneeCrunch",12:"weightedElbowToKneeCrunch",13:"flutterKicks",14:"weightedFlutterKicks",15:"foamRollerReverseCrunchOnBench",16:"weightedFoamRollerReverseCrunchOnBench",17:"foamRollerReverseCrunchWithDumbbell",18:"foamRollerReverseCrunchWithMedicineBall",19:"frogPress",20:"hangingKneeRaiseObliqueCrunch",21:"weightedHangingKneeRaiseObliqueCrunch",22:"hipCrossover",23:"weightedHipCrossover",24:"hollowRock",25:"weightedHollowRock",26:"inclineReverseCrunch",27:"weightedInclineReverseCrunch",28:"kneelingCableCrunch",29:"kneelingCrossCrunch",30:"weightedKneelingCrossCrunch",31:"kneelingObliqueCableCrunch",32:"kneesToElbow",33:"legExtensions",34:"weightedLegExtensions",35:"legLevers",36:"mcgillCurlUp",37:"weightedMcgillCurlUp",38:"modifiedPilatesRollUpWithBall",39:"weightedModifiedPilatesRollUpWithBall",40:"pilatesCrunch",41:"weightedPilatesCrunch",42:"pilatesRollUpWithBall",43:"weightedPilatesRollUpWithBall",44:"raisedLegsCrunch",45:"weightedRaisedLegsCrunch",46:"reverseCrunch",47:"weightedReverseCrunch",48:"reverseCrunchOnABench",49:"weightedReverseCrunchOnABench",50:"reverseCurlAndLift",51:"weightedReverseCurlAndLift",52:"rotationalLift",53:"weightedRotationalLift",54:"seatedAlternatingReverseCrunch",55:"weightedSeatedAlternatingReverseCrunch",56:"seatedLegU",57:"weightedSeatedLegU",58:"sideToSideCrunchAndWeave",59:"weightedSideToSideCrunchAndWeave",60:"singleLegReverseCrunch",61:"weightedSingleLegReverseCrunch",62:"skaterCrunchCross",63:"weightedSkaterCrunchCross",64:"standingCableCrunch",65:"standingSideCrunch",66:"stepClimb",67:"weightedStepClimb",68:"swissBallCrunch",69:"swissBallReverseCrunch",70:"weightedSwissBallReverseCrunch",71:"swissBallRussianTwist",72:"weightedSwissBallRussianTwist",73:"swissBallSideCrunch",74:"weightedSwissBallSideCrunch",75:"thoracicCrunchesOnFoamRoller",76:"weightedThoracicCrunchesOnFoamRoller",77:"tricepsCrunch",78:"weightedBicycleCrunch",79:"weightedCrunch",80:"weightedSwissBallCrunch",81:"toesToBar",82:"weightedToesToBar",83:"crunch",84:"straightLegCrunchWithBall",86:"legClimbCrunch"},curlExerciseName:{0:"alternatingDumbbellBicepsCurl",1:"alternatingDumbbellBicepsCurlOnSwissBall",2:"alternatingInclineDumbbellBicepsCurl",3:"barbellBicepsCurl",4:"barbellReverseWristCurl",5:"barbellWristCurl",6:"behindTheBackBarbellReverseWristCurl",7:"behindTheBackOneArmCableCurl",8:"cableBicepsCurl",9:"cableHammerCurl",10:"cheatingBarbellBicepsCurl",11:"closeGripEzBarBicepsCurl",12:"crossBodyDumbbellHammerCurl",13:"deadHangBicepsCurl",14:"declineHammerCurl",15:"dumbbellBicepsCurlWithStaticHold",16:"dumbbellHammerCurl",17:"dumbbellReverseWristCurl",18:"dumbbellWristCurl",19:"ezBarPreacherCurl",20:"forwardBendBicepsCurl",21:"hammerCurlToPress",22:"inclineDumbbellBicepsCurl",23:"inclineOffsetThumbDumbbellCurl",24:"kettlebellBicepsCurl",25:"lyingConcentrationCableCurl",26:"oneArmPreacherCurl",27:"platePinchCurl",28:"preacherCurlWithCable",29:"reverseEzBarCurl",30:"reverseGripWristCurl",31:"reverseGripBarbellBicepsCurl",32:"seatedAlternatingDumbbellBicepsCurl",33:"seatedDumbbellBicepsCurl",34:"seatedReverseDumbbellCurl",35:"splitStanceOffsetPinkyDumbbellCurl",36:"standingAlternatingDumbbellCurls",37:"standingDumbbellBicepsCurl",38:"standingEzBarBicepsCurl",39:"staticCurl",40:"swissBallDumbbellOverheadTricepsExtension",41:"swissBallEzBarPreacherCurl",42:"twistingStandingDumbbellBicepsCurl",43:"wideGripEzBarBicepsCurl",44:"oneArmConcentrationCurl",45:"standingZottmanBicepsCurl",46:"dumbbellBicepsCurl",47:"dragCurlWheelchair",48:"dumbbellBicepsCurlWheelchair",49:"bottleCurl",50:"seatedBottleCurl"},deadliftExerciseName:{0:"barbellDeadlift",1:"barbellStraightLegDeadlift",2:"dumbbellDeadlift",3:"dumbbellSingleLegDeadliftToRow",4:"dumbbellStraightLegDeadlift",5:"kettlebellFloorToShelf",6:"oneArmOneLegDeadlift",7:"rackPull",8:"rotationalDumbbellStraightLegDeadlift",9:"singleArmDeadlift",10:"singleLegBarbellDeadlift",11:"singleLegBarbellStraightLegDeadlift",12:"singleLegDeadliftWithBarbell",13:"singleLegRdlCircuit",14:"singleLegRomanianDeadliftWithDumbbell",15:"sumoDeadlift",16:"sumoDeadliftHighPull",17:"trapBarDeadlift",18:"wideGripBarbellDeadlift",20:"kettlebellDeadlift",21:"kettlebellSumoDeadlift",23:"romanianDeadlift",24:"singleLegRomanianDeadliftCircuit",25:"straightLegDeadlift"},flyeExerciseName:{0:"cableCrossover",1:"declineDumbbellFlye",2:"dumbbellFlye",3:"inclineDumbbellFlye",4:"kettlebellFlye",5:"kneelingRearFlye",6:"singleArmStandingCableReverseFlye",7:"swissBallDumbbellFlye",8:"armRotations",9:"hugATree",10:"faceDownInclineReverseFlye",11:"inclineReverseFlye",12:"rearDeltFlyWheelchair"},hipRaiseExerciseName:{0:"barbellHipThrustOnFloor",1:"barbellHipThrustWithBench",2:"bentKneeSwissBallReverseHipRaise",3:"weightedBentKneeSwissBallReverseHipRaise",4:"bridgeWithLegExtension",5:"weightedBridgeWithLegExtension",6:"clamBridge",7:"frontKickTabletop",8:"weightedFrontKickTabletop",9:"hipExtensionAndCross",10:"weightedHipExtensionAndCross",11:"hipRaise",12:"weightedHipRaise",13:"hipRaiseWithFeetOnSwissBall",14:"weightedHipRaiseWithFeetOnSwissBall",15:"hipRaiseWithHeadOnBosuBall",16:"weightedHipRaiseWithHeadOnBosuBall",17:"hipRaiseWithHeadOnSwissBall",18:"weightedHipRaiseWithHeadOnSwissBall",19:"hipRaiseWithKneeSqueeze",20:"weightedHipRaiseWithKneeSqueeze",21:"inclineRearLegExtension",22:"weightedInclineRearLegExtension",23:"kettlebellSwing",24:"marchingHipRaise",25:"weightedMarchingHipRaise",26:"marchingHipRaiseWithFeetOnASwissBall",27:"weightedMarchingHipRaiseWithFeetOnASwissBall",28:"reverseHipRaise",29:"weightedReverseHipRaise",30:"singleLegHipRaise",31:"weightedSingleLegHipRaise",32:"singleLegHipRaiseWithFootOnBench",33:"weightedSingleLegHipRaiseWithFootOnBench",34:"singleLegHipRaiseWithFootOnBosuBall",35:"weightedSingleLegHipRaiseWithFootOnBosuBall",36:"singleLegHipRaiseWithFootOnFoamRoller",37:"weightedSingleLegHipRaiseWithFootOnFoamRoller",38:"singleLegHipRaiseWithFootOnMedicineBall",39:"weightedSingleLegHipRaiseWithFootOnMedicineBall",40:"singleLegHipRaiseWithHeadOnBosuBall",41:"weightedSingleLegHipRaiseWithHeadOnBosuBall",42:"weightedClamBridge",43:"singleLegSwissBallHipRaiseAndLegCurl",44:"clams",45:"innerThighCircles",46:"innerThighSideLift",47:"legCircles",48:"legLift",49:"legLiftInExternalRotation"},hipStabilityExerciseName:{0:"bandSideLyingLegRaise",1:"deadBug",2:"weightedDeadBug",3:"externalHipRaise",4:"weightedExternalHipRaise",5:"fireHydrantKicks",6:"weightedFireHydrantKicks",7:"hipCircles",8:"weightedHipCircles",9:"innerThighLift",10:"weightedInnerThighLift",11:"lateralWalksWithBandAtAnkles",12:"pretzelSideKick",13:"weightedPretzelSideKick",14:"proneHipInternalRotation",15:"weightedProneHipInternalRotation",16:"quadruped",17:"quadrupedHipExtension",18:"weightedQuadrupedHipExtension",19:"quadrupedWithLegLift",20:"weightedQuadrupedWithLegLift",21:"sideLyingLegRaise",22:"weightedSideLyingLegRaise",23:"slidingHipAdduction",24:"weightedSlidingHipAdduction",25:"standingAdduction",26:"weightedStandingAdduction",27:"standingCableHipAbduction",28:"standingHipAbduction",29:"weightedStandingHipAbduction",30:"standingRearLegRaise",31:"weightedStandingRearLegRaise",32:"supineHipInternalRotation",33:"weightedSupineHipInternalRotation",34:"lyingAbductionStretch"},hipSwingExerciseName:{0:"singleArmKettlebellSwing",1:"singleArmDumbbellSwing",2:"stepOutSwing",3:"oneArmSwing"},hyperextensionExerciseName:{0:"backExtensionWithOppositeArmAndLegReach",1:"weightedBackExtensionWithOppositeArmAndLegReach",2:"baseRotations",3:"weightedBaseRotations",4:"bentKneeReverseHyperextension",5:"weightedBentKneeReverseHyperextension",6:"hollowHoldAndRoll",7:"weightedHollowHoldAndRoll",8:"kicks",9:"weightedKicks",10:"kneeRaises",11:"weightedKneeRaises",12:"kneelingSuperman",13:"weightedKneelingSuperman",14:"latPullDownWithRow",15:"medicineBallDeadliftToReach",16:"oneArmOneLegRow",17:"oneArmRowWithBand",18:"overheadLungeWithMedicineBall",19:"plankKneeTucks",20:"weightedPlankKneeTucks",21:"sideStep",22:"weightedSideStep",23:"singleLegBackExtension",24:"weightedSingleLegBackExtension",25:"spineExtension",26:"weightedSpineExtension",27:"staticBackExtension",28:"weightedStaticBackExtension",29:"supermanFromFloor",30:"weightedSupermanFromFloor",31:"swissBallBackExtension",32:"weightedSwissBallBackExtension",33:"swissBallHyperextension",34:"weightedSwissBallHyperextension",35:"swissBallOppositeArmAndLegLift",36:"weightedSwissBallOppositeArmAndLegLift",37:"supermanOnSwissBall",38:"cobra",39:"supineFloorBarre"},lateralRaiseExerciseName:{0:"45DegreeCableExternalRotation",1:"alternatingLateralRaiseWithStaticHold",2:"barMuscleUp",3:"bentOverLateralRaise",4:"cableDiagonalRaise",5:"cableFrontRaise",6:"calorieRow",7:"comboShoulderRaise",8:"dumbbellDiagonalRaise",9:"dumbbellVRaise",10:"frontRaise",11:"leaningDumbbellLateralRaise",12:"lyingDumbbellRaise",13:"muscleUp",14:"oneArmCableLateralRaise",15:"overhandGripRearLateralRaise",16:"plateRaises",17:"ringDip",18:"weightedRingDip",19:"ringMuscleUp",20:"weightedRingMuscleUp",21:"ropeClimb",22:"weightedRopeClimb",23:"scaption",24:"seatedLateralRaise",25:"seatedRearLateralRaise",26:"sideLyingLateralRaise",27:"standingLift",28:"suspendedRow",29:"underhandGripRearLateralRaise",30:"wallSlide",31:"weightedWallSlide",32:"armCircles",33:"shavingTheHead",34:"dumbbellLateralRaise",36:"ringDipKipping",37:"wallWalk",38:"dumbbellFrontRaiseWheelchair",39:"dumbbellLateralRaiseWheelchair",40:"poleDoubleArmOverheadAndForwardWheelchair",41:"poleStraightArmOverheadWheelchair"},legCurlExerciseName:{0:"legCurl",1:"weightedLegCurl",2:"goodMorning",3:"seatedBarbellGoodMorning",4:"singleLegBarbellGoodMorning",5:"singleLegSlidingLegCurl",6:"slidingLegCurl",7:"splitBarbellGoodMorning",8:"splitStanceExtension",9:"staggeredStanceGoodMorning",10:"swissBallHipRaiseAndLegCurl",11:"zercherGoodMorning",12:"bandGoodMorning",13:"barGoodMorning"},legRaiseExerciseName:{0:"hangingKneeRaise",1:"hangingLegRaise",2:"weightedHangingLegRaise",3:"hangingSingleLegRaise",4:"weightedHangingSingleLegRaise",5:"kettlebellLegRaises",6:"legLoweringDrill",7:"weightedLegLoweringDrill",8:"lyingStraightLegRaise",9:"weightedLyingStraightLegRaise",10:"medicineBallLegDrops",11:"quadrupedLegRaise",12:"weightedQuadrupedLegRaise",13:"reverseLegRaise",14:"weightedReverseLegRaise",15:"reverseLegRaiseOnSwissBall",16:"weightedReverseLegRaiseOnSwissBall",17:"singleLegLoweringDrill",18:"weightedSingleLegLoweringDrill",19:"weightedHangingKneeRaise",20:"lateralStepover",21:"weightedLateralStepover"},lungeExerciseName:{0:"overheadLunge",1:"lungeMatrix",2:"weightedLungeMatrix",3:"alternatingBarbellForwardLunge",4:"alternatingDumbbellLungeWithReach",5:"backFootElevatedDumbbellSplitSquat",6:"barbellBoxLunge",7:"barbellBulgarianSplitSquat",8:"barbellCrossoverLunge",9:"barbellFrontSplitSquat",10:"barbellLunge",11:"barbellReverseLunge",12:"barbellSideLunge",13:"barbellSplitSquat",14:"coreControlRearLunge",15:"diagonalLunge",16:"dropLunge",17:"dumbbellBoxLunge",18:"dumbbellBulgarianSplitSquat",19:"dumbbellCrossoverLunge",20:"dumbbellDiagonalLunge",21:"dumbbellLunge",22:"dumbbellLungeAndRotation",23:"dumbbellOverheadBulgarianSplitSquat",24:"dumbbellReverseLungeToHighKneeAndPress",25:"dumbbellSideLunge",26:"elevatedFrontFootBarbellSplitSquat",27:"frontFootElevatedDumbbellSplitSquat",28:"gunslingerLunge",29:"lawnmowerLunge",30:"lowLungeWithIsometricAdduction",31:"lowSideToSideLunge",32:"lunge",33:"weightedLunge",34:"lungeWithArmReach",35:"lungeWithDiagonalReach",36:"lungeWithSideBend",37:"offsetDumbbellLunge",38:"offsetDumbbellReverseLunge",39:"overheadBulgarianSplitSquat",40:"overheadDumbbellReverseLunge",41:"overheadDumbbellSplitSquat",42:"overheadLungeWithRotation",43:"reverseBarbellBoxLunge",44:"reverseBoxLunge",45:"reverseDumbbellBoxLunge",46:"reverseDumbbellCrossoverLunge",47:"reverseDumbbellDiagonalLunge",48:"reverseLungeWithReachBack",49:"weightedReverseLungeWithReachBack",50:"reverseLungeWithTwistAndOverheadReach",51:"weightedReverseLungeWithTwistAndOverheadReach",52:"reverseSlidingBoxLunge",53:"weightedReverseSlidingBoxLunge",54:"reverseSlidingLunge",55:"weightedReverseSlidingLunge",56:"runnersLungeToBalance",57:"weightedRunnersLungeToBalance",58:"shiftingSideLunge",59:"sideAndCrossoverLunge",60:"weightedSideAndCrossoverLunge",61:"sideLunge",62:"weightedSideLunge",63:"sideLungeAndPress",64:"sideLungeJumpOff",65:"sideLungeSweep",66:"weightedSideLungeSweep",67:"sideLungeToCrossoverTap",68:"weightedSideLungeToCrossoverTap",69:"sideToSideLungeChops",70:"weightedSideToSideLungeChops",71:"siffJumpLunge",72:"weightedSiffJumpLunge",73:"singleArmReverseLungeAndPress",74:"slidingLateralLunge",75:"weightedSlidingLateralLunge",76:"walkingBarbellLunge",77:"walkingDumbbellLunge",78:"walkingLunge",79:"weightedWalkingLunge",80:"wideGripOverheadBarbellSplitSquat",81:"alternatingDumbbellLunge",82:"dumbbellReverseLunge",83:"overheadDumbbellLunge",84:"scissorPowerSwitch",85:"dumbbellOverheadWalkingLunge",86:"curtsyLunge",87:"weightedCurtsyLunge",88:"weightedShiftingSideLunge",89:"weightedSideLungeAndPress",90:"weightedSideLungeJumpOff"},olympicLiftExerciseName:{0:"barbellHangPowerClean",1:"barbellHangSquatClean",2:"barbellPowerClean",3:"barbellPowerSnatch",4:"barbellSquatClean",5:"cleanAndJerk",6:"barbellHangPowerSnatch",7:"barbellHangPull",8:"barbellHighPull",9:"barbellSnatch",10:"barbellSplitJerk",11:"clean",12:"dumbbellClean",13:"dumbbellHangPull",14:"oneHandDumbbellSplitSnatch",15:"pushJerk",16:"singleArmDumbbellSnatch",17:"singleArmHangSnatch",18:"singleArmKettlebellSnatch",19:"splitJerk",20:"squatCleanAndJerk",21:"dumbbellHangSnatch",22:"dumbbellPowerCleanAndJerk",23:"dumbbellPowerCleanAndPushPress",24:"dumbbellPowerCleanAndStrictPress",25:"dumbbellSnatch",26:"medicineBallClean",27:"cleanAndPress",28:"snatch"},plankExerciseName:{0:"45DegreePlank",1:"weighted45DegreePlank",2:"90DegreeStaticHold",3:"weighted90DegreeStaticHold",4:"bearCrawl",5:"weightedBearCrawl",6:"crossBodyMountainClimber",7:"weightedCrossBodyMountainClimber",8:"elbowPlankPikeJacks",9:"weightedElbowPlankPikeJacks",10:"elevatedFeetPlank",11:"weightedElevatedFeetPlank",12:"elevatorAbs",13:"weightedElevatorAbs",14:"extendedPlank",15:"weightedExtendedPlank",16:"fullPlankPasseTwist",17:"weightedFullPlankPasseTwist",18:"inchingElbowPlank",19:"weightedInchingElbowPlank",20:"inchwormToSidePlank",21:"weightedInchwormToSidePlank",22:"kneelingPlank",23:"weightedKneelingPlank",24:"kneelingSidePlankWithLegLift",25:"weightedKneelingSidePlankWithLegLift",26:"lateralRoll",27:"weightedLateralRoll",28:"lyingReversePlank",29:"weightedLyingReversePlank",30:"medicineBallMountainClimber",31:"weightedMedicineBallMountainClimber",32:"modifiedMountainClimberAndExtension",33:"weightedModifiedMountainClimberAndExtension",34:"mountainClimber",35:"weightedMountainClimber",36:"mountainClimberOnSlidingDiscs",37:"weightedMountainClimberOnSlidingDiscs",38:"mountainClimberWithFeetOnBosuBall",39:"weightedMountainClimberWithFeetOnBosuBall",40:"mountainClimberWithHandsOnBench",41:"mountainClimberWithHandsOnSwissBall",42:"weightedMountainClimberWithHandsOnSwissBall",43:"plank",44:"plankJacksWithFeetOnSlidingDiscs",45:"weightedPlankJacksWithFeetOnSlidingDiscs",46:"plankKneeTwist",47:"weightedPlankKneeTwist",48:"plankPikeJumps",49:"weightedPlankPikeJumps",50:"plankPikes",51:"weightedPlankPikes",52:"plankToStandUp",53:"weightedPlankToStandUp",54:"plankWithArmRaise",55:"weightedPlankWithArmRaise",56:"plankWithKneeToElbow",57:"weightedPlankWithKneeToElbow",58:"plankWithObliqueCrunch",59:"weightedPlankWithObliqueCrunch",60:"plyometricSidePlank",61:"weightedPlyometricSidePlank",62:"rollingSidePlank",63:"weightedRollingSidePlank",64:"sideKickPlank",65:"weightedSideKickPlank",66:"sidePlank",67:"weightedSidePlank",68:"sidePlankAndRow",69:"weightedSidePlankAndRow",70:"sidePlankLift",71:"weightedSidePlankLift",72:"sidePlankWithElbowOnBosuBall",73:"weightedSidePlankWithElbowOnBosuBall",74:"sidePlankWithFeetOnBench",75:"weightedSidePlankWithFeetOnBench",76:"sidePlankWithKneeCircle",77:"weightedSidePlankWithKneeCircle",78:"sidePlankWithKneeTuck",79:"weightedSidePlankWithKneeTuck",80:"sidePlankWithLegLift",81:"weightedSidePlankWithLegLift",82:"sidePlankWithReachUnder",83:"weightedSidePlankWithReachUnder",84:"singleLegElevatedFeetPlank",85:"weightedSingleLegElevatedFeetPlank",86:"singleLegFlexAndExtend",87:"weightedSingleLegFlexAndExtend",88:"singleLegSidePlank",89:"weightedSingleLegSidePlank",90:"spidermanPlank",91:"weightedSpidermanPlank",92:"straightArmPlank",93:"weightedStraightArmPlank",94:"straightArmPlankWithShoulderTouch",95:"weightedStraightArmPlankWithShoulderTouch",96:"swissBallPlank",97:"weightedSwissBallPlank",98:"swissBallPlankLegLift",99:"weightedSwissBallPlankLegLift",100:"swissBallPlankLegLiftAndHold",101:"swissBallPlankWithFeetOnBench",102:"weightedSwissBallPlankWithFeetOnBench",103:"swissBallProneJackknife",104:"weightedSwissBallProneJackknife",105:"swissBallSidePlank",106:"weightedSwissBallSidePlank",107:"threeWayPlank",108:"weightedThreeWayPlank",109:"towelPlankAndKneeIn",110:"weightedTowelPlankAndKneeIn",111:"tStabilization",112:"weightedTStabilization",113:"turkishGetUpToSidePlank",114:"weightedTurkishGetUpToSidePlank",115:"twoPointPlank",116:"weightedTwoPointPlank",117:"weightedPlank",118:"wideStancePlankWithDiagonalArmLift",119:"weightedWideStancePlankWithDiagonalArmLift",120:"wideStancePlankWithDiagonalLegLift",121:"weightedWideStancePlankWithDiagonalLegLift",122:"wideStancePlankWithLegLift",123:"weightedWideStancePlankWithLegLift",124:"wideStancePlankWithOppositeArmAndLegLift",125:"weightedMountainClimberWithHandsOnBench",126:"weightedSwissBallPlankLegLiftAndHold",127:"weightedWideStancePlankWithOppositeArmAndLegLift",128:"plankWithFeetOnSwissBall",129:"sidePlankToPlankWithReachUnder",130:"bridgeWithGluteLowerLift",131:"bridgeOneLegBridge",132:"plankWithArmVariations",133:"plankWithLegLift",134:"reversePlankWithLegPull",135:"ringPlankSprawls"},plyoExerciseName:{0:"alternatingJumpLunge",1:"weightedAlternatingJumpLunge",2:"barbellJumpSquat",3:"bodyWeightJumpSquat",4:"weightedJumpSquat",5:"crossKneeStrike",6:"weightedCrossKneeStrike",7:"depthJump",8:"weightedDepthJump",9:"dumbbellJumpSquat",10:"dumbbellSplitJump",11:"frontKneeStrike",12:"weightedFrontKneeStrike",13:"highBoxJump",14:"weightedHighBoxJump",15:"isometricExplosiveBodyWeightJumpSquat",16:"weightedIsometricExplosiveJumpSquat",17:"lateralLeapAndHop",18:"weightedLateralLeapAndHop",19:"lateralPlyoSquats",20:"weightedLateralPlyoSquats",21:"lateralSlide",22:"weightedLateralSlide",23:"medicineBallOverheadThrows",24:"medicineBallSideThrow",25:"medicineBallSlam",26:"sideToSideMedicineBallThrows",27:"sideToSideShuffleJump",28:"weightedSideToSideShuffleJump",29:"squatJumpOntoBox",30:"weightedSquatJumpOntoBox",31:"squatJumpsInAndOut",32:"weightedSquatJumpsInAndOut",33:"boxJump",34:"boxJumpOvers",35:"boxJumpOversOverTheBox",36:"starJumpSquats",37:"jumpSquat"},pullUpExerciseName:{0:"bandedPullUps",1:"30DegreeLatPulldown",2:"bandAssistedChinUp",3:"closeGripChinUp",4:"weightedCloseGripChinUp",5:"closeGripLatPulldown",6:"crossoverChinUp",7:"weightedCrossoverChinUp",8:"ezBarPullover",9:"hangingHurdle",10:"weightedHangingHurdle",11:"kneelingLatPulldown",12:"kneelingUnderhandGripLatPulldown",13:"latPulldown",14:"mixedGripChinUp",15:"weightedMixedGripChinUp",16:"mixedGripPullUp",17:"weightedMixedGripPullUp",18:"reverseGripPulldown",19:"standingCablePullover",20:"straightArmPulldown",21:"swissBallEzBarPullover",22:"towelPullUp",23:"weightedTowelPullUp",24:"weightedPullUp",25:"wideGripLatPulldown",26:"wideGripPullUp",27:"weightedWideGripPullUp",28:"burpeePullUp",29:"weightedBurpeePullUp",30:"jumpingPullUps",31:"weightedJumpingPullUps",32:"kippingPullUp",33:"weightedKippingPullUp",34:"lPullUp",35:"weightedLPullUp",36:"suspendedChinUp",37:"weightedSuspendedChinUp",38:"pullUp",39:"chinUp",40:"neutralGripChinUp",41:"weightedChinUp",42:"bandAssistedPullUp",43:"neutralGripPullUp",44:"weightedNeutralGripChinUp",45:"weightedNeutralGripPullUp"},pushUpExerciseName:{0:"chestPressWithBand",1:"alternatingStaggeredPushUp",2:"weightedAlternatingStaggeredPushUp",3:"alternatingHandsMedicineBallPushUp",4:"weightedAlternatingHandsMedicineBallPushUp",5:"bosuBallPushUp",6:"weightedBosuBallPushUp",7:"clappingPushUp",8:"weightedClappingPushUp",9:"closeGripMedicineBallPushUp",10:"weightedCloseGripMedicineBallPushUp",11:"closeHandsPushUp",12:"weightedCloseHandsPushUp",13:"declinePushUp",14:"weightedDeclinePushUp",15:"diamondPushUp",16:"weightedDiamondPushUp",17:"explosiveCrossoverPushUp",18:"weightedExplosiveCrossoverPushUp",19:"explosivePushUp",20:"weightedExplosivePushUp",21:"feetElevatedSideToSidePushUp",22:"weightedFeetElevatedSideToSidePushUp",23:"handReleasePushUp",24:"weightedHandReleasePushUp",25:"handstandPushUp",26:"weightedHandstandPushUp",27:"inclinePushUp",28:"weightedInclinePushUp",29:"isometricExplosivePushUp",30:"weightedIsometricExplosivePushUp",31:"judoPushUp",32:"weightedJudoPushUp",33:"kneelingPushUp",34:"weightedKneelingPushUp",35:"medicineBallChestPass",36:"medicineBallPushUp",37:"weightedMedicineBallPushUp",38:"oneArmPushUp",39:"weightedOneArmPushUp",40:"weightedPushUp",41:"pushUpAndRow",42:"weightedPushUpAndRow",43:"pushUpPlus",44:"weightedPushUpPlus",45:"pushUpWithFeetOnSwissBall",46:"weightedPushUpWithFeetOnSwissBall",47:"pushUpWithOneHandOnMedicineBall",48:"weightedPushUpWithOneHandOnMedicineBall",49:"shoulderPushUp",50:"weightedShoulderPushUp",51:"singleArmMedicineBallPushUp",52:"weightedSingleArmMedicineBallPushUp",53:"spidermanPushUp",54:"weightedSpidermanPushUp",55:"stackedFeetPushUp",56:"weightedStackedFeetPushUp",57:"staggeredHandsPushUp",58:"weightedStaggeredHandsPushUp",59:"suspendedPushUp",60:"weightedSuspendedPushUp",61:"swissBallPushUp",62:"weightedSwissBallPushUp",63:"swissBallPushUpPlus",64:"weightedSwissBallPushUpPlus",65:"tPushUp",66:"weightedTPushUp",67:"tripleStopPushUp",68:"weightedTripleStopPushUp",69:"wideHandsPushUp",70:"weightedWideHandsPushUp",71:"paralletteHandstandPushUp",72:"weightedParalletteHandstandPushUp",73:"ringHandstandPushUp",74:"weightedRingHandstandPushUp",75:"ringPushUp",76:"weightedRingPushUp",77:"pushUp",78:"pilatesPushup",79:"dynamicPushUp",80:"kippingHandstandPushUp",81:"shoulderTappingPushUp",82:"bicepsPushUp",83:"hinduPushUp",84:"pikePushUp",85:"wideGripPushUp",86:"weightedBicepsPushUp",87:"weightedHinduPushUp",88:"weightedPikePushUp",89:"kippingParalletteHandstandPushUp",90:"wallPushUp"},rowExerciseName:{0:"barbellStraightLegDeadliftToRow",1:"cableRowStanding",2:"dumbbellRow",3:"elevatedFeetInvertedRow",4:"weightedElevatedFeetInvertedRow",5:"facePull",6:"facePullWithExternalRotation",7:"invertedRowWithFeetOnSwissBall",8:"weightedInvertedRowWithFeetOnSwissBall",9:"kettlebellRow",10:"modifiedInvertedRow",11:"weightedModifiedInvertedRow",12:"neutralGripAlternatingDumbbellRow",13:"oneArmBentOverRow",14:"oneLeggedDumbbellRow",15:"renegadeRow",16:"reverseGripBarbellRow",17:"ropeHandleCableRow",18:"seatedCableRow",19:"seatedDumbbellRow",20:"singleArmCableRow",21:"singleArmCableRowAndRotation",22:"singleArmInvertedRow",23:"weightedSingleArmInvertedRow",24:"singleArmNeutralGripDumbbellRow",25:"singleArmNeutralGripDumbbellRowAndRotation",26:"suspendedInvertedRow",27:"weightedSuspendedInvertedRow",28:"tBarRow",29:"towelGripInvertedRow",30:"weightedTowelGripInvertedRow",31:"underhandGripCableRow",32:"vGripCableRow",33:"wideGripSeatedCableRow",34:"alternatingDumbbellRow",35:"invertedRow",36:"row",37:"weightedRow",38:"indoorRow",39:"bandedFacePulls",40:"chestSupportedDumbbellRow",41:"declineRingRow",42:"elevatedRingRow",43:"rdlBentOverRowWithBarbellDumbbell",44:"ringRow",45:"barbellRow",46:"bentOverRowWithBarbell",47:"bentOverRowWithDumbell",48:"seatedUnderhandGripCableRow",49:"trxInvertedRow",50:"weightedInvertedRow",51:"weightedTrxInvertedRow",52:"dumbbellRowWheelchair"},shoulderPressExerciseName:{0:"alternatingDumbbellShoulderPress",1:"arnoldPress",2:"barbellFrontSquatToPushPress",3:"barbellPushPress",4:"barbellShoulderPress",5:"deadCurlPress",6:"dumbbellAlternatingShoulderPressAndTwist",7:"dumbbellHammerCurlToLungeToPress",8:"dumbbellPushPress",9:"floorInvertedShoulderPress",10:"weightedFloorInvertedShoulderPress",11:"invertedShoulderPress",12:"weightedInvertedShoulderPress",13:"oneArmPushPress",14:"overheadBarbellPress",15:"overheadDumbbellPress",16:"seatedBarbellShoulderPress",17:"seatedDumbbellShoulderPress",18:"singleArmDumbbellShoulderPress",19:"singleArmStepUpAndPress",20:"smithMachineOverheadPress",21:"splitStanceHammerCurlToPress",22:"swissBallDumbbellShoulderPress",23:"weightPlateFrontRaise",24:"dumbbellShoulderPress",25:"militaryPress",27:"strictPress",28:"dumbbellFrontRaise",29:"dumbbellCurlToOverheadPressWheelchair",30:"arnoldPressWheelchair",31:"overheadDumbbellPressWheelchair"},shoulderStabilityExerciseName:{0:"90DegreeCableExternalRotation",1:"bandExternalRotation",2:"bandInternalRotation",3:"bentArmLateralRaiseAndExternalRotation",4:"cableExternalRotation",5:"dumbbellFacePullWithExternalRotation",6:"floorIRaise",7:"weightedFloorIRaise",8:"floorTRaise",9:"weightedFloorTRaise",10:"floorYRaise",11:"weightedFloorYRaise",12:"inclineIRaise",13:"weightedInclineIRaise",14:"inclineLRaise",15:"weightedInclineLRaise",16:"inclineTRaise",17:"weightedInclineTRaise",18:"inclineWRaise",19:"weightedInclineWRaise",20:"inclineYRaise",21:"weightedInclineYRaise",22:"lyingExternalRotation",23:"seatedDumbbellExternalRotation",24:"standingLRaise",25:"swissBallIRaise",26:"weightedSwissBallIRaise",27:"swissBallTRaise",28:"weightedSwissBallTRaise",29:"swissBallWRaise",30:"weightedSwissBallWRaise",31:"swissBallYRaise",32:"weightedSwissBallYRaise",33:"cableInternalRotation",34:"lyingInternalRotation",35:"seatedDumbbellInternalRotation"},shrugExerciseName:{0:"barbellJumpShrug",1:"barbellShrug",2:"barbellUprightRow",3:"behindTheBackSmithMachineShrug",4:"dumbbellJumpShrug",5:"dumbbellShrug",6:"dumbbellUprightRow",7:"inclineDumbbellShrug",8:"overheadBarbellShrug",9:"overheadDumbbellShrug",10:"scaptionAndShrug",11:"scapularRetraction",12:"serratusChairShrug",13:"weightedSerratusChairShrug",14:"serratusShrug",15:"weightedSerratusShrug",16:"wideGripJumpShrug",17:"wideGripBarbellShrug",18:"behindTheBackShrug",19:"dumbbellShrugWheelchair",20:"shrugWheelchair",21:"shrugArmDownWheelchair",22:"shrugArmMidWheelchair",23:"shrugArmUpWheelchair",24:"uprightRow"},sitUpExerciseName:{0:"alternatingSitUp",1:"weightedAlternatingSitUp",2:"bentKneeVUp",3:"weightedBentKneeVUp",4:"butterflySitUp",5:"weightedButterflySitup",6:"crossPunchRollUp",7:"weightedCrossPunchRollUp",8:"crossedArmsSitUp",9:"weightedCrossedArmsSitUp",10:"getUpSitUp",11:"weightedGetUpSitUp",12:"hoveringSitUp",13:"weightedHoveringSitUp",14:"kettlebellSitUp",15:"medicineBallAlternatingVUp",16:"medicineBallSitUp",17:"medicineBallVUp",18:"modifiedSitUp",19:"negativeSitUp",20:"oneArmFullSitUp",21:"recliningCircle",22:"weightedRecliningCircle",23:"reverseCurlUp",24:"weightedReverseCurlUp",25:"singleLegSwissBallJackknife",26:"weightedSingleLegSwissBallJackknife",27:"theTeaser",28:"theTeaserWeighted",29:"threePartRollDown",30:"weightedThreePartRollDown",31:"vUp",32:"weightedVUp",33:"weightedRussianTwistOnSwissBall",34:"weightedSitUp",35:"xAbs",36:"weightedXAbs",37:"sitUp",38:"ghdSitUps",39:"sitUpTurkishGetUp",40:"russianTwistOnSwissBall"},squatExerciseName:{0:"legPress",1:"backSquatWithBodyBar",2:"backSquats",3:"weightedBackSquats",4:"balancingSquat",5:"weightedBalancingSquat",6:"barbellBackSquat",7:"barbellBoxSquat",8:"barbellFrontSquat",9:"barbellHackSquat",10:"barbellHangSquatSnatch",11:"barbellLateralStepUp",12:"barbellQuarterSquat",13:"barbellSiffSquat",14:"barbellSquatSnatch",15:"barbellSquatWithHeelsRaised",16:"barbellStepover",17:"barbellStepUp",18:"benchSquatWithRotationalChop",19:"weightedBenchSquatWithRotationalChop",20:"bodyWeightWallSquat",21:"weightedWallSquat",22:"boxStepSquat",23:"weightedBoxStepSquat",24:"bracedSquat",25:"crossedArmBarbellFrontSquat",26:"crossoverDumbbellStepUp",27:"dumbbellFrontSquat",28:"dumbbellSplitSquat",29:"dumbbellSquat",30:"dumbbellSquatClean",31:"dumbbellStepover",32:"dumbbellStepUp",33:"elevatedSingleLegSquat",34:"weightedElevatedSingleLegSquat",35:"figureFourSquats",36:"weightedFigureFourSquats",37:"gobletSquat",38:"kettlebellSquat",39:"kettlebellSwingOverhead",40:"kettlebellSwingWithFlipToSquat",41:"lateralDumbbellStepUp",42:"oneLeggedSquat",43:"overheadDumbbellSquat",44:"overheadSquat",45:"partialSingleLegSquat",46:"weightedPartialSingleLegSquat",47:"pistolSquat",48:"weightedPistolSquat",49:"plieSlides",50:"weightedPlieSlides",51:"plieSquat",52:"weightedPlieSquat",53:"prisonerSquat",54:"weightedPrisonerSquat",55:"singleLegBenchGetUp",56:"weightedSingleLegBenchGetUp",57:"singleLegBenchSquat",58:"weightedSingleLegBenchSquat",59:"singleLegSquatOnSwissBall",60:"weightedSingleLegSquatOnSwissBall",61:"squat",62:"weightedSquat",63:"squatsWithBand",64:"staggeredSquat",65:"weightedStaggeredSquat",66:"stepUp",67:"weightedStepUp",68:"suitcaseSquats",69:"sumoSquat",70:"sumoSquatSlideIn",71:"weightedSumoSquatSlideIn",72:"sumoSquatToHighPull",73:"sumoSquatToStand",74:"weightedSumoSquatToStand",75:"sumoSquatWithRotation",76:"weightedSumoSquatWithRotation",77:"swissBallBodyWeightWallSquat",78:"weightedSwissBallWallSquat",79:"thrusters",80:"unevenSquat",81:"weightedUnevenSquat",82:"waistSlimmingSquat",83:"wallBall",84:"wideStanceBarbellSquat",85:"wideStanceGobletSquat",86:"zercherSquat",87:"kbsOverhead",88:"squatAndSideKick",89:"squatJumpsInNOut",90:"pilatesPlieSquatsParallelTurnedOutFlatAndHeels",91:"releveStraightLegAndKneeBentWithOneLegVariation",92:"alternatingBoxDumbbellStepUps",93:"dumbbellOverheadSquatSingleArm",94:"dumbbellSquatSnatch",95:"medicineBallSquat",97:"wallBallSquatAndPress",98:"squatAmericanSwing",100:"airSquat",101:"dumbbellThrusters",102:"overheadBarbellSquat"},totalBodyExerciseName:{0:"burpee",1:"weightedBurpee",2:"burpeeBoxJump",3:"weightedBurpeeBoxJump",4:"highPullBurpee",5:"manMakers",6:"oneArmBurpee",7:"squatThrusts",8:"weightedSquatThrusts",9:"squatPlankPushUp",10:"weightedSquatPlankPushUp",11:"standingTRotationBalance",12:"weightedStandingTRotationBalance",13:"barbellBurpee",15:"burpeeBoxJumpOverYesLiterallyJumpingOverTheBox",16:"burpeeBoxJumpStepUpOver",17:"lateralBarbellBurpee",18:"totalBodyBurpeeOverBar",19:"burpeeBoxJumpOver",20:"burpeeWheelchair"},moveExerciseName:{0:"archAndCurl",1:"armCirclesWithBallBandAndWeight",2:"armStretch",3:"backMassage",4:"bellyBreathing",5:"bridgeWithBall",6:"diamondLegCrunch",7:"diamondLegLift",8:"eightPointShoulderOpener",9:"footRolling",10:"footwork",11:"footworkOnDisc",12:"forwardFold",13:"frogWithBand",14:"halfRollUp",15:"hamstringCurl",16:"hamstringStretch",17:"hipStretch",18:"hugATreeWithBallBandAndWeight",19:"kneeCircles",20:"kneeFoldsOnDisc",21:"lateralFlexion",22:"legStretchWithBand",23:"legStretchWithLegCircles",24:"lowerLiftOnDisc",25:"lungeSquat",26:"lungesWithKneeLift",27:"mermaidStretch",28:"neutralPelvicPosition",29:"pelvicClocksOnDisc",30:"pilatesPlieSquatsParallelTurnedOutFlatAndHeelsWithChair",31:"piriformisStretch",32:"plankKneeCrosses",33:"plankKneePulls",34:"plankUpDowns",35:"prayerMudra",36:"psoasLungeStretch",37:"ribcageBreathing",38:"rollDown",39:"rollUpWithWeightAndBand",40:"saw",41:"scapularStabilization",42:"scissorsOnDisc",43:"seatedHipStretchup",44:"seatedTwist",45:"shavingTheHeadWithBallBandAndWeight",46:"spinalTwist",47:"spinalTwistStretch",48:"spineStretchForward",49:"squatOpenArmTwistPose",50:"squatsWithBall",51:"standAndHang",52:"standingSideStretch",53:"standingSingleLegForwardBendWithItBandOpener",54:"straightLegCrunchWithLegLift",55:"straightLegCrunchWithLegLiftWithBall",56:"straightLegCrunchWithLegsCrossed",57:"straightLegCrunchWithLegsCrossedWithBall",58:"straightLegDiagonalCrunch",59:"straightLegDiagonalCrunchWithBall",60:"tailboneCurl",61:"throatLock",62:"tickTockSideRoll",63:"twist",64:"vLegCrunches",65:"vSit",66:"forwardFoldWheelchair",67:"forwardFoldPlusWheelchair",68:"armCirclesLowForwardWheelchair",69:"armCirclesMidForwardWheelchair",70:"armCirclesHighForwardWheelchair",71:"armCirclesLowBackwardWheelchair",72:"armCirclesMidBackwardWheelchair",73:"armCirclesHighBackwardWheelchair",74:"coreTwistsWheelchair",75:"armRaiseWheelchair",76:"chestExpandWheelchair",77:"armExtendWheelchair",78:"forwardBendWheelchair",79:"toeTouchWheelchair",80:"extendedToeTouchWheelchair",81:"seatedArmCircles",82:"trunkRotations",83:"seatedTrunkRotations",84:"toeTouch"},poseExerciseName:{0:"allFours",1:"ankleToKnee",2:"babyCobra",3:"boat",4:"boundAngle",5:"boundSeatedSingleLegForwardBend",6:"bow",7:"bowedHalfMoon",8:"bridge",9:"cat",10:"chair",11:"childs",12:"corpse",13:"cowFace",14:"cow",15:"devotionalWarrior",16:"dolphinPlank",17:"dolphin",18:"downDogKneeToNose",19:"downDogSplit",20:"downDogSplitOpenHipBentKnee",21:"downwardFacingDog",22:"eagle",23:"easySeated",24:"extendedPuppy",25:"extendedSideAngle",26:"fish",27:"fourLimbedStaff",28:"fullSplit",29:"gate",30:"halfChairHalfAnkleToKnee",31:"halfMoon",32:"headToKnee",33:"heron",34:"heros",35:"highLunge",36:"kneesChestChin",37:"lizard",38:"locust",39:"lowLunge",40:"lowLungeTwist",41:"lowLungeWithKneeDown",42:"mermaid",43:"mountain",44:"oneLeggedDownwardFacingPoseOpenHipBentKnee",45:"oneLeggedPigeon",46:"peacefulWarrior",47:"plank",48:"plow",49:"reclinedHandToFoot",50:"revolvedHalfMoon",51:"revolvedHeadToKnee",52:"revolvedTriangle",53:"runnersLunge",54:"seatedEasySideBend",55:"seatedEasyTwist",56:"seatedLongLegForwardBend",57:"seatedWideLegForwardBend",58:"shoulderStand",59:"sideBoat",60:"sidePlank",61:"sphinx",62:"squatOpenArmTwist",63:"squatPalmPress",64:"staff",65:"standingArmsUp",66:"standingForwardBendHalfwayUp",67:"standingForwardBend",68:"standingSideOpener",69:"standingSingleLegForwardBend",70:"standingSplit",71:"standingWideLegForwardBend",72:"standingWideLegForwardBendWithTwist",73:"supineSpinalTwist",74:"tableTop",75:"threadTheNeedle",76:"thunderbolt",77:"thunderboltPoseBothSidesArmStretch",78:"tree",79:"triangle",80:"upDog",81:"upwardFacingPlank",82:"warriorOne",83:"warriorThree",84:"warriorTwo",85:"wheel",86:"wideSideLunge",87:"deepBreathingWheelchair",88:"deepBreathingLowWheelchair",89:"deepBreathingMidWheelchair",90:"deepBreathingHighWheelchair",91:"prayerWheelchair",92:"overheadPrayerWheelchair",93:"cactusWheelchair",94:"breathingPunchesWheelchair",95:"breathingPunchesExtendedWheelchair",96:"breathingPunchesOverheadWheelchair",97:"breathingPunchesOverheadAndDownWheelchair",98:"breathingPunchesSideWheelchair",99:"breathingPunchesExtendedSideWheelchair",100:"breathingPunchesOverheadSideWheelchair",101:"breathingPunchesOverheadAndDownSideWheelchair",102:"leftHandBackWheelchair",103:"triangleWheelchair",104:"threadTheNeedleWheelchair",105:"neckFlexionAndExtensionWheelchair",106:"neckLateralFlexionWheelchair",107:"spineFlexionAndExtensionWheelchair",108:"spineRotationWheelchair",109:"spineLateralFlexionWheelchair",110:"alternativeSkiingWheelchair",111:"reachForwardWheelchair",112:"warriorWheelchair",113:"reverseWarriorWheelchair",114:"downwardFacingDogToCobra",115:"seatedCatCow"},tricepsExtensionExerciseName:{0:"benchDip",1:"weightedBenchDip",2:"bodyWeightDip",3:"cableKickback",4:"cableLyingTricepsExtension",5:"cableOverheadTricepsExtension",6:"dumbbellKickback",7:"dumbbellLyingTricepsExtension",8:"ezBarOverheadTricepsExtension",9:"inclineDip",10:"weightedInclineDip",11:"inclineEzBarLyingTricepsExtension",12:"lyingDumbbellPulloverToExtension",13:"lyingEzBarTricepsExtension",14:"lyingTricepsExtensionToCloseGripBenchPress",15:"overheadDumbbellTricepsExtension",16:"recliningTricepsPress",17:"reverseGripPressdown",18:"reverseGripTricepsPressdown",19:"ropePressdown",20:"seatedBarbellOverheadTricepsExtension",21:"seatedDumbbellOverheadTricepsExtension",22:"seatedEzBarOverheadTricepsExtension",23:"seatedSingleArmOverheadDumbbellExtension",24:"singleArmDumbbellOverheadTricepsExtension",25:"singleDumbbellSeatedOverheadTricepsExtension",26:"singleLegBenchDipAndKick",27:"weightedSingleLegBenchDipAndKick",28:"singleLegDip",29:"weightedSingleLegDip",30:"staticLyingTricepsExtension",31:"suspendedDip",32:"weightedSuspendedDip",33:"swissBallDumbbellLyingTricepsExtension",34:"swissBallEzBarLyingTricepsExtension",35:"swissBallEzBarOverheadTricepsExtension",36:"tabletopDip",37:"weightedTabletopDip",38:"tricepsExtensionOnFloor",39:"tricepsPressdown",40:"weightedDip",41:"alternatingDumbbellLyingTricepsExtension",42:"tricepsPress",43:"dumbbellKickbackWheelchair",44:"overheadDumbbellTricepsExtensionWheelchair"},warmUpExerciseName:{0:"quadrupedRocking",1:"neckTilts",2:"ankleCircles",3:"ankleDorsiflexionWithBand",4:"ankleInternalRotation",5:"armCircles",6:"bentOverReachToSky",7:"catCamel",8:"elbowToFootLunge",9:"forwardAndBackwardLegSwings",10:"groiners",11:"invertedHamstringStretch",12:"lateralDuckUnder",13:"neckRotations",14:"oppositeArmAndLegBalance",15:"reachRollAndLift",16:"scorpion",17:"shoulderCircles",18:"sideToSideLegSwings",19:"sleeperStretch",20:"slideOut",21:"swissBallHipCrossover",22:"swissBallReachRollAndLift",23:"swissBallWindshieldWipers",24:"thoracicRotation",25:"walkingHighKicks",26:"walkingHighKnees",27:"walkingKneeHugs",28:"walkingLegCradles",29:"walkout",30:"walkoutFromPushUpPosition",31:"bicepsStretch",32:"glutesStretch",33:"standingHamstringStretch",34:"stretch90_90",35:"stretchAbs",36:"stretchButterfly",37:"stretchCalf",38:"stretchCatCow",39:"stretchChildsPose",40:"stretchCobra",41:"stretchForearms",42:"stretchForwardGlutes",43:"stretchFrontSplit",44:"stretchHamstring",45:"stretchHipFlexorAndQuad",46:"stretchLat",47:"stretchLevatorScapulae",48:"stretchLungeWithSpinalTwist",49:"stretchLungingHipFlexor",50:"stretchLyingAbduction",51:"stretchLyingItBand",52:"stretchLyingKneeToChest",53:"stretchLyingPiriformis",54:"stretchLyingSpinalTwist",55:"stretchNeck",56:"stretchObliques",57:"stretchOverUnderShoulder",58:"stretchPectoral",59:"stretchPigeonPose",60:"stretchPiriformis",61:"stretchQuad",62:"stretchScorpion",63:"stretchShoulder",64:"stretchSide",65:"stretchSideLunge",66:"stretchSideSplit",67:"stretchStandingItBand",68:"stretchStraddle",69:"stretchTriceps",70:"stretchWallChestAndShoulder",71:"neckRotationsWheelchair",72:"halfKneelingArmRotation",73:"threeWayAnkleMobilization",74:"ninetyNinetyHipSwitch",75:"activeFrog",76:"shoulderSweeps",77:"ankleLunges",78:"backRollFoamRoller",79:"bearCrawl",80:"latissimusDorsiFoamRoll",81:"reverseTHipOpener",82:"shoulderRolls",83:"chestOpeners",84:"tricepsStretch",85:"upperBackStretch",86:"hipCircles",87:"ankleStretch",88:"marchingInPlace",89:"tricepsStretchWheelchair",90:"upperBackStretchWheelchair"},runExerciseName:{0:"run",1:"walk",2:"jog",3:"sprint",4:"runOrWalk",5:"speedWalk",6:"warmUp"},bikeExerciseName:{0:"bike",1:"ride",2:"sprint"},bandedExercisesExerciseName:{1:"abTwist",2:"backExtension",3:"bicycleCrunch",4:"calfRaises",5:"chestPress",6:"clamShells",7:"curl",8:"deadbug",9:"deadlift",10:"donkeyKick",11:"externalRotation",12:"externalRotationAt90DegreeAbduction",13:"facePull",14:"fireHydrant",15:"fly",16:"frontRaise",17:"gluteBridge",18:"hamstringCurls",19:"highPlankLegLifts",20:"hipExtension",21:"internalRotation",22:"jumpingJack",23:"kneelingCrunch",24:"lateralBandWalks",25:"lateralRaise",26:"latpull",27:"legAbduction",28:"legAdduction",29:"legExtension",30:"lunge",31:"plank",32:"pullApart",33:"pushUps",34:"reverseCrunch",35:"row",36:"shoulderAbduction",37:"shoulderExtension",38:"shoulderExternalRotation",39:"shoulderFlexionTo90Degrees",40:"sidePlankLegLifts",41:"sideRaise",42:"squat",43:"squatToPress",44:"tricepExtension",45:"tricepKickback",46:"uprightRow",47:"wallCrawlWithExternalRotation",49:"lateralRaiseWheelchair",50:"tricepsExtensionWheelchair",51:"chestFlyInclineWheelchair",52:"chestFlyDeclineWheelchair",53:"pullDownWheelchair",54:"straightArmPullDownWheelchair",55:"curlWheelchair",56:"overheadCurlWheelchair",57:"facePullWheelchair",58:"aroundTheWorldWheelchair",59:"pullApartWheelchair",60:"sideCurlWheelchair",61:"overheadPressWheelchair"},battleRopeExerciseName:{0:"alternatingFigureEight",1:"alternatingJumpWave",2:"alternatingKneelingToStandingWave",3:"alternatingLungeWave",4:"alternatingSquatWave",5:"alternatingWave",6:"alternatingWaveWithLateralShuffle",7:"clapWave",8:"doubleArmFigureEight",9:"doubleArmSideToSideSnake",10:"doubleArmSideWave",11:"doubleArmSlam",12:"doubleArmWave",13:"grapplerToss",14:"hipToss",15:"inAndOutWave",16:"insideCircle",17:"jumpingJacks",18:"outsideCircle",19:"rainbow",20:"sidePlankWave",21:"sidewinder",22:"sittingRussianTwist",23:"snakeWave",24:"splitJack",25:"stageCoach",26:"ultimateWarrior",27:"upperCuts"},ellipticalExerciseName:{0:"elliptical"},floorClimbExerciseName:{0:"floorClimb"},indoorBikeExerciseName:{0:"airBike",1:"assaultBike",3:"stationaryBike"},indoorRowExerciseName:{0:"rowingMachine"},ladderExerciseName:{0:"agility",1:"speed"},sandbagExerciseName:{0:"aroundTheWorld",1:"backSquat",2:"bearCrawlPullThrough",3:"bearHugSquat",4:"clean",5:"cleanAndPress",6:"curl",7:"frontCarry",8:"frontSquat",9:"lunge",10:"overheadPress",11:"plankPullThrough",12:"rotationalLunge",13:"row",14:"russianTwist",15:"shouldering",16:"shoveling",17:"sideLunge",18:"sprint",19:"zercherSquat"},sledExerciseName:{0:"backwardDrag",1:"chestPress",2:"forwardDrag",3:"lowPush",4:"push",5:"row"},sledgeHammerExerciseName:{0:"lateralSwing",1:"hammerSlam"},stairStepperExerciseName:{0:"stairStepper"},suspensionExerciseName:{0:"chestFly",1:"chestPress",2:"crunch",3:"curl",4:"dip",5:"facePull",6:"gluteBridge",7:"hamstringCurl",8:"hipDrop",9:"invertedRow",10:"kneeDriveJump",11:"kneeToChest",12:"latPullover",13:"lunge",14:"mountainClimber",15:"pendulum",16:"pike",17:"plank",18:"powerPull",19:"pullUp",20:"pushUp",21:"reverseMountainClimber",22:"reversePlank",23:"rollout",24:"row",25:"sideLunge",26:"sidePlank",27:"singleLegDeadlift",28:"singleLegSquat",29:"sitUp",30:"split",31:"squat",32:"squatJump",33:"tricepPress",34:"yFly"},tireExerciseName:{0:"flip"},bikeOutdoorExerciseName:{0:"bike"},runIndoorExerciseName:{0:"indoorTrackRun",1:"treadmill"},waterType:{0:"fresh",1:"salt",2:"en13319",3:"custom"},tissueModelType:{0:"zhl16c"},diveGasStatus:{0:"disabled",1:"enabled",2:"backupOnly"},diveAlert:{0:"ndlReached",1:"gasSwitchPrompted",2:"nearSurface",3:"approachingNdl",4:"po2Warn",5:"po2CritHigh",6:"po2CritLow",7:"timeAlert",8:"depthAlert",9:"decoCeilingBroken",10:"decoComplete",11:"safetyStopBroken",12:"safetyStopComplete",13:"cnsWarning",14:"cnsCritical",15:"otuWarning",16:"otuCritical",17:"ascentCritical",18:"alertDismissedByKey",19:"alertDismissedByTimeout",20:"batteryLow",21:"batteryCritical",22:"safetyStopStarted",23:"approachingFirstDecoStop",24:"setpointSwitchAutoLow",25:"setpointSwitchAutoHigh",26:"setpointSwitchManualLow",27:"setpointSwitchManualHigh",28:"autoSetpointSwitchIgnored",29:"switchedToOpenCircuit",30:"switchedToClosedCircuit",32:"tankBatteryLow",33:"po2CcrDilLow",34:"decoStopCleared",35:"apneaNeutralBuoyancy",36:"apneaTargetDepth",37:"apneaSurface",38:"apneaHighSpeed",39:"apneaLowSpeed"},diveAlarmType:{0:"depth",1:"time",2:"speed"},diveBacklightMode:{0:"atDepth",1:"alwaysOn"},sleepLevel:{0:"unmeasurable",1:"awake",2:"light",3:"deep",4:"rem"},spo2MeasurementType:{0:"offWrist",1:"spotCheck",2:"continuousCheck",3:"periodic"},ccrSetpointSwitchMode:{0:"manual",1:"automatic"},diveGasMode:{0:"openCircuit",1:"closedCircuitDiluent"},projectileType:{0:"arrow",1:"rifleCartridge",2:"pistolCartridge",3:"shotshell",4:"airRiflePellet",5:"other"},faveroProduct:{10:"assiomaUno",12:"assiomaDuo"},splitType:{1:"ascentSplit",2:"descentSplit",3:"intervalActive",4:"intervalRest",5:"intervalWarmup",6:"intervalCooldown",7:"intervalRecovery",8:"intervalOther",9:"climbActive",10:"climbRest",11:"surfActive",12:"runActive",13:"runRest",14:"workoutRound",17:"rwdRun",18:"rwdWalk",21:"windsurfActive",22:"rwdStand",23:"transition",28:"skiLiftSplit",29:"skiRunSplit"},climbProEvent:{0:"approach",1:"start",2:"complete"},gasConsumptionRateType:{0:"pressureSac",1:"volumeSac",2:"rmv"},tapSensitivity:{0:"high",1:"medium",2:"low"},radarThreatLevelType:{0:"threatUnknown",1:"threatNone",2:"threatApproaching",3:"threatApproachingFast"},sleepDisruptionSeverity:{0:"none",1:"low",2:"medium",3:"high"},napPeriodFeedback:{0:"none",1:"multipleNapsDuringDay",2:"jetlagIdealTimingIdealDuration",3:"jetlagIdealTimingLongDuration",4:"jetlagLateTimingIdealDuration",5:"jetlagLateTimingLongDuration",6:"idealTimingIdealDurationLowNeed",7:"idealTimingIdealDurationHighNeed",8:"idealTimingLongDurationLowNeed",9:"idealTimingLongDurationHighNeed",10:"lateTimingIdealDurationLowNeed",11:"lateTimingIdealDurationHighNeed",12:"lateTimingLongDurationLowNeed",13:"lateTimingLongDurationHighNeed",14:"idealDurationLowNeed",15:"idealDurationHighNeed",16:"longDurationLowNeed",17:"longDurationHighNeed"},napSource:{0:"automatic",1:"manualDevice",2:"manualGc"},maxMetSpeedSource:{0:"onboardGps",1:"connectedGps",2:"cadence"},maxMetHeartRateSource:{0:"whr",1:"hrm"},hrvStatus:{0:"none",1:"poor",2:"low",3:"unbalanced",4:"balanced"},noFlyTimeMode:{0:"standard",1:"flat24Hours"}},MesgNum:{FILE_ID:0,FILE_CREATOR:49,TIMESTAMP_CORRELATION:162,SOFTWARE:35,SLAVE_DEVICE:106,CAPABILITIES:1,FILE_CAPABILITIES:37,MESG_CAPABILITIES:38,FIELD_CAPABILITIES:39,DEVICE_SETTINGS:2,USER_PROFILE:3,HRM_PROFILE:4,SDM_PROFILE:5,BIKE_PROFILE:6,CONNECTIVITY:127,WATCHFACE_SETTINGS:159,OHR_SETTINGS:188,TIME_IN_ZONE:216,ZONES_TARGET:7,SPORT:12,HR_ZONE:8,SPEED_ZONE:53,CADENCE_ZONE:131,POWER_ZONE:9,MET_ZONE:10,TRAINING_SETTINGS:13,DIVE_SETTINGS:258,DIVE_ALARM:262,DIVE_APNEA_ALARM:393,DIVE_GAS:259,GOAL:15,ACTIVITY:34,SESSION:18,LAP:19,LENGTH:101,RECORD:20,EVENT:21,DEVICE_INFO:23,DEVICE_AUX_BATTERY_INFO:375,TRAINING_FILE:72,WEATHER_CONDITIONS:128,WEATHER_ALERT:129,GPS_METADATA:160,CAMERA_EVENT:161,GYROSCOPE_DATA:164,ACCELEROMETER_DATA:165,MAGNETOMETER_DATA:208,BAROMETER_DATA:209,THREE_D_SENSOR_CALIBRATION:167,ONE_D_SENSOR_CALIBRATION:210,VIDEO_FRAME:169,OBDII_DATA:174,NMEA_SENTENCE:177,AVIATION_ATTITUDE:178,VIDEO:184,VIDEO_TITLE:185,VIDEO_DESCRIPTION:186,VIDEO_CLIP:187,SET:225,JUMP:285,SPLIT:312,SPLIT_SUMMARY:313,CLIMB_PRO:317,FIELD_DESCRIPTION:206,DEVELOPER_DATA_ID:207,COURSE:31,COURSE_POINT:32,SEGMENT_ID:148,SEGMENT_LEADERBOARD_ENTRY:149,SEGMENT_POINT:150,SEGMENT_LAP:142,SEGMENT_FILE:151,WORKOUT:26,WORKOUT_SESSION:158,WORKOUT_STEP:27,EXERCISE_TITLE:264,SCHEDULE:28,TOTALS:33,WEIGHT_SCALE:30,BLOOD_PRESSURE:51,MONITORING_INFO:103,MONITORING:55,MONITORING_HR_DATA:211,SPO2_DATA:269,HR:132,STRESS_LEVEL:227,MAX_MET_DATA:229,HSA_BODY_BATTERY_DATA:314,HSA_EVENT:315,HSA_ACCELEROMETER_DATA:302,HSA_GYROSCOPE_DATA:376,HSA_STEP_DATA:304,HSA_SPO2_DATA:305,HSA_STRESS_DATA:306,HSA_RESPIRATION_DATA:307,HSA_HEART_RATE_DATA:308,HSA_CONFIGURATION_DATA:389,HSA_WRIST_TEMPERATURE_DATA:409,MEMO_GLOB:145,SLEEP_LEVEL:275,ANT_CHANNEL_ID:82,ANT_RX:80,ANT_TX:81,EXD_SCREEN_CONFIGURATION:200,EXD_DATA_FIELD_CONFIGURATION:201,EXD_DATA_CONCEPT_CONFIGURATION:202,DIVE_SUMMARY:268,AAD_ACCEL_FEATURES:289,HRV:78,BEAT_INTERVALS:290,HRV_STATUS_SUMMARY:370,HRV_VALUE:371,RAW_BBI:372,RESPIRATION_RATE:297,CHRONO_SHOT_SESSION:387,CHRONO_SHOT_DATA:388,TANK_UPDATE:319,TANK_SUMMARY:323,SLEEP_ASSESSMENT:346,SLEEP_DISRUPTION_SEVERITY_PERIOD:470,SLEEP_DISRUPTION_OVERNIGHT_SEVERITY:471,NAP_EVENT:412,SKIN_TEMP_OVERNIGHT:398,PAD:105}},G=fa});var pa,Kt,kt,Nt=N(()=>{ue();pa=l=>{if((l?.memoGlobMesgs?.length??0)==0)return;let e=l.memoGlobMesgs,s=Object.groupBy(e,({mesgNum:t,parentIndex:n,fieldNum:a})=>JSON.stringify({mesgNum:t,parentIndex:n,fieldNum:a}));Object.entries(s).forEach(([t,n])=>{let{mesgNum:a,parentIndex:i,fieldNum:o}=JSON.parse(t);n.sort((R,b)=>R.partIndex-b.partIndex);let u=Object.values(G.messages).find(R=>R.name==a||R.num==a),p=l[u?.messagesKey??a]?.[i];if(p==null)return;let d=u?.fields?.[o]?.name??o,_=n.reduce((R,b)=>R.concat(b.data),[]);p[d]=Kt(_)})},Kt=l=>{let e=new TextDecoder("utf-8"),s=new Uint8Array(l);return e.decode(s)},kt={decodeMemoGlobs:pa,decodeMemoGlobBytesToUtf8:Kt}});var ma,ra,Xt,da,ee,Xs=N(()=>{ma=(l,{legacyArrayMode:e=!1,isArray:s=!1}={})=>Xt(l)?null:e?l.length===1?l[0]:l:s?l:l[0],ra=l=>{if(l==null)return;let e=l.split("\0");for(;e[e.length-1]==="";)if(e.pop(),e.length===0)return"";return e.length===1?e[0]:e},Xt=l=>l.every(e=>e==null),da=(l,e)=>Array.isArray(l)?l.every(s=>s===e):l===e,ee={sanitizeValues:ma,trimStringTrailingNulls:ra,onlyNullValues:Xt,onlyInvalidValues:da}});var Ys,Yt,zs=N(()=>{q();Xs();Ys=class l{#t=0;#e=null;#s=null;#l=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0});#n=null;#a=!1;static fromByteArray(e){let s=new Uint8Array(e);return this.fromArrayBuffer(s.buffer)}static fromBuffer(e){let s=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return this.fromArrayBuffer(s)}static fromArrayBuffer(e){return new l(e)}constructor(e){this.#t=0,this.#e=e,this.#s=new DataView(e)}get length(){return this.#e.byteLength}get bytesRead(){return this.#t}get position(){return this.#t}get crcCalculator(){return this.#n}set crcCalculator(e){this.#n=e}get legacyArrayMode(){return this.#a}set legacyArrayMode(e){this.#a=e}reset(){this.seek(0)}seek(e){this.#t=e}slice(e,s){return this.#e.slice(e,s)}peekByte(){return this.#s.getUint8(this.#t)}readByte(){return this.readUInt8()}readBytes(e){if(this.#t+e>this.#e.byteLength)throw Error(`FIT Runtime Error end of stream at byte ${this.#t}`);let s=new Uint8Array(this.#e,this.#t,e);return this.#t+=e,this.#n?.addBytes(s,0,e),s}readUInt8(e){return this.readValue(r.BaseType.UINT8,1,{convertInvalidToNull:!1,...e})}readInt8(e){return this.readValue(r.BaseType.SINT8,1,{convertInvalidToNull:!1,...e})}readUInt16(e){return this.readValue(r.BaseType.UINT16,2,{convertInvalidToNull:!1,...e})}readInt16(e){return this.readValue(r.BaseType.SINT16,2,{convertInvalidToNull:!1,...e})}readUInt32(e){return this.readValue(r.BaseType.UINT32,4,{convertInvalidToNull:!1,...e})}readInt32(e){return this.readValue(r.BaseType.SINT32,4,{convertInvalidToNull:!1,...e})}readUInt64(e){return this.readValue(r.BaseType.UINT64,8,{convertInvalidToNull:!1,...e})}readInt64(e){return this.readValue(r.BaseType.SINT64,8,{convertInvalidToNull:!1,...e})}readFloat32(e){return this.readValue(r.BaseType.FLOAT32,4,{convertInvalidToNull:!1,...e})}readFloat64(e){return this.readValue(r.BaseType.FLOAT64,8,{convertInvalidToNull:!1,...e})}readString(e,s={}){return this.readValue(r.BaseType.STRING,e,s)}asUint8Array(){return new Uint8Array(this.#e)}readValue(e,s,{littleEndian:t=!0,convertInvalidToNull:n=!0,isArray:a=!1}={}){let i=r.BaseTypeDefinitions[e],o=i.size,u=i.invalid,p=this.#t,d=this.readBytes(s);if(s%o!==0)return n?null:u;if(e===r.BaseType.STRING){let y=this.#l.decode(d).replace(/\uFFFD/g,"").split(r.NULL_TERMINATOR);for(;y[y.length-1]==="";)y.pop();return y.length===0?null:this.#a?y.length===1?y[0]:y:y[0]}let _=s/o;if(_===1){let b=this.#o(e,p,t);return n&&b===u?null:!this.#a&&!a?b:ee.sanitizeValues([b],{legacyArrayMode:this.#a,isArray:a})}let R=[];for(let b=0;b<_;b++)R.push(this.#o(e,p+b*o,t));if(n){if(ee.onlyInvalidValues(R,u))return null;e!==r.BaseType.BYTE&&(R=R.map(b=>b===u?null:b))}return ee.sanitizeValues(R,{legacyArrayMode:this.#a,isArray:a})}#o(e,s,t){switch(e){case r.BaseType.BYTE:case r.BaseType.ENUM:case r.BaseType.UINT8:case r.BaseType.UINT8Z:return this.#s.getUint8(s);case r.BaseType.SINT8:return this.#s.getInt8(s);case r.BaseType.UINT16:case r.BaseType.UINT16Z:return this.#s.getUint16(s,t);case r.BaseType.SINT16:return this.#s.getInt16(s,t);case r.BaseType.UINT32:case r.BaseType.UINT32Z:return this.#s.getUint32(s,t);case r.BaseType.SINT32:return this.#s.getInt32(s,t);case r.BaseType.UINT64:case r.BaseType.UINT64Z:return this.#s.getBigUint64(s,t);case r.BaseType.SINT64:return this.#s.getBigInt64(s,t);case r.BaseType.FLOAT32:return this.#s.getFloat32(s,t);case r.BaseType.FLOAT64:return this.#s.getFloat64(s,t);default:throw new Error(`Unsupported FIT base type: ${e}`)}}},Yt=Ys});var zt,Js,Jt,Ta,$t,Se,_a,$s,Aa,$,Qs,Qt,jt=N(()=>{St();Mt();Ee();q();Vt();Nt();ue();zs();re();Xs();zt=128,Js=64,Jt=32,Ta=0,$t=15,Se=14,_a=12,$s=2,Aa=2199,$=Object.freeze({NORMAL:"normal",SKIP_HEADER:"skipHeader",DATA_ONLY:"dataOnly"}),Qs=class l{#t=[];#e={};#s=null;#l=new Et;#n={};#a=null;#o=[];#i=[];#f=$.NORMAL;#p=null;#_=null;#m=null;#A=!0;#u=!0;#r=!0;#c=!0;#h=!0;#b=!1;#I=!0;#R=!1;#T=!1;constructor(e){if(e==null)throw Error("FIT Runtime Error stream parameter is null or undefined");this.#s=e}static isFIT(e){try{let s=e.peekByte();if([Se,_a].includes(s)!=!0||e.length<s+$s||l.#y(e,{resetPosition:!0}).dataType!==".FIT")return!1}catch{return!1}return!0}isFIT(){return l.isFIT(this.#s)}checkIntegrity(){try{if(!this.isFIT())return!1;let e=l.#y(this.#s,{resetPosition:!0});if(this.#s.length<e.headerSize+e.dataSize+$s)return!1;let s=this.#s.asUint8Array();if(e.headerSize===Se&&e.headerCRC!==0&&e.headerCRC!=Q.calculateCRC(s,0,12)||(s[e.headerSize+e.dataSize+1]<<8)+s[e.headerSize+e.dataSize]!=Q.calculateCRC(s,0,e.headerSize+e.dataSize))return!1}catch{return!1}return!0}read({mesgListener:e=null,mesgDefinitionListener:s=null,fieldDescriptionListener:t=null,expandSubFields:n=!0,expandComponents:a=!0,applyScaleAndOffset:i=!0,convertTypesToStrings:o=!0,convertDateTimesToDates:u=!0,includeUnknownData:p=!1,mergeHeartRates:d=!0,decodeMemoGlobs:_=!1,skipHeader:R=!1,dataOnly:b=!1,legacyArrayMode:y=!1}={}){this.#p=e,this.#_=s,this.#m=t,this.#A=n,this.#u=a,this.#r=i,this.#c=o,this.#h=u,this.#b=p,this.#I=d,this.#R=_,this.#T=y,this.#t=[],this.#e={},this.#n={},this.#a=null;let P=[];try{for(this.#T,this.#I&&(!this.#r||!this.#u)&&this.#d("mergeHeartRates requires applyScaleAndOffset and expandComponents to be enabled"),b&&R&&this.#d("dataOnly and skipHeader cannot both be enabled"),this.#f=R?$.SKIP_HEADER:b?$.DATA_ONLY:$.NORMAL,this.#s.legacyArrayMode=this.#T;this.#s.position<this.#s.length;)this.#E();this.#I&&Wt.mergeHeartRates(this.#n.hrMesgs,this.#n.recordMesgs),this.#R&&kt.decodeMemoGlobs(this.#n)}catch(v){P.push(v)}finally{return{messages:this.#n,profileVersion:this.#a,errors:P}}}#E(){let e=this.#s.position;this.#f===$.NORMAL&&!this.isFIT()&&this.#d("input is not a FIT file"),this.#s.crcCalculator=new Q;let{headerSize:s,dataSize:t,profileVersion:n}=l.#y(this.#s,{decodeMode:this.#f});for(this.#a??=n;this.#s.position<e+s+t;)this.#S();let a=this.#s.crcCalculator.crc,i=this.#s.readUInt16();this.#f===$.NORMAL&&i!==a&&this.#d("CRC error")}#S(){let e=this.#s.peekByte();if((e&zt)===zt)return this.#D();if((e&Js)===Ta)return this.#F();if((e&Js)===Js)return this.#O()}#O(){let e=this.#s.readByte(),s={};s.recordHeader=e,s.localMesgNum=e&$t,s.reserved=this.#s.readByte(),s.architecture=this.#s.readByte(),s.endianness=s.architecture===0,s.globalMessageNumber=this.#s.readUInt16({littleEndian:s.endianness}),s.numFields=this.#s.readByte(),s.fieldDefinitions=[],s.developerFieldDefinitions=[],s.messageSize=0,s.developerDataSize=0;for(let n=0;n<s.numFields;n++){let a={fieldDefinitionNumber:this.#s.readByte(),size:this.#s.readByte(),baseType:this.#s.readByte()&r.BaseTypeMask};a.baseType in r.BaseTypeDefinitions||this.#d(),a.invalidValue=r.BaseTypeDefinitions[a.baseType].invalid,a.baseTypeSize=r.BaseTypeDefinitions[a.baseType].size,s.fieldDefinitions.push(a),s.messageSize+=a.size}if((e&Jt)===Jt){let n=this.#s.readByte();for(let a=0;a<n;a++){let i={fieldDefinitionNumber:this.#s.readByte(),size:this.#s.readByte(),developerDataIndex:this.#s.readByte()};s.developerFieldDefinitions.push(i),s.developerDataSize+=i.size}}this.#_?.({...s});let t=G.messages[s.globalMessageNumber];t==null&&this.#b&&(t={name:s.globalMessageNumber.toString(),messagesKey:s.globalMessageNumber.toString(),num:s.globalMessageNumber,fields:{}}),this.#t[s.localMesgNum]={...s,...t},t&&!this.#n.hasOwnProperty(t.messagesKey)&&(this.#n[t.messagesKey]=[])}#F(){let s=this.#s.readByte()&$t,t=this.#t[s];t==null&&this.#d();let n=t.fields??{},a=t.num,i={};this.#o=[],this.#i=[],t.fieldDefinitions.forEach(u=>{let p=n[u.fieldDefinitionNumber],{fieldName:d,rawFieldValue:_}=this.#H(t,u,p);d!=null&&(p!=null||this.#b)&&(i[d]={rawFieldValue:_,fieldDefinitionNumber:u.fieldDefinitionNumber},p?.subFields?.length>0&&this.#o.push(d),p?.hasComponents&&this.#i.push(d),p?.isAccumulated&&this.#k(t,i,p,_))});let o={};if(t.developerFieldDefinitions.forEach(u=>{let p=this.#B(u);if(p==null){this.#s.readBytes(u.size);return}u.baseType=p.fitBaseTypeId,u.invalidValue=r.BaseTypeDefinitions[u.baseType].invalid,u.baseTypeSize=r.BaseTypeDefinitions[u.baseType].size;let d=this.#w(t,u,p);d!=null&&(o[p.key]=d)}),a===G.MesgNum.DEVELOPER_DATA_ID)this.#v(i);else if(a===G.MesgNum.FIELD_DESCRIPTION){let u=Object.keys(this.#e).reduce((p,d)=>p+this.#e[d].fields.length,0);i.key={fieldValue:u,rawFieldValue:u},this.#U(i)}else this.#M(a,i),this.#P(a,i,n);if(this.#W(i,t),t.name!=null&&(Object.keys(i).forEach(u=>{i[u]=i[u].fieldValue}),Object.keys(o).length>0&&(i.developerFields=o),this.#n[t.messagesKey].push(i),this.#p?.(t.globalMessageNumber,i),a===G.MesgNum.FIELD_DESCRIPTION&&this.#m!=null)){let u=this.#n.developerDataIdMesgs?.find(p=>p.developerDataIndex===i.developerDataIndex)??{};this.#m(i.key,{...u},{...i})}}#D(){this.#d("compressed timestamp messages are not currently supported")}#H(e,s,t){let n=this.#g(e,s,t);return n==null?{}:{fieldName:t?.name??~~s.fieldDefinitionNumber,rawFieldValue:n}}#g(e,s,t){return this.#s.readValue(s.baseType,s.size,{littleEndian:e.endianness,isArray:t?.array??s.size>s.baseTypeSize})}#w(e,s,t){this.#s.legacyArrayMode=!0;let n=this.#g(e,s,t);return this.#s.legacyArrayMode=this.#T,n}#v(e){e==null||e.developerDataIndex.rawFieldValue==null||e.developerDataIndex.rawFieldValue===255||(this.#e[e.developerDataIndex.rawFieldValue]={developerDataIndex:e.developerDataIndex?.rawFieldValue,developerId:e.developerId?.rawFieldValue??null,applicationId:e.applicationId?.rawFieldValue??null,manufacturerId:e.manufacturerId?.rawFieldValue??null,applicationVersion:e.applicationVersion?.rawFieldValue??null,fields:[]})}#U(e){e==null||e.developerDataIndex.rawFieldValue==null||e.developerDataIndex.rawFieldValue===255||this.#e[e.developerDataIndex.rawFieldValue]!=null&&this.#e[e.developerDataIndex.rawFieldValue].fields.push({developerDataIndex:e.developerDataIndex?.rawFieldValue,fieldDefinitionNumber:e.fieldDefinitionNumber?.rawFieldValue,fitBaseTypeId:e.fitBaseTypeId?.rawFieldValue&r.BaseTypeMask,fieldName:e.fieldName?.rawFieldValue??null,array:e.array?.rawFieldValue??null,components:e.components?.rawFieldValue??null,scale:e.scale?.rawFieldValue??null,offset:e.offset?.rawFieldValue??null,units:e.units?.rawFieldValue??null,bits:e.bits?.rawFieldValue??null,accumulate:e.accumulate?.rawFieldValue??null,refFieldName:e.refFieldName?.rawFieldValue??null,refFieldValue:e.refFieldValue?.rawFieldValue??null,fitBaseUnitId:e.fitBaseUnitId?.rawFieldValue??null,nativeMesgNum:e.nativeMesgNum?.rawFieldValue??null,nativeFieldNum:e.nativeFieldNum?.rawFieldValue??null,key:e.key.rawFieldValue})}#B(e){try{return this.#e[e.developerDataIndex]?.fields?.find(s=>s.fieldDefinitionNumber==e.fieldDefinitionNumber)??null}catch{return null}}#M(e,s){!this.#A||this.#o.length==0||this.#o.forEach(t=>{let n=G.messages[e].fields[s[t].fieldDefinitionNumber];this.#G(s,n)})}#G(e,s){for(let t=0;t<s.subFields.length;t++){let n=s.subFields[t];for(let a=0;a<n.map.length;a++){let i=n.map[a],o=e[i.name];if(o!=null&&o.rawFieldValue===i.value){let u=e[s.name],p=Array.isArray(u.rawFieldValue)?[...u.rawFieldValue]:u.rawFieldValue;e[n.name]={...u,rawFieldValue:p,isSubField:!0},n.hasComponents&&this.#i.push(n.name);break}}}}#P(e,s,t){if(!this.#u||this.#i.length==0)return;let n={};for(;this.#i.length>0;){let a=this.#i.shift(),{rawFieldValue:i,fieldDefinitionNumber:o,isSubField:u}=s[a]??n[a],p=G.messages[e].fields[o];p=u?this.#C(p,a):p;let d=r.FieldTypeToBaseType[p.type];if(p.hasComponents===!1||d==null||ee.onlyInvalidValues(i,r.BaseTypeDefinitions[d].invalid))continue;let _=new Bt(i,d);for(let R=0;R<p.components.length&&!(_.bitsAvailable<p.bits[R]);R++){let b=t[p.components[R]];if(n[b.name]==null){let v=r.FieldTypeToBaseType[b.type],A=v!=null?r.BaseTypeDefinitions[v].invalid:255;n[b.name]={fieldValue:[],rawFieldValue:[],fieldDefinitionNumber:b.num,isExpandedField:!0,isArray:b?.array??!1,invalidValue:A}}let y=_.readBits(p.bits[R]);b.isAccumulated&&(y=this.#l.accumulate(e,b.num,y,p.bits[R])),y=y/p.scale[R]-p.offset[R];let P=(y+b.offset)*b.scale;if(n[b.name].rawFieldValue.push(P),P===n[b.name].invalidValue?n[b.name].fieldValue.push(null):(this.#c&&(y=this.#L(n,b,y)),n[b.name].fieldValue.push(y)),b.hasComponents&&this.#i.push(b.name),!_.hasBitsAvailable)break}}Object.keys(n).forEach(a=>{let i=n[a];n[a].fieldValue=ee.sanitizeValues(i.fieldValue,{legacyArrayMode:this.#T,isArray:i.isArray}),n[a].rawFieldValue=ee.sanitizeValues(i.rawFieldValue,{legacyArrayMode:this.#T,isArray:i.isArray}),s[a]=n[a]})}#W(e,s){let t=s?.fields??{};for(let n in e){let{rawFieldValue:a,fieldDefinitionNumber:i,isExpandedField:o,isSubField:u}=e[n],p=t[i];if(p=u?this.#C(p,n):p,!o){let d=this.#V(s,p,a);e[n].fieldValue=d}}}#V(e,s,t){let n=t;return s==null?n=t:r.NumericFieldTypesSet.has(s?.type??-1)?n=this.#K(e,s,t):s.type==="string"?n=t:s.type==="dateTime"&&this.#h?n=x.convertDateTimeToDate(t):this.#c?n=this.#L(e,s,t):n=t,n}#K(e,s,t){if(!this.#r||r.NumericFieldTypesSet.has(s?.type??-1)===!1||[G.MesgNum.DEVELOPER_DATA_ID,G.MesgNum.FIELD_DESCRIPTION].includes(e.globalMessageNumber)||t==null||Array.isArray(s?.scale??1)&&s.scale.length>1)return t;let n=Array.isArray(s?.scale??r.FIELD_DEFAULT_SCALE)?s?.scale[0]:s?.scale??r.FIELD_DEFAULT_SCALE,a=Array.isArray(s?.offset??r.FIELD_DEFAULT_OFFSET)?s?.offset[0]:s?.offset??r.FIELD_DEFAULT_OFFSET;try{return Array.isArray(t)?t.map(i=>i==null?i:i/n-a):t/n-a}catch{return t}}#k(e,s,t,n){(Array.isArray(n)?n:[n]).forEach(i=>{Object.values(s).forEach(o=>{(e.fields[o.fieldDefinitionNumber].components??[]).forEach((p,d)=>{let _=e.fields[p];_?.num==t.num&&_?.isAccumulated&&(i=(i/t.scale-t.offset+o.offset[d])*o.scale[d])})}),this.#l.createAccumulatedField(e.num,t.num,i)})}#L(e,s,t){if([G.MesgNum.DEVELOPER_DATA_ID,G.MesgNum.FIELD_DESCRIPTION].includes(e.globalMessageNumber)||r.NumericFieldTypesSet.has(s?.type??-1))return t;try{let n=G.types[s?.type??-1];return Array.isArray(t)?t.map(a=>a==null?a:n?.[a]??a):n?.[t]??t}catch{return t}}#C(e,s){let t=e.subFields.find(n=>n.name===s);return t??{}}static#y(e,{resetPosition:s=!1,decodeMode:t=$.NORMAL}){let n=e.position;if(t!==$.NORMAL){t===$.SKIP_HEADER&&e.seek(Se);let i=t===$.SKIP_HEADER?Se:0,o=e.length-i-$s;return{headerSize:i,dataSize:o}}let a={headerSize:e.readByte(),protocolVersion:e.readByte(),profileVersion:this.#N(e.readUInt16()),dataSize:e.readUInt32(),dataType:e.readString(4),headerCRC:null};return a.headerSize===14&&(a.headerCRC=e.readUInt16()),s&&e.seek(n),a}#d(e=""){throw Error(`FIT Runtime Error at byte ${this.#s.position} ${e}`.trimEnd())}static#N=e=>{let s=e>Aa?1e3:100;return{major:Math.floor(e/s),minor:e%s}}},Qt=Qs});var ca,js,Zt,qt=N(()=>{q();ue();ca=new TextEncoder,js=class{globalMessageNumber;localMesgNum;fieldDefinitions=[];developerFieldDefinitions=[];constructor(e,s,{fieldDescriptions:t=null}={}){try{if(s==null)throw new Error("mesg is missing or null");if(e==null)throw new Error("mesgNum is missing or null");let n=G.messages[e];if(n==null)throw new Error(`mesgNum: ${e} could not be found in the Profile`);if(this.globalMessageNumber=e,this.localMesgNum=0,Object.keys(s).forEach(a=>{if(s[a]==null)return;let i=Object.entries(n.fields).find(([,_])=>_.name===a);if(i==null)return;let o=r.FieldTypeToBaseType[i[1].baseType],u=r.BaseTypeDefinitions[o],p=i[1].components.length>1?r.FIELD_DEFAULT_SCALE:i[1].scale,d=i[1].components.length>1?r.FIELD_DEFAULT_OFFSET:i[1].offset;p=Array.isArray(p)?p[0]:p??r.FIELD_DEFAULT_SCALE,d=Array.isArray(d)?d[0]:d??r.FIELD_DEFAULT_OFFSET,this.fieldDefinitions.push({name:a,num:i[1].num,size:this.#t(s[a],u),baseType:o,baseTypeEndianFlag:u.baseTypeEndianFlag,type:i[1].type,scale:p,offset:d,components:i[1].components})}),Object.keys(s.developerFields??{})?.sort()?.forEach(a=>{let{developerDataIdMesg:i,fieldDescriptionMesg:o}=this.#e(t,a),u=r.BaseTypeDefinitions[o.fitBaseTypeId&r.BaseTypeMask];this.developerFieldDefinitions.push({key:a,baseType:o.fitBaseTypeId&r.BaseTypeMask,fieldDefinitionNumber:o.fieldDefinitionNumber,size:this.#t(s.developerFields[a],u),developerDataIndex:i.developerDataIndex,type:r.BaseTypeToFieldType[u.type],scale:1,offset:0,components:[]})}),this.fieldDefinitions.length===0)throw new Error("No valid fields were found in the message");if(this.fieldDefinitions.some(a=>a.size>r.MAX_FIELD_SIZE))throw new Error(`Some field sizes are greater than ${r.MAX_FIELD_SIZE}`,{cause:this.fieldDefinitions});this.developerFieldDefinitions.forEach(a=>{if(a.size>r.MAX_FIELD_SIZE)throw new Error(`Developer field size for key '${a.key}' is greater than ${r.MAX_FIELD_SIZE}`,{cause:a})})}catch(n){throw new Error("Could not construct MesgDefinition from Message",{cause:{cause:{message:n.message,cause:n.cause}}})}}write(e){let s=r.MESG_DEFINITION_MASK|this.localMesgNum&r.LOCAL_MESG_NUM_MASK;this.developerFieldDefinitions.length>0&&(s|=r.DEV_DATA_MASK),e.writeUInt8(s),e.writeUInt8(0),e.writeUInt8(r.ARCH_LITTLE_ENDIAN),e.writeUInt16(this.globalMessageNumber),e.writeUInt8(this.fieldDefinitions.length),this.fieldDefinitions.forEach(t=>{e.writeUInt8(t.num),e.writeUInt8(t.size),e.writeUInt8(t.baseType|t.baseTypeEndianFlag)}),this.developerFieldDefinitions.length>0&&(e.writeUInt8(this.developerFieldDefinitions.length),this.developerFieldDefinitions.forEach(t=>{e.writeUInt8(t.fieldDefinitionNumber),e.writeUInt8(t.size),e.writeUInt8(t.developerDataIndex)}))}equals(e){if(this.globalMessageNumber!==e.globalMessageNumber||this.fieldDefinitions.length!==e.fieldDefinitions.length||this.developerFieldDefinitions.length!==e.developerFieldDefinitions.length)return!1;for(let s=0;s<this.fieldDefinitions.length;s++){let t=this.fieldDefinitions[s];if(e.fieldDefinitions.find(n=>t.num===n.num&&t.size===n.size&&t.baseType===n.baseType)==null)return!1}for(let s=0;s<this.developerFieldDefinitions.length;s++){let t=this.developerFieldDefinitions[s];if(e.developerFieldDefinitions.find(n=>t.fieldDefinitionNumber===n.fieldDefinitionNumber&&t.size===n.size&&t.developerDataIndex===n.developerDataIndex)==null)return!1}return!0}#t(e,s){let t=Array.isArray(e)?e:[e];return s.type===r.BaseType.STRING?t.reduce((a,i)=>a+ca.encode(i).length+1,0):s.size*t.length}#e(e,s){try{if(e==null)throw new Error("no developer data field descriptions provided",{cause:{fieldDescriptions:e}});let{developerDataIdMesg:t,fieldDescriptionMesg:n}=e?.[s]??{};if(t==null||n==null)throw new Error(`could not find a developer field description for key ${s}`);let a=[];if(n.fitBaseTypeId==null&&a.push(`fieldDescriptionMesg fitBaseTypeId is ${n.fitBaseTypeId}`),n.fieldDefinitionNumber==null&&a.push(`fieldDescriptionMesg fieldDefinitionNumber is ${n.fieldDefinitionNumber}`),n.developerDataIndex==null&&a.push(`fieldDescriptionMesg developerDataIndex is ${n.developerDataIndex}`),t.developerDataIndex==null&&a.push(`developerDataIdMesg developerDataIndex is ${t.developerDataIndex}`),t.developerDataIndex!==n.developerDataIndex&&a.push(`developerDataIndex values do not match in fieldDescription ${t.developerDataIndex} != ${n.developerDataIndex}`),a.length>0)throw new Error("missing or invalid values in the fieldDescription,",{cause:{developerDataIdMesg:t,fieldDescriptionMesg:n,cause:a}});return{key:s,developerDataIdMesg:t,fieldDescriptionMesg:n}}catch(t){throw new Error(`invalid field description for key ${s}`,{cause:{key:s,cause:{message:t.message,cause:t.cause}}})}}},Zt=js});var en,ba,xt,Ia,Zs,sn,tn=N(()=>{q();en=1048576,ba=en*500,xt=en/2,Ia=ba,Zs=class{#t=null;#e=null;#s=0;#l=0;#n=null;#a=new TextEncoder;constructor({initialByteLength:e=xt,maxByteLength:s=Ia,resizeByBytes:t=xt}={}){this.#t=new ArrayBuffer(e,{maxByteLength:s}),this.#e=new DataView(this.#t),this.#l=t,this.#n={[r.BaseType.ENUM]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255},[r.BaseType.UINT8]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255},[r.BaseType.UINT16]:{setValue:this.#e.setUint16.bind(this.#e),size:2,mask:65535},[r.BaseType.UINT32]:{setValue:this.#e.setUint32.bind(this.#e),size:4,mask:4294967295},[r.BaseType.UINT64]:{setValue:this.#e.setBigUint64.bind(this.#e),size:8,mask:0xFFFFFFFFFFFFFFFFn},[r.BaseType.SINT8]:{setValue:this.#e.setInt8.bind(this.#e),size:1,mask:255},[r.BaseType.SINT16]:{setValue:this.#e.setInt16.bind(this.#e),size:2,mask:65535},[r.BaseType.SINT32]:{setValue:this.#e.setInt32.bind(this.#e),size:4,mask:4294967295},[r.BaseType.SINT64]:{setValue:this.#e.setBigInt64.bind(this.#e),size:8,mask:0xFFFFFFFFFFFFFFFFn},[r.BaseType.FLOAT32]:{setValue:this.#e.setFloat32.bind(this.#e),size:4},[r.BaseType.FLOAT64]:{setValue:this.#e.setFloat64.bind(this.#e),size:8},[r.BaseType.UINT8Z]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255},[r.BaseType.UINT16Z]:{setValue:this.#e.setUint16.bind(this.#e),size:2,mask:65535},[r.BaseType.UINT32Z]:{setValue:this.#e.setUint32.bind(this.#e),size:4,mask:4294967295},[r.BaseType.UINT64Z]:{setValue:this.#e.setBigUint64.bind(this.#e),size:8,mask:0xFFFFFFFFFFFFFFFFn},[r.BaseType.BYTE]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255}}}get length(){return this.#s}get uint8Array(){return new Uint8Array(this.#t.slice(0,this.#s))}writeUInt8(e){return this.write(e,r.BaseType.UINT8)}writeUInt16(e){return this.write(e,r.BaseType.UINT16)}writeUInt32(e){return this.write(e,r.BaseType.UINT32)}writeUInt64(e){return this.write(e,r.BaseType.UINT64)}writeSInt8(e){return this.write(e,r.BaseType.SINT8)}writeSInt16(e){return this.write(e,r.BaseType.SINT16)}writeSInt32(e){return this.write(e,r.BaseType.SINT32)}writeSInt64(e){return this.write(e,r.BaseType.SINT64)}writeFloat32(e){return this.write(e,r.BaseType.FLOAT32)}writeFloat64(e){return this.write(e,r.BaseType.FLOAT64)}writeUInt8z(e){return this.write(e,r.BaseType.UINT8Z)}writeUInt16z(e){return this.write(e,r.BaseType.UINT16Z)}writeUInt32z(e){return this.write(e,r.BaseType.UINT32Z)}writeUInt64z(e){return this.write(e,r.BaseType.UINT64Z)}writeByte(e){return this.write(e,r.BaseType.BYTE)}writeString(e){e=Array.isArray(e)?e.join(r.NULL_TERMINATOR):e;let s=this.#a.encode(e);return this.#f(s.byteLength),new Uint8Array(this.#t,this.#s,s.byteLength).set(s),this.#s+=s.byteLength,this.writeUInt8(r.NULL_TERMINATOR),this}write(e,s){if(s===r.BaseType.STRING)return this.writeString(e);this.#o(s,e)}set(e,s=0){return this.#f(e.byteLength+s),new Uint8Array(this.#t).set(e,s),this.#s=Math.max(this.#s,e.byteLength+s),this}[Symbol.iterator](){let e=0,s=this.#s,t=this.#e;return{next(){return e<s?{value:t.getUint8(e++),done:!1}:{done:!0}}}}#o(e,s){(Array.isArray(s)?s:[s]).forEach(n=>this.#i(e,n))}#i(e,s){let t=this.#n[e];this.#f(t.size);let n=t.mask==null?s:s&t.mask;return t.setValue(this.#s,n,!0),this.#s+=t.size,this}#f(e=1){if(this.#t.byteLength-this.#s>=e)return;let s=this.#t.byteLength+Math.max(this.#l,e);if(s>this.#t.maxByteLength)throw new Error("Can not resize OutputStream. Set a larger initial size.");this.#t.resize(s)}},sn=Zs});var Oe,ya,qs,Fe,nn=N(()=>{Ee();q();qt();tn();ue();re();Oe=14,ya=12,qs=class{constructor({fieldDescriptions:e=null}={}){this.#r={};for(let[s,{developerDataIdMesg:t,fieldDescriptionMesg:n}]of Object.entries(e??{}))this.addDeveloperField(s,t,n);this.#t()}close(){return this.#e(),this.#s(),this.#u.uint8Array}writeMesg(e){return this.onMesg(e.mesgNum,e)}onMesg(e,s){try{let t=this.#i(e,s);this.#p(t),this.#u.writeUInt8(t.localMesgNum),t.fieldDefinitions.forEach(n=>{let a=this.#l(s[n.name],n),i=r.BaseTypeDefinitions[n.baseType];this.#u.write(a,i.type)}),t.developerFieldDefinitions.forEach(n=>{let a=this.#l(s.developerFields[n.key],n),i=r.BaseTypeDefinitions[n.baseType];this.#u.write(a,i.type)})}catch(t){throw new Error("Could not write Message",{cause:{mesg:s,cause:{message:t.message,cause:t.cause}}})}return this}addDeveloperField(e,s,t){if(s.developerDataIndex==null||t.developerDataIndex==null)throw new Error("addDeveloperField() - one or more developerDataIndex values are null.",{cause:{key:e,developerDataIdMesg:s,fieldDescriptionMesg:t}});if(s.developerDataIndex!==t.developerDataIndex)throw new Error("addDeveloperField() - developerDataIndex values do not match.",{cause:{key:e,developerDataIdMesg:s,fieldDescriptionMesg:t}});return this.#r[e]={developerDataIdMesg:s,fieldDescriptionMesg:t},this}#t(){Array(Oe).fill(0).forEach(e=>{this.#u.writeUInt8(e)})}#e(){let e=new ArrayBuffer(Oe),s=new DataView(e);s.setUint8(0,Oe),s.setUint8(1,2),s.setUint16(2,G.version.major*1e3+G.version.minor,!0),s.setUint32(4,this.#u.length-Oe,!0),s.setUint8(8,46),s.setUint8(9,70),s.setUint8(10,73),s.setUint8(11,84);let t=Q.calculateCRC(new Uint8Array(e),0,ya);s.setUint16(12,t,!0),this.#u.set(new Uint8Array(e))}#s(){let e=Q.calculateCRC(this.#u.uint8Array,0,this.#u.length);this.#u.writeUInt16(e)}#l(e,s){return(Array.isArray(e)?e:[e]).map(n=>this.#n(n,s))}#n(e,s){try{if(r.isNotNumberStringDateOrBoolean(e))return r.BaseTypeDefinitions[s.baseType].invalid;if(r.NumericFieldTypes.includes(s.type)){if(!r.isNumeric(e))throw new Error;r.isString(e)&&(e=r.BigIntFieldTypes.includes(s.type)?BigInt(e):Number(e));let a=s.scale!=r.FIELD_DEFAULT_SCALE||s.offset!=r.FIELD_DEFAULT_OFFSET;if(!a&&!this.#a(e,s.type))throw new Error;if(a){let i=this.#o(e,s.scale,s.offset),o=r.FloatingPointFieldTypes.includes(s.type)||r.isBigInt(i)?i:Math.round(i);return r.BigIntFieldTypes.includes(s.type)?BigInt(o):Number(o)}return e}if(s.type==="dateTime"){if(r.isDate(e))return x.convertDateToDateTime(e);if(!r.isNumeric(e))throw new Error;return e}if(s.type==="string"){if(!r.isString(e))throw new Error;return e}if(r.isNumeric(e))return e;let t=G.types[s.type],[n]=Object.entries(t).find(([,a])=>a===e);return n}catch{throw new Error(`Could not convert "${e}" to "${s.type}"`,{cause:{value:e,fieldDefinition:s}})}}#a=(e,s)=>{let t=r.FieldTypeToJsType[s];return typeof e===t};#o(e,s,t){return r.isBigInt(e)?(e+BigInt(t))*BigInt(s):(e+t)*s}#i=(e,s)=>{let t=new Zt(e,s,{fieldDescriptions:this.#r});return t.localMesgNum=this.#f(t),t};#f=e=>{let s=this.#m.findIndex(t=>t?.equals(e)??!1);return(s!==-1?s:this.#A++)&r.LOCAL_MESG_NUM_MASK};#p=e=>{let s=e.localMesgNum;return(this.#m[s]==null||!this.#m[s].equals(e))&&this.#_(e),s};#_(e){return e.write(this.#u),this.#m[e.localMesgNum]=e,this}#m=Array(16).fill(null);#A=0;#u=new sn;#r=null},Fe=qs});var an={};At(an,{CrcCalculator:()=>Q,Decoder:()=>Qt,Encoder:()=>Fe,Profile:()=>G,Stream:()=>Yt,Utils:()=>x});var De=N(()=>{Ee();jt();nn();ue();zs();re()});var za={};At(za,{FIT_SEMICIRCLE_INVALID_SINT32:()=>ot,TRACKSWAP_HEALTH_PARSER_VERSION:()=>me,TrackSwap:()=>ce,TrackSwapError:()=>k,buildHealthDocumentFromMessages:()=>Ps,default:()=>ce,detectFITKinds:()=>Gs,normalizeFitSemicircleToDegrees:()=>Y,semicirclesToDegrees:()=>lt});module.exports=Hn(za);var k=class extends Error{constructor(e,s,t={}){super(s),this.name="TrackSwapError",this.code=e,this.format=t.format,this.cause=t.cause}};function Ie(l,e,s,t){if(l instanceof k)return l;let n=l instanceof Error?l.message:String(l);return new k(e,`${s}: ${n}`,{format:t,cause:l})}var j=class{constructor(){this.version="1.0.0";this.priority=100}async initialize(e){e.metadata.set(`plugin:${this.name}:initialized`,!0)}async destroy(e){e.metadata.delete(`plugin:${this.name}:initialized`)}async validate(e){return!0}};var me="trackswap-health-ir-v1",Us=new Set(["timestampCorrelationMesgs","monitoringInfoMesgs","monitoringMesgs","monitoringHrDataMesgs","stressLevelMesgs","respirationRateMesgs","spo2DataMesgs","hrvStatusSummaryMesgs","hrvValueMesgs","sleepLevelMesgs","sleepAssessmentMesgs","napEventMesgs","hsaStepDataMesgs","hsaSpo2DataMesgs","hsaStressDataMesgs","hsaRespirationDataMesgs","hsaHeartRateDataMesgs","hsaBodyBatteryDataMesgs","hsaWristTemperatureDataMesgs","skinTempOvernightMesgs","sleepDisruptionSeverityPeriodMesgs","sleepDisruptionOvernightSeverityMesgs"]),wn=new Set([...Us].filter(l=>l!=="timestampCorrelationMesgs")),vn=new Set(["fileIdMesgs","fileCreatorMesgs","deviceInfoMesgs","deviceSettingsMesgs","softwareMesgs","ohrSettingsMesgs","eventMesgs","activityMesgs","sessionMesgs","lapMesgs","recordMesgs","lengthMesgs","courseMesgs","coursePointMesgs","workoutMesgs","workoutStepMesgs","trainingFileMesgs"]),Un=[{field:"steps",metric:"steps",unit:"count",rolloverModulus:2**32,rolloverBits:32},{field:"distance",metric:"distance_m",unit:"m",rolloverModulus:2**32/100,rolloverBits:32},{field:"activeTime",metric:"active_time_s",unit:"s",rolloverModulus:2**32/1e3,rolloverBits:32},{field:"activeCalories",metric:"active_energy_kcal",unit:"kcal",rolloverModulus:2**16,rolloverBits:16},{field:"calories",metric:"total_energy_kcal",unit:"kcal",rolloverModulus:2**16,rolloverBits:16}],Bn=[{field:"ascent",metric:"ascent_m",unit:"m",intervalStrategy:"previous_timestamp"},{field:"descent",metric:"descent_m",unit:"m",intervalStrategy:"previous_timestamp"},{field:"moderateActivityMinutes",metric:"moderate_activity_time_s",unit:"s",multiplier:60,intervalStrategy:"value_duration"},{field:"vigorousActivityMinutes",metric:"vigorous_activity_time_s",unit:"s",multiplier:60,intervalStrategy:"value_duration"}],Bs=631065600,ye=2**16,bt=18*60*60,Mn=new Set([65519,65518]),Gn=5;function B(l){return l&&typeof l=="object"?l:{}}function H(l){if(typeof l=="number")return Number.isFinite(l)?l:void 0;if(typeof l!="string"||l.trim()==="")return;let e=Number(l);return Number.isFinite(e)?e:void 0}function M(l){if(l instanceof Date&&Number.isFinite(l.valueOf()))return l;if(typeof l!="string"&&typeof l!="number"||typeof l=="string"&&l.trim()==="")return;let e=new Date(l);return Number.isFinite(e.valueOf())?e:void 0}function ws(l){return yt(l)?.toISOString().replace(/Z$/,"")}function yt(l){if(l instanceof Date&&Number.isFinite(l.valueOf()))return l;if(typeof l=="string"&&!/^\s*[-+]?\d+(?:\.\d+)?\s*$/.test(l))return M(l);let e=H(l);if(!(e===void 0||e<0))return new Date((e+Bs)*1e3)}function w(l,e,s){return{messageName:l,messageIndex:e,fieldName:s}}function vs(l,e){return Object.fromEntries(e.map(s=>[s,l[s]]).filter(([,s])=>typeof s=="number"?Number.isFinite(s):["string","boolean"].includes(typeof s)))}function ht(l){return Object.fromEntries(Object.entries(l).filter(([,e])=>Array.isArray(e)&&e.length>0).map(([e,s])=>[e,s?.length??0]))}function Gs(l){let e=[];return((l.activityMesgs?.length??0)>0||(l.sessionMesgs?.length??0)>0)&&e.push("activity"),[...wn].some(s=>(l[s]?.length??0)>0)&&e.push("health"),((l.workoutMesgs?.length??0)>0||(l.workoutStepMesgs?.length??0)>0)&&e.push("workout"),(l.courseMesgs?.length??0)>0&&e.push("course"),e.length===0&&((l.deviceInfoMesgs?.length??0)>0||(l.fileIdMesgs?.length??0)>0)&&e.push("device"),e.length>0?e:["unknown"]}function Pn(l){let e=String(l??"").trim().toLowerCase().replace(/[_\s-]+/g,"");return e.includes("awake")?"awake":e.includes("deep")?"deep":e.includes("light")?"light":e.includes("rem")?"rem":e.includes("unmeasurable")?"unmeasurable":e.includes("sleep")?"sleeping":`vendor:${e||"unknown"}`}function Wn(l,e=0){return new Date(l.valueOf()+e*1e3).toISOString().slice(0,10)}function It(l,e,s=0){return Wn(new Date(Math.max(l.valueOf(),e.valueOf()-1)),s)}function Ms(l){let e=H(l);return e===void 0?void 0:e*60}function Vn(l,e){let s=[],t=(i,o,u,p,d)=>{let _=M(u.timestamp),R=yt(u.localTimestamp);if(!_||!R)return;let b=Math.round((R.valueOf()-_.valueOf())/1e3),y=w(i,o,"localTimestamp");if(Math.abs(b)>bt){e(y);return}s.push({at:_,offsetSeconds:b,priority:p,strategy:d,source:y})};(l.timestampCorrelationMesgs??[]).forEach((i,o)=>{t("timestampCorrelationMesgs",o,B(i),3,"timestamp_correlation")});for(let i of["monitoringInfoMesgs","monitoringMesgs","skinTempOvernightMesgs"])(l[i]??[]).forEach((o,u)=>{t(i,u,B(o),1,"inferred")});(l.napEventMesgs??[]).forEach((i,o)=>{let u=B(i);for(let[p,d]of[["startTime","startTimezoneOffset"],["endTime","endTimezoneOffset"]]){let _=M(u[p]),R=Ms(u[d]);if(!_||R===void 0)continue;let b=w("napEventMesgs",o,d);if(Math.abs(R)>bt){e(b);continue}s.push({at:_,offsetSeconds:R,priority:2,strategy:"explicit_offset",source:b})}}),s.sort((i,o)=>i.at.valueOf()-o.at.valueOf()||o.priority-i.priority);let n=s.filter((i,o)=>o===0||i.at.valueOf()!==s[o-1].at.valueOf()).map(({at:i,offsetSeconds:o})=>({at:i,offsetSeconds:o})),a=s.find(({strategy:i})=>i==="timestamp_correlation")?.strategy??s.find(({strategy:i})=>i==="explicit_offset")?.strategy??s.find(({strategy:i})=>i==="inferred")?.strategy??"unknown";return{offsets:n,strategy:a}}function Kn(l,e){let s=H(l);if(!e||!Number.isInteger(s)||s<0||s>=ye)return;let t=Math.floor(e.valueOf()/1e3)-Bs,n=Math.floor(t/ye)*ye+s;return n<t&&(n+=ye),new Date((n+Bs)*1e3)}function kn(l){let e,s,t,n,a,i;return(l.monitoringMesgs??[]).map(o=>{let u=B(o),d=M(u.timestamp)??Kn(u.timestamp16,e);d&&(e=d),d&&(!s||d>s)&&(t=s,s=d);let _=t;u.activityType!==void 0&&(n=u.activityType),u.deviceIndex!==void 0&&(i=u.deviceIndex);let R=u.intensity??u.activityLevel;return R!==void 0&&(a=R),{message:u,timestamp:d,intervalStartTime:_,deviceIndex:i,activityType:n,intensity:a}})}function Z(l,e){let s;for(let t of l){if(t.at>e)break;s=t.offsetSeconds}return s??l[0]?.offsetSeconds}function he(l,e){if(e!==void 0)return new Date(l.valueOf()+e*1e3).toISOString().replace(/Z$/,"")}function Nn(l,e,s,t){return e>=l?{value:e-l}:l>=s*.75&&l<s&&e>=0&&e<=s*.25?{value:s-l+e,rolloverBits:t}:null}function Rt(l){return l>=1&&l<=100?"valid":l===-1?"off_wrist":l===-2?"motion":l===-3?"not_enough_data":l===-4?"recovering":l===-5?"unidentified":l===-16?"gap":l===0||l>100?"invalid":"unknown"}function Xn(l){return l>=0&&l<=100?"valid":Rt(l)}function Yn(l){return l===255?"invalid":l===254?"motion":l===253?"off_wrist":l===252?"not_enough_data":l===2.4?"gap":l>=1&&l<=100?"valid":"invalid"}function ne(l,e,s){return new Date(l.valueOf()+e*s*1e3)}function zn(l){let e=new Map,s={};l.warnings.forEach(t=>{s[t.code]=(s[t.code]??0)+1;let n=e.get(t.code)??[];n.length<Gn&&(n.push(t),e.set(t.code,n))}),l.warningCounts=s,l.warnings=[...e.values()].flat()}function Jn(l){return l===-1?"off_wrist":l===-2?"motion":l===-3?"invalid":l>0&&l<=100?"valid":"invalid"}function Ps(l,e={},s={}){let t=ht(l),n=Object.fromEntries(Object.entries(t).filter(([A])=>Us.has(A))),a=Object.fromEntries(Object.entries(t).filter(([A])=>!Us.has(A)&&!vn.has(A))),i={sdkProfileVersion:s.sdkProfileVersion,parserVersion:me,messageCounts:t,recognizedMessageCounts:n,unknownMessageCounts:a,invalidValueCounts:{},warningCounts:{},warnings:[]};e.includeUnknownMessages&&(i.unknownMessages=Object.fromEntries(Object.keys(a).map(A=>[A,l[A]??[]])));let o=[],u=[],p=[],d=[],_=[],R=Vn(l,A=>{i.warnings.push({code:"GARMIN_HEALTH_INVALID_TIMEZONE_OFFSET",message:"Ignored an implausible FIT timezone offset",source:A})}),{offsets:b}=R,y=A=>{let h=A.offsetSeconds??Z(b,A.timestamp);if(A.offsetSeconds=h,A.localTimestamp??=he(A.timestamp,h),o.push(A),_.push(A.timestamp),A.status!=="valid"){let T=`${A.metric}:${A.status}`;i.invalidValueCounts[T]=(i.invalidValueCounts[T]??0)+1}},P=new Map;kn(l).forEach(({message:A,timestamp:h,intervalStartTime:T,deviceIndex:I,activityType:c,intensity:C},E)=>{if(!h){i.warnings.push({code:"GARMIN_HEALTH_NO_TIMESTAMP",message:"Monitoring message has no valid timestamp",source:w("monitoringMesgs",E)});return}_.push(h);let O=H(A.heartRate);if(O!==void 0){let g=O>0?"valid":"gap";y({metric:"heart_rate_bpm",timestamp:h,localTimestamp:ws(A.localTimestamp),value:g==="valid"?O:void 0,unit:"bpm",status:g,aggregation:"instant",source:w("monitoringMesgs",E,"heartRate"),attributes:g==="valid"?void 0:{rawValue:O}})}let S=H(A.temperature);S!==void 0&&y({metric:"temperature_c",timestamp:h,localTimestamp:ws(A.localTimestamp),value:S,unit:"degC",status:"valid",aggregation:"mean",source:w("monitoringMesgs",E,"temperature")});for(let g of Un){let U=H(A[g.field]);if(U===void 0)continue;let V=[I??"device",c??"activity",g.field].join(":"),F=P.get(V);if(F&&h>F.timestamp){let D=Nn(F.value,U,g.rolloverModulus,g.rolloverBits);if(D){D.rolloverBits&&i.warnings.push({code:"GARMIN_HEALTH_ACCUMULATOR_ROLLOVER",message:`${g.field} accumulator rolled over at ${D.rolloverBits} bits`,source:w("monitoringMesgs",E,g.field)});let ie=Z(b,F.timestamp);u.push({metric:g.metric,startTime:F.timestamp,endTime:h,localStartTime:he(F.timestamp,ie),offsetSeconds:ie,value:D.value,unit:g.unit,status:"valid",activityType:c===void 0?void 0:String(c),intensity:C===void 0?void 0:String(C),source:w("monitoringMesgs",E,g.field),attributes:e.health?.retainCumulativeValues===!1?void 0:{rawCumulativeValue:U}})}else i.warnings.push({code:"GARMIN_HEALTH_ACCUMULATOR_RESET",message:`${g.field} accumulator decreased; a new accumulation window was started`,source:w("monitoringMesgs",E,g.field)})}P.set(V,{timestamp:h,value:U})}for(let g of Bn){let U=H(A[g.field]);if(U===void 0||U<0)continue;let V=U*(g.multiplier??1),F=g.intervalStrategy==="value_duration"?new Date(h.valueOf()-V*1e3):T;if(!F||F>=h)continue;let D=Z(b,F);_.push(F),u.push({metric:g.metric,startTime:F,endTime:h,localStartTime:he(F,D),offsetSeconds:D,value:V,unit:g.unit,status:"valid",activityType:c===void 0?void 0:String(c),intensity:C===void 0?void 0:String(C),source:w("monitoringMesgs",E,g.field)})}}),(l.monitoringHrDataMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp);if(!I)return;[{field:"currentDayRestingHeartRate",metric:"resting_heart_rate_bpm"},{field:"restingHeartRate",metric:"resting_heart_rate_7_day_bpm"}].forEach(({field:C,metric:E})=>{let O=H(T[C]);if(O===void 0)return;let S=O>0?"valid":"invalid";y({metric:E,timestamp:I,value:S==="valid"?O:void 0,unit:"bpm",status:S,aggregation:"latest",source:w("monitoringHrDataMesgs",h,C),attributes:S==="valid"?void 0:{rawValue:O}})})}),(l.stressLevelMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.stressLevelTime),c=H(T.stressLevelValue);if(!I||c===void 0)return;let C=Rt(c);y({metric:"stress_level",timestamp:I,value:C==="valid"?c:void 0,unit:"score",status:C,aggregation:"instant",source:w("stressLevelMesgs",h,"stressLevelValue"),attributes:C==="valid"?void 0:{rawValue:c}})}),(l.respirationRateMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp),c=H(T.respirationRate);if(!I||c===void 0)return;let C=Jn(c);y({metric:"respiration_rate_bpm",timestamp:I,value:C==="valid"?c:void 0,unit:"breaths/min",status:C,aggregation:"instant",source:w("respirationRateMesgs",h,"respirationRate"),attributes:C==="valid"?void 0:{rawValue:c}})}),(l.spo2DataMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp),c=H(T.readingSpo2);if(!I||c===void 0)return;let C=H(T.readingConfidence),E=c<=0||c>100?"invalid":C!==void 0&&C<=0?"low_confidence":"valid";y({metric:"spo2_percent",timestamp:I,value:E==="invalid"?void 0:c,unit:"percent",status:E,quality:C,aggregation:"instant",source:w("spo2DataMesgs",h,"readingSpo2"),attributes:{measurementMode:T.mode===void 0?null:String(T.mode),...E==="invalid"?{rawValue:c}:{}}})}),(l.hrvValueMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp),c=H(T.value);if(!I||c===void 0)return;let C=c>0?"valid":"invalid";y({metric:"hrv_rmssd_ms",timestamp:I,value:C==="valid"?c:void 0,unit:"ms",status:C,aggregation:"mean",source:w("hrvValueMesgs",h,"value"),attributes:{windowSeconds:300,...C==="valid"?{}:{rawValue:c}}})}),(l.hrvStatusSummaryMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp);p.push({summaryType:"hrv_status",externalId:`fit:hrv-status:${I?.toISOString()??h}`,startTime:I,metrics:vs(T,["weeklyAverage","lastNightAverage","lastNight5MinHigh","baselineLowUpper","baselineBalancedLower","baselineBalancedUpper","status"]),source:w("hrvStatusSummaryMesgs",h)}),I&&_.push(I)}),(l.monitoringInfoMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp);p.push({summaryType:"device",externalId:`fit:monitoring-info:${I?.toISOString()??h}`,startTime:I,offsetSeconds:I?Z(b,I):void 0,metrics:vs(T,["restingMetabolicRate","activityType","cyclesToDistance","cyclesToCalories"]),source:w("monitoringInfoMesgs",h)}),I&&_.push(I)}),(l.skinTempOvernightMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp);if(!I)return;[{field:"averageDeviation",metric:"skin_temperature_deviation_c"},{field:"average7DayDeviation",metric:"skin_temperature_7_day_deviation_c"},{field:"nightlyValue",metric:"skin_temperature_nightly_c"}].forEach(({field:C,metric:E})=>{let O=H(T[C]);O!==void 0&&y({metric:E,timestamp:I,localTimestamp:ws(T.localTimestamp),value:O,unit:"degC",status:"valid",aggregation:"mean",source:w("skinTempOvernightMesgs",h,C)})})});let v=(l.sleepLevelMesgs??[]).map((A,h)=>({message:B(A),messageIndex:h,timestamp:M(B(A).timestamp)})).filter(A=>A.timestamp!==void 0).sort((A,h)=>A.timestamp.valueOf()-h.timestamp.valueOf());if(v.length>=2){let A=B(l.sleepAssessmentMesgs?.[0]),h=[];for(let C=0;C<v.length-1;C+=1){let E=v[C],O=v[C+1];if(O.timestamp<=E.timestamp)continue;let S={segmentType:Pn(E.message.sleepLevel),startTime:E.timestamp,endTime:O.timestamp,status:"valid",source:w("sleepLevelMesgs",E.messageIndex,"sleepLevel")},g=h.at(-1);g&&g.segmentType===S.segmentType&&g.endTime.valueOf()===S.startTime.valueOf()?g.endTime=S.endTime:h.push(S)}let T=v[0].timestamp,I=v.at(-1).timestamp;_.push(T,I);let c=Z(b,I);d.push({sessionType:"sleep",externalId:`fit:sleep:${T.toISOString()}:${I.toISOString()}`,startTime:T,endTime:I,startOffsetSeconds:Z(b,T),endOffsetSeconds:c,calendarDate:It(T,I,c),segments:h,metrics:vs(A,["combinedAwakeScore","awakeTimeScore","awakeningsCountScore","deepSleepScore","sleepDurationScore","lightSleepScore","overallSleepScore","sleepQualityScore","sleepRecoveryScore","remSleepScore","sleepRestlessnessScore","awakeningsCount","interruptionsScore","averageStressDuringSleep"]),source:w("sleepLevelMesgs",v[0].messageIndex),attributes:{calendarDateStrategy:c===void 0?"sleep_end_utc_fallback_date":"sleep_end_local_date"}})}else v.length>0&&i.warnings.push({code:"GARMIN_HEALTH_SLEEP_BOUNDARY_INCOMPLETE",message:"Sleep level data does not contain enough boundaries",source:w("sleepLevelMesgs",v[0].messageIndex)});for(let A of["sleepDisruptionSeverityPeriodMesgs","sleepDisruptionOvernightSeverityMesgs"])(l[A]??[]).forEach((h,T)=>{let I=B(h),c=M(I.timestamp);!c||I.severity===void 0||(_.push(c),p.push({summaryType:"sleep",externalId:`fit:${A}:${I.messageIndex??T}:${c.toISOString()}`,startTime:c,offsetSeconds:Z(b,c),metrics:{severity:String(I.severity)},source:w(A,T,"severity")}))});return(l.napEventMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.startTime),c=M(T.endTime),C=T.isDeleted===!0;if(!I||!c||c<I||!C&&c.valueOf()===I.valueOf())return;let E=Ms(T.startTimezoneOffset),O=Ms(T.endTimezoneOffset);_.push(I,c),d.push({sessionType:"nap",externalId:`fit:nap:${T.messageIndex??h}:${I.toISOString()}`,startTime:I,endTime:c,startOffsetSeconds:E,endOffsetSeconds:O,calendarDate:It(I,c,O??E),deleted:C,segments:[],metrics:{},source:w("napEventMesgs",h),attributes:{source:T.source===void 0?null:String(T.source),feedback:T.feedback===void 0?null:String(T.feedback),updateTimestamp:M(T.updateTimestamp)?.toISOString()??null}})}),(l.hsaStepDataMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp),c=H(T.processingInterval),C=Array.isArray(T.steps)?T.steps:[];!I||!c||c<=0||Mn.has(c)||C.forEach((E,O)=>{let S=H(E);if(S===void 0||S<0)return;let g=ne(I,c,O),U=new Date(g.valueOf()+c*1e3),V=Z(b,g);_.push(g,U),u.push({metric:"steps",startTime:g,endTime:U,localStartTime:he(g,V),offsetSeconds:V,value:S,unit:"count",status:"valid",source:w("hsaStepDataMesgs",h,"steps"),attributes:{sequenceIndex:O,intervalSeconds:c}})})}),(l.hsaSpo2DataMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp),c=H(T.processingInterval),C=Array.isArray(T.readingSpo2)?T.readingSpo2:[],E=Array.isArray(T.confidence)?T.confidence:[];!I||!c||c<=0||C.forEach((O,S)=>{let g=H(O);if(g===void 0)return;let U=H(E[S]),V=g<70||g>100||g===240?"invalid":U!==void 0&&U<=0?"low_confidence":"valid";y({metric:"spo2_percent",timestamp:ne(I,c,S),value:V==="invalid"?void 0:g,unit:"percent",status:V,quality:U,aggregation:"instant",source:w("hsaSpo2DataMesgs",h,"readingSpo2"),attributes:{sequenceIndex:S,intervalSeconds:c,...V==="invalid"?{rawValue:g}:{}}})})}),(l.hsaStressDataMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp),c=H(T.processingInterval),C=Array.isArray(T.stressLevel)?T.stressLevel:[];!I||!c||c<=0||C.forEach((E,O)=>{let S=H(E);if(S===void 0)return;let g=Xn(S);y({metric:"stress_level",timestamp:ne(I,c,O),value:g==="valid"?S:void 0,unit:"score",status:g,aggregation:"instant",source:w("hsaStressDataMesgs",h,"stressLevel"),attributes:{sequenceIndex:O,intervalSeconds:c,...g==="valid"?{}:{rawValue:S}}})})}),(l.hsaRespirationDataMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp),c=H(T.processingInterval),C=Array.isArray(T.respirationRate)?T.respirationRate:[];!I||!c||c<=0||C.forEach((E,O)=>{let S=H(E);if(S===void 0)return;let g=Yn(S);y({metric:"respiration_rate_bpm",timestamp:ne(I,c,O),value:g==="valid"?S:void 0,unit:"breaths/min",status:g,aggregation:"instant",source:w("hsaRespirationDataMesgs",h,"respirationRate"),attributes:{sequenceIndex:O,intervalSeconds:c,...g==="valid"?{}:{rawValue:S}}})})}),(l.hsaHeartRateDataMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp),c=H(T.processingInterval),C=Array.isArray(T.heartRate)?T.heartRate:[],E=H(T.status);!I||!c||c<=0||C.forEach((O,S)=>{let g=H(O);if(g===void 0)return;let U=g===0?"gap":E===1?"valid":E===0?"low_confidence":"unknown";y({metric:"heart_rate_bpm",timestamp:ne(I,c,S),value:U==="gap"?void 0:g,unit:"bpm",status:U,aggregation:"instant",source:w("hsaHeartRateDataMesgs",h,"heartRate"),attributes:{sequenceIndex:S,intervalSeconds:c,measurementStatus:E??null,...U==="gap"?{rawValue:g}:{}}})})}),(l.hsaWristTemperatureDataMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp),c=H(T.processingInterval),C=Array.isArray(T.value)?T.value:[];!I||!c||c<=0||C.forEach((E,O)=>{let S=H(E);S!==void 0&&y({metric:"wrist_temperature_c",timestamp:ne(I,c,O),value:S,unit:"degC",status:"valid",aggregation:"instant",source:w("hsaWristTemperatureDataMesgs",h,"value"),attributes:{sequenceIndex:O,intervalSeconds:c}})})}),(l.hsaBodyBatteryDataMesgs??[]).forEach((A,h)=>{let T=B(A),I=M(T.timestamp),c=H(T.processingInterval)??0;if(!I||c<=0)return;[{field:"level",metric:"body_battery_level",unit:"score"},{field:"charged",metric:"body_battery_charged",unit:"score"},{field:"uncharged",metric:"body_battery_drained",unit:"score"}].forEach(({field:E,metric:O,unit:S})=>{(Array.isArray(T[E])?T[E]:[]).forEach((U,V)=>{let F=H(U);if(F===void 0)return;let D=E==="level"&&F===-16?"gap":E==="level"&&(F<0||F>100)?"invalid":"valid";y({metric:O,timestamp:ne(I,c,V),value:D==="valid"?F:void 0,unit:S,status:D,aggregation:"instant",source:w("hsaBodyBatteryDataMesgs",h,E),attributes:{sequenceIndex:V,intervalSeconds:c,...D==="valid"?{}:{rawValue:F}}})})})}),o.sort((A,h)=>A.timestamp.valueOf()-h.timestamp.valueOf()),u.sort((A,h)=>A.startTime.valueOf()-h.startTime.valueOf()),d.sort((A,h)=>A.startTime.valueOf()-h.startTime.valueOf()),_.sort((A,h)=>A.valueOf()-h.valueOf()),zn(i),{schemaVersion:"1",observedStart:_[0],observedEnd:_.at(-1),timezone:{strategy:R.strategy,offsets:b},points:o,intervals:e.health?.reconstructIntervals===!1?[]:u,summaries:p,sessions:d,diagnostics:i}}var Re=class extends j{constructor(){super(...arguments);this.name="HealthStructurePlugin";this.priority=20}structureData(s,t){let n=t.userData?.fitDocumentOptions??{},a=Gs(s);return{healthDocument:a.includes("health")?Ps(s,n,{sdkProfileVersion:t.metadata.get("fit-sdk-profile-version")}):void 0,fitDocumentMetadata:{detectedKinds:a,messageCounts:ht(s)}}}};var ge=(m=>(m[m.GENERIC=0]="GENERIC",m[m.RUNNING=1]="RUNNING",m[m.CYCLING=2]="CYCLING",m[m.TRANSITION=3]="TRANSITION",m[m.FITNESS_EQUIPMENT=4]="FITNESS_EQUIPMENT",m[m.SWIMMING=5]="SWIMMING",m[m.BASKETBALL=6]="BASKETBALL",m[m.SOCCER=7]="SOCCER",m[m.TENNIS=8]="TENNIS",m[m.AMERICAN_FOOTBALL=9]="AMERICAN_FOOTBALL",m[m.TRAINING=10]="TRAINING",m[m.WALKING=11]="WALKING",m[m.CROSS_COUNTRY_SKIING=12]="CROSS_COUNTRY_SKIING",m[m.ALPINE_SKIING=13]="ALPINE_SKIING",m[m.SNOWBOARDING=14]="SNOWBOARDING",m[m.ROWING=15]="ROWING",m[m.MOUNTAINEERING=16]="MOUNTAINEERING",m[m.HIKING=17]="HIKING",m[m.MULTISPORT=18]="MULTISPORT",m[m.PADDLING=19]="PADDLING",m[m.FLYING=20]="FLYING",m[m.E_BIKING=21]="E_BIKING",m[m.MOTORCYCLING=22]="MOTORCYCLING",m[m.BOATING=23]="BOATING",m[m.DRIVING=24]="DRIVING",m[m.GOLF=25]="GOLF",m[m.HANG_GLIDING=26]="HANG_GLIDING",m[m.HORSEBACK_RIDING=27]="HORSEBACK_RIDING",m[m.HUNTING=28]="HUNTING",m[m.FISHING=29]="FISHING",m[m.INLINE_SKATING=30]="INLINE_SKATING",m[m.ROCK_CLIMBING=31]="ROCK_CLIMBING",m[m.SAILING=32]="SAILING",m[m.ICE_SKATING=33]="ICE_SKATING",m[m.SKY_DIVING=34]="SKY_DIVING",m[m.SNOWSHOEING=35]="SNOWSHOEING",m[m.SNOWMOBILING=36]="SNOWMOBILING",m[m.STAND_UP_PADDLEBOARDING=37]="STAND_UP_PADDLEBOARDING",m[m.SURFING=38]="SURFING",m[m.WAKEBOARDING=39]="WAKEBOARDING",m[m.WATER_SKIING=40]="WATER_SKIING",m[m.KAYAKING=41]="KAYAKING",m[m.RAFTING=42]="RAFTING",m[m.WINDSURFING=43]="WINDSURFING",m[m.KITESURFING=44]="KITESURFING",m[m.TACTICAL=45]="TACTICAL",m[m.JUMPMASTER=46]="JUMPMASTER",m[m.BOXING=47]="BOXING",m[m.FLOOR_CLIMBING=48]="FLOOR_CLIMBING",m[m.BASEBALL=49]="BASEBALL",m[m.DIVING=53]="DIVING",m[m.HIIT=62]="HIIT",m[m.RACKET=64]="RACKET",m[m.WHEELCHAIR_PUSH_WALK=65]="WHEELCHAIR_PUSH_WALK",m[m.WHEELCHAIR_PUSH_RUN=66]="WHEELCHAIR_PUSH_RUN",m[m.MEDITATION=67]="MEDITATION",m[m.DISC_GOLF=69]="DISC_GOLF",m[m.CRICKET=71]="CRICKET",m[m.RUGBY=72]="RUGBY",m[m.HOCKEY=73]="HOCKEY",m[m.LACROSSE=74]="LACROSSE",m[m.VOLLEYBALL=75]="VOLLEYBALL",m[m.WATER_TUBING=76]="WATER_TUBING",m[m.WAKESURFING=77]="WAKESURFING",m[m.MIXED_MARTIAL_ARTS=80]="MIXED_MARTIAL_ARTS",m[m.SNORKELING=82]="SNORKELING",m[m.DANCE=83]="DANCE",m[m.JUMP_ROPE=84]="JUMP_ROPE",m[m.ALL=254]="ALL",m))(ge||{});var Le=(f=>(f[f.GENERIC=0]="GENERIC",f[f.TREADMILL=1]="TREADMILL",f[f.STREET=2]="STREET",f[f.TRAIL=3]="TRAIL",f[f.TRACK=4]="TRACK",f[f.SPIN=5]="SPIN",f[f.INDOOR_CYCLING=6]="INDOOR_CYCLING",f[f.ROAD=7]="ROAD",f[f.MOUNTAIN=8]="MOUNTAIN",f[f.DOWNHILL=9]="DOWNHILL",f[f.RECUMBENT=10]="RECUMBENT",f[f.CYCLOCROSS=11]="CYCLOCROSS",f[f.HAND_CYCLING=12]="HAND_CYCLING",f[f.TRACK_CYCLING=13]="TRACK_CYCLING",f[f.INDOOR_ROWING=14]="INDOOR_ROWING",f[f.ELLIPTICAL=15]="ELLIPTICAL",f[f.STAIR_CLIMBING=16]="STAIR_CLIMBING",f[f.LAP_SWIMMING=17]="LAP_SWIMMING",f[f.OPEN_WATER=18]="OPEN_WATER",f[f.FLEXIBILITY_TRAINING=19]="FLEXIBILITY_TRAINING",f[f.STRENGTH_TRAINING=20]="STRENGTH_TRAINING",f[f.WARM_UP=21]="WARM_UP",f[f.MATCH=22]="MATCH",f[f.EXERCISE=23]="EXERCISE",f[f.CHALLENGE=24]="CHALLENGE",f[f.INDOOR_SKIING=25]="INDOOR_SKIING",f[f.CARDIO_TRAINING=26]="CARDIO_TRAINING",f[f.INDOOR_WALKING=27]="INDOOR_WALKING",f[f.E_BIKE_FITNESS=28]="E_BIKE_FITNESS",f[f.BMX=29]="BMX",f[f.CASUAL_WALKING=30]="CASUAL_WALKING",f[f.SPEED_WALKING=31]="SPEED_WALKING",f[f.BIKE_TO_RUN_TRANSITION=32]="BIKE_TO_RUN_TRANSITION",f[f.RUN_TO_BIKE_TRANSITION=33]="RUN_TO_BIKE_TRANSITION",f[f.SWIM_TO_BIKE_TRANSITION=34]="SWIM_TO_BIKE_TRANSITION",f[f.ATV=35]="ATV",f[f.MOTOCROSS=36]="MOTOCROSS",f[f.BACKCOUNTRY=37]="BACKCOUNTRY",f[f.RESORT=38]="RESORT",f[f.RC_DRONE=39]="RC_DRONE",f[f.WINGSUIT=40]="WINGSUIT",f[f.WHITEWATER=41]="WHITEWATER",f[f.SKATE_SKIING=42]="SKATE_SKIING",f[f.YOGA=43]="YOGA",f[f.PILATES=44]="PILATES",f[f.INDOOR_RUNNING=45]="INDOOR_RUNNING",f[f.GRAVEL_CYCLING=46]="GRAVEL_CYCLING",f[f.E_BIKE_MOUNTAIN=47]="E_BIKE_MOUNTAIN",f[f.COMMUTING=48]="COMMUTING",f[f.MIXED_SURFACE=49]="MIXED_SURFACE",f[f.NAVIGATE=50]="NAVIGATE",f[f.TRACK_ME=51]="TRACK_ME",f[f.MAP=52]="MAP",f[f.SINGLE_GAS_DIVING=53]="SINGLE_GAS_DIVING",f[f.MULTI_GAS_DIVING=54]="MULTI_GAS_DIVING",f[f.GAUGE_DIVING=55]="GAUGE_DIVING",f[f.APNEA_DIVING=56]="APNEA_DIVING",f[f.APNEA_HUNTING=57]="APNEA_HUNTING",f[f.VIRTUAL_ACTIVITY=58]="VIRTUAL_ACTIVITY",f[f.OBSTACLE=59]="OBSTACLE",f[f.BREATHING=62]="BREATHING",f[f.SAIL_RACE=65]="SAIL_RACE",f[f.ULTRA=67]="ULTRA",f[f.INDOOR_CLIMBING=68]="INDOOR_CLIMBING",f[f.BOULDERING=69]="BOULDERING",f[f.HIIT=70]="HIIT",f[f.AMRAP=73]="AMRAP",f[f.EMOM=74]="EMOM",f[f.TABATA=75]="TABATA",f[f.PICKLEBALL=84]="PICKLEBALL",f[f.PADEL=85]="PADEL",f[f.INDOOR_WHEELCHAIR_WALK=86]="INDOOR_WHEELCHAIR_WALK",f[f.INDOOR_WHEELCHAIR_RUN=87]="INDOOR_WHEELCHAIR_RUN",f[f.INDOOR_HAND_CYCLING=88]="INDOOR_HAND_CYCLING",f[f.SQUASH=94]="SQUASH",f[f.BADMINTON=95]="BADMINTON",f[f.RACQUETBALL=96]="RACQUETBALL",f[f.TABLE_TENNIS=97]="TABLE_TENNIS",f[f.FLY_CANOPY=110]="FLY_CANOPY",f[f.FLY_PARAGLIDE=111]="FLY_PARAGLIDE",f[f.FLY_PARAMOTOR=112]="FLY_PARAMOTOR",f[f.FLY_PRESSURIZED=113]="FLY_PRESSURIZED",f[f.FLY_NAVIGATE=114]="FLY_NAVIGATE",f[f.FLY_TIMER=115]="FLY_TIMER",f[f.FLY_ALTIMETER=116]="FLY_ALTIMETER",f[f.FLY_WX=117]="FLY_WX",f[f.FLY_VFR=118]="FLY_VFR",f[f.FLY_IFR=119]="FLY_IFR",f[f.ALL=254]="ALL",f))(Le||{});function gt(l,e){if(!e)return;let s=e.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,"").toUpperCase();for(let t of Object.keys(l)){if(!Number.isNaN(Number(t))||t.toUpperCase()!==s)continue;let n=l[t];return typeof n=="number"?n:void 0}}function $n(l){let e=l.metadata?.fileName?.trim();if(e)return e;let s=l.metadata?.originType;return s?`${s.toLowerCase()}-course`:"course"}function Lt(l){let e=l.activities?.[0],t=[...(l.activities?.flatMap(n=>n.laps??[])??[]).flatMap(n=>n.records??[]),...l.routes?.flatMap(n=>n.records??[])??[],...l.points??[]].filter(n=>n.timestamp!=null&&n.positionLat!=null&&n.positionLong!=null).sort((n,a)=>new Date(n.timestamp).getTime()-new Date(a.timestamp).getTime()).map(n=>({timestamp:n.timestamp,latitude:n.positionLat,longitude:n.positionLong,distance:n.distance,altitude:n.enhancedAltitude??n.altitude,speed:n.enhancedSpeed??n.speed}));if(t.length===0)throw new Error("Cannot build a FIT course without timestamped coordinates");return{name:$n(l),sport:gt(ge,e?.sport)??2,subSport:gt(Le,e?.subSport)??0,records:t,timeCreated:t[0].timestamp}}function Ct(){return process.env.TRACKSWAP_FIT_DEBUG==="1"||process.env.TRACKSWAP_DEBUG==="1"}function W(...l){Ct()}function oe(...l){Ct()}var He=class{constructor(){this.stage="parse"}async process(e){let s=Date.now();if(!e.rawData)throw new Error("FIT data cannot be empty");try{let t=await this.parseWithFitSDK(e.rawData,e);return e.rawMessages=t,W("\u{1F389} FIT parsing raw messages:",t),e.performance.parseTime=Date.now()-s,W(`\u{1F527} FIT parsing completed, contains message types: ${Object.keys(t).join(", ")}`),e}catch(t){throw new Error(`FIT parsing failed: ${t.message}`)}}async parseWithFitSDK(e,s){let{Decoder:t,Profile:n,Stream:a}=await Promise.resolve().then(()=>(De(),an)),i=[n.version?.major,n.version?.minor,n.version?.patch].filter(_=>_!==void 0);i.length>0&&s.metadata.set("fit-sdk-profile-version",i.join("."));let o=a.fromBuffer(e);if(!t.isFIT(o))throw new Error("Not a valid FIT file");let u=new t(o),{messages:p,errors:d}=u.read();return d&&d.length>0&&oe("FIT parsing warnings:",d),p}};function ha(l){let e={...l};return e.position_lat!=null&&e.positionLat==null&&(e.positionLat=e.position_lat),e.position_long!=null&&e.positionLong==null&&(e.positionLong=e.position_long),e}var we=class{constructor(e){this.getConverters=e;this.stage="extract"}async process(e){let s=Date.now();if(!e.rawMessages)throw new Error("Raw messages cannot be empty");let t={};for(let[n,a]of Object.entries(e.rawMessages)){if(!Array.isArray(a)||a.length===0){t[n]=a;continue}let i=this.getConverters(n);if(i.length===0)t[n]=n==="recordMesgs"?a.map(o=>ha(o)):a,W(`\u{1F4CB} Message type "${n}" has no converter, using raw data`);else{let o=i[0];try{let u=o.convertMessages(a,e);t[n]=u,W(`\u2705 Message type "${n}" using converter ${o.name}`)}catch(u){e.errors.push(u),t[n]=a,oe(`FIT converter "${o.name}" failed for ${n}; raw messages were retained`,u)}}}return e.rawMessages=t,e.performance.extractTime=Date.now()-s,e}},ve=class{constructor(e){this.getStructurePlugins=e;this.stage="structure"}async process(e){let s=Date.now();if(!e.rawMessages)throw new Error("Message data cannot be empty");let t={...e.rawMessages},n=this.getStructurePlugins();for(let a of n)try{let i=a.structureData(e.rawMessages,e);t={...t,...i},W(`\u{1F527} Structure plugin ${a.name} processing completed`)}catch(i){throw e.errors.push(i),new Error(`FIT structure plugin "${a.name}" failed: ${i.message}`)}return e.result=t,e.performance.structureTime=Date.now()-s,e}},Ue=class{constructor(){this.stage="complete"}async process(e){e.performance.endTime=Date.now();let s=e.performance.endTime-e.performance.startTime;return e.metadata.set("performance",{totalTime:s,parseTime:e.performance.parseTime,extractTime:e.performance.extractTime,structureTime:e.performance.structureTime}),e.stats&&(e.stats.endTime=Date.now(),e.rawMessages&&(e.stats.processedTokens=this.countTotalMessages(e.rawMessages))),W(`\u2705 FIT processing completed, total time: ${s}ms`),e}countTotalMessages(e){let s=0;return Object.values(e).forEach(t=>{Array.isArray(t)&&(s+=t.length)}),s}};var K=J(require("dayjs"),1);var Be=class extends j{constructor(){super(...arguments);this.name="SessionStructurePlugin";this.priority=10}structureData(s,t){let{sessionMesgs:n,lapMesgs:a,recordMesgs:i,lengthMesgs:o,setMesgs:u}=s;if(!n?.length)return oe("No structured session found, data structure is incomplete"),{};let p=n.map((R,b)=>{let y=(0,K.default)(R.startTime).valueOf(),P=y+(R.totalElapsedTime??0)*1e3,v=(0,K.default)(R.timestamp).valueOf(),A=Math.max(Number.isFinite(P)?P:Number.NEGATIVE_INFINITY,Number.isFinite(v)?v:Number.NEGATIVE_INFINITY),h=n[b+1],T=h?(0,K.default)(h.startTime).valueOf():Number.NaN,I=Number.isFinite(T)&&T>y,c=R.firstLapIndex,C=R.numLaps,E=typeof c=="number"&&typeof C=="number"?(a??[]).filter(F=>{let D=F.messageIndex;return typeof D=="number"&&D>=c&&D<c+C}):[],O=(E.length===C&&E.length>0?E:(a??[]).filter(F=>{let D=(0,K.default)(F.startTime).valueOf();return Number.isFinite(D)&&D>=y&&D<=A+2e3})).sort((F,D)=>(0,K.default)(F.startTime).valueOf()-(0,K.default)(D.startTime).valueOf()),S=n.length===1?[...i??[]]:(i??[]).filter(F=>{let D=(0,K.default)(F.timestamp).valueOf();return Number.isFinite(D)?(b===0||D>=y)&&(!I||D<T):b===0}),g=(u??[]).filter(F=>{let D=(0,K.default)(F.startTime??F.timestamp).valueOf();return Number.isFinite(D)?D<y?!1:I?D<T:D<=A+2e3:n.length===1}),U=O.length>0?O:S.length>0?[{...R,messageIndex:typeof R.firstLapIndex=="number"?R.firstLapIndex:b,recordMesgs:S}]:[];if(O.length===0&&U.length===1){let F=Number(t.metadata.get("fit-synthetic-lap-count")??0);t.metadata.set("fit-synthetic-lap-count",F+1)}let V=U.map((F,D)=>{let ie=(0,K.default)(F.startTime).valueOf(),rt=U[D+1]?.startTime,Fs=rt==null?Number.NaN:(0,K.default)(rt).valueOf(),gn=ie+(F.totalElapsedTime??0)*1e3,dt=Number.isFinite(Fs)&&Fs>ie,Ln=dt?Fs:Math.max(gn,A),Cn=O.length===0?S:S.filter(Hs=>{let le=(0,K.default)(Hs.timestamp).valueOf();return Number.isFinite(le)?(D===0||le>=ie)&&(!dt||le<Ln):D===0}),Ds=F.firstLengthIndex??void 0,Tt=F.numLengths??void 0,_t=[];if(Ds!==void 0&&Tt!==void 0){let Hs=Ds+Tt;_t=o?.filter(le=>le.messageIndex>=Ds&&le.messageIndex<Hs)||[]}return{...F,recordMesgs:Cn,lengthMesgs:_t,messageIndex:F.messageIndex!==void 0?F.messageIndex:0}});return{...R,lapMesgs:V,setMesgs:g}}),d=new Set;for(let R of p)for(let b of R.lapMesgs??[])for(let y of b.recordMesgs??[])y?.timestamp!=null&&d.add((0,K.default)(y.timestamp).valueOf());let _=0;for(let R of i??[]){if(R?.timestamp==null)continue;let b=(0,K.default)(R.timestamp).valueOf();d.has(b)||_++}return _>0&&(t.metadata.set("fit-unassigned-record-count",_),oe(`SessionStructurePlugin: ${_} record(s) did not fall into any lap time window`)),{sessionMesgs:p}}},Me=class extends j{constructor(){super(...arguments);this.name="CourseStructurePlugin";this.priority=10}structureData(s,t){let{courseMesgs:n,lapMesgs:a,recordMesgs:i}=s;if(!n?.length)return{};let o=2e3;return{courseMesgs:n.map(p=>{let d=a?.map(_=>{let R=(0,K.default)(_.startTime).valueOf(),b=(0,K.default)(_.timestamp).valueOf(),y=i?.filter(P=>{let v=(0,K.default)(P.timestamp).valueOf();return v>=R-o&&v<=b+o})||[];return{..._,recordMesgs:y}})||[];return{...p,lapMesgs:d}})}}},Ge=class extends j{constructor(){super(...arguments);this.name="FileHeaderPlugin";this.priority=1}structureData(s,t){let{fileIdMesgs:n,fileCreatorMesgs:a,deviceInfoMesgs:i}=s;if(n?.length&&n[0]){let o=n[0];t.fileHeader={type:o.type,manufacturer:o.manufacturer,product:o.product}}return{fileIdMesgs:n,fileCreatorMesgs:a,deviceInfoMesgs:i}}};var Pe=class{constructor(){this.converterPlugins=new Map;this.registeredPlugins=new Set;this.structurePlugins=[];this.middlewarePlugins=[];this.processors=[];this.initialized=!1;this.defaultPluginsRegistered=!1;this.initializePipeline()}initializePipeline(){this.processors=[new He,new we(e=>this.getConverters(e)),new ve(()=>this.structurePlugins),new Ue],W("\u{1F527} FIT core pipeline processors initialized (fixed and not modifiable)")}async registerDefaultPlugins(){if(this.defaultPluginsRegistered)return;let e=[new Ge,new Be,new Me,new Re];for(let s of e)this.addStructurePlugin(s),this.registeredPlugins.add(s.name);this.defaultPluginsRegistered=!0,W("\u2705 Default FIT structure plugins auto-registered (FileHeader, Session, Course, etc.)")}addConverterForMessageType(e,s){this.converterPlugins.has(e)||this.converterPlugins.set(e,[]);let t=this.converterPlugins.get(e);t.push(s),t.sort((n,a)=>(n.priority||100)-(a.priority||100))}addStructurePlugin(e){this.structurePlugins.push(e),this.structurePlugins.sort((s,t)=>(s.priority||100)-(t.priority||100))}async registerMessageConverter(e){if(this.registeredPlugins.has(e.name))throw new Error(`Message converter plugin ${e.name} already exists`);e.supportedMessageTypes.forEach(t=>{this.addConverterForMessageType(t,e)}),this.registeredPlugins.add(e.name);let s=e.priority!==void 0?` (priority: ${e.priority})`:"";W(`\u{1F4E6} Registered FIT message converter: ${e.name}${s}, supported message types: ${e.supportedMessageTypes.join(", ")}`),e.supportedMessageTypes.forEach(t=>{let a=(this.converterPlugins.get(t)||[]).map(i=>`${i.name}(${i.priority||100})`);W(` \u{1F4CB} Message type "${t}" converter priority: ${a.join(" > ")}`)})}async registerStructurePlugin(e){if(this.registeredPlugins.has(e.name))throw new Error(`Structure plugin ${e.name} already exists`);this.addStructurePlugin(e),this.registeredPlugins.add(e.name);let s=e.priority!==void 0?` (priority: ${e.priority})`:"";W(`\u{1F3D7}\uFE0F Registered FIT structure plugin: ${e.name}${s}`)}async registerMiddleware(e){let s=this.middlewarePlugins.findIndex(n=>n.name===e.name);s!==-1?(this.middlewarePlugins[s]=e,W(`\u{1F504} Updated FIT middleware: ${e.name}`)):(this.middlewarePlugins.push(e),this.middlewarePlugins.sort((n,a)=>(n.priority||100)-(a.priority||100)),W(`\u{1F50C} Registered FIT middleware: ${e.name}`));let t=[];e.onParse&&t.push("onParse"),e.onExtractMessages&&t.push("onExtractMessages"),e.onStructure&&t.push("onStructure"),e.onComplete&&t.push("onComplete"),e.onError&&t.push("onError"),t.length>0&&W(` \u{1F3A3} Supported hooks: ${t.join(", ")}`)}getConverter(e){let s=this.converterPlugins.get(e);return s&&s.length>0?s[0]:void 0}getConverters(e){return this.converterPlugins.get(e)||[]}unregisterPlugin(e){if(!this.registeredPlugins.has(e))return!1;for(let[n,a]of this.converterPlugins){let i=a.findIndex(o=>o.name===e);i!==-1&&(a.splice(i,1),a.length===0&&this.converterPlugins.delete(n))}let s=this.structurePlugins.findIndex(n=>n.name===e);s!==-1&&this.structurePlugins.splice(s,1);let t=this.middlewarePlugins.findIndex(n=>n.name===e);return t!==-1&&this.middlewarePlugins.splice(t,1),this.registeredPlugins.delete(e),W(`\u{1F5D1}\uFE0F Removed FIT plugin: ${e}`),!0}async initialize(){if(this.initialized)return;await this.registerDefaultPlugins();let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.structurePlugins,...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.initialize?.(e);this.initialized=!0}async destroy(){if(!this.initialized)return;let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.structurePlugins,...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.destroy?.(e);this.initialized=!1}createContext(){return{metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},performance:{startTime:Date.now()}}}async executeMiddlewareHook(e,s,t){let n=s;for(let a of this.middlewarePlugins){let i=a[e];if(i)try{n=await i.call(a,n,t)||n}catch(o){t.errors.push(o),await a.onError?.(o,t)}}return n}async parseByBuffer(e,s={}){await this.initialize();let t=this.createContext();t.rawData=e,t.userData=s.userData,t.metadata.set("decoder",this);try{for(let n of this.processors)try{switch(n.stage==="parse"&&t.rawData&&(t.rawData=await this.executeMiddlewareHook("onParse",t.rawData,t)),t=await n.process(t),n.stage){case"parse":break;case"extract":t.rawMessages&&(t.rawMessages=await this.executeMiddlewareHook("onExtractMessages",t.rawMessages,t));break;case"structure":t.result&&(t.result=await this.executeMiddlewareHook("onStructure",t.result,t));break;case"complete":t.result&&(t.result=await this.executeMiddlewareHook("onComplete",t.result,t));break}}catch(a){t.errors.push(a);for(let i of this.middlewarePlugins)await i.onError?.(a,t);throw new Error(`FIT pipeline stage "${n.stage}" failed: ${a.message}`)}return W("\u{1F389} FIT parsing completed",t.result),t.result}catch(n){throw n}}};var Ra={file:{course:6,device:1,settings:2,sport:3,activity:4,workout:5,schedules:7,weight:9,totals:10,goals:11,blood_pressure:14,monitoring_a:15,activity_summary:20,monitoring_daily:28,monitoring_b:32,segment_list:35,exd_configuration:40,invalid:0},sport:{generic:0,running:1,cycling:2,transition:3,fitness_equipment:4,swimming:5,basketball:6,soccer:7,tennis:8,american_football:9,training:10,walking:11,cross_country_skiing:12,alpine_skiing:13,snowboarding:14,rowing:15,mountaineering:16,hiking:17,multisport:18,paddling:19,invalid:254},event:{timer:0,workout:3,workout_step:4,power_down:5,power_up:6,off_course:7,session:8,lap:9,course_point:10,battery:11,virtual_partner_pace:12,hr_high_alert:13,hr_low_alert:14,speed_high_alert:15,speed_low_alert:16,cad_high_alert:17,cad_low_alert:18,power_high_alert:19,power_low_alert:20,recovery_hr:21,battery_low:22,time_duration_alert:23,distance_duration_alert:24,calorie_duration_alert:25,activity:26,fitness_equipment:27,length:28,user_marker:32,sport_point:33,calibration:36,front_gear_change:42,rear_gear_change:43,rider_position_change:44,elev_high_alert:45,elev_low_alert:46,comm_timeout:47,invalid:255},event_type:{start:0,stop:1,consecutive_depreciated:2,marker:3,stop_all:4,begin_depreciated:5,end_depreciated:6,end_all_depreciated:7,stop_disable:8,stop_disable_all:9,invalid:255},course_point:{generic:0,summit:1,valley:2,water:3,food:4,danger:5,left:6,right:7,straight:8,first_aid:9,fourth_category:10,third_category:11,second_category:12,first_category:13,hors_category:14,sprint:15,left_fork:16,right_fork:17,middle_fork:18,slight_left:19,sharp_left:20,slight_right:21,sharp_right:22,u_turn:23,segment_start:24,segment_end:25,invalid:255}},ae=l=>{let e=Ra[l];return{size:1,baseType:0,mapValue:s=>typeof s=="string"?e[s]??255:s,setValue:function(s,t){this.setUint8(s,t)}}},xs={enum_file:ae("file"),enum_activity:ae("sport"),enum_sport:ae("sport"),enum_sub_sport:ae("sport"),enum_event:ae("event"),enum_event_type:ae("event_type"),enum_course_point:ae("course_point"),uint8:{size:1,baseType:2,setValue:DataView.prototype.setUint8},sint8:{size:1,baseType:1,setValue:DataView.prototype.setInt8},uint16:{size:2,baseType:132,setValue:DataView.prototype.setUint16},sint16:{size:2,baseType:131,setValue:DataView.prototype.setInt16},uint32:{size:4,baseType:134,setValue:DataView.prototype.setUint32},sint32:{size:4,baseType:133,setValue:DataView.prototype.setInt32},string:{size:0,baseType:7,mapValue:l=>Array.from(on(l)),setValue:La},distance:{size:4,baseType:134,setValue:DataView.prototype.setUint32,mapValue:l=>Math.round(l*1e3)},speed:{size:2,baseType:132,setValue:DataView.prototype.setUint16,mapValue:l=>Math.round(l*100)},altitude:{size:2,baseType:132,setValue:DataView.prototype.setUint16,mapValue:l=>Math.round((l+500)*5)},seconds:{size:4,baseType:134,setValue:DataView.prototype.setUint32,mapValue:l=>Math.round(l*1e3)},date_time:{size:4,baseType:134,setValue:DataView.prototype.setUint32,mapValue:l=>{let e;return l instanceof Date?(e=Math.floor(l.getTime()/1e3),e-631065600):typeof l=="string"?(e=Math.floor(new Date(l).getTime()/1e3),e-631065600):l<631065600?Math.floor(l):(l>9999999999?e=Math.floor(l/1e3):e=Math.floor(l),e-631065600)}},semicircles:{size:4,baseType:133,setValue:DataView.prototype.setInt32,mapValue:l=>Math.round(l/180*2147483648)}};function ln(l){return Array.from(on(l)).length+1}function*on(l){for(let e of ga(l))e<128?yield e:e<2048?(yield 192|e>>6,yield 128|e&63):e<65536?(yield 224|e>>12,yield 128|e>>6&63,yield 128|e&63):(yield 240|e>>18,yield 128|e>>12&63,yield 128|e>>6&63,yield 128|e&63);yield 0}function*ga(l){for(let e=0;e<l.length;){let s=l.codePointAt(e);if(s===void 0)break;yield s,e+=s>65535?2:1}}function La(l,e){for(let s=0;s<e.length;s++)this.setUint8(l+s,e[s])}var Ea={file_id:{mesgNum:0,fieldDefns:[{name:"type",number:0,type:"enum_file"},{name:"time_created",number:4,type:"date_time"}]},session:{mesgNum:18,fieldDefns:[{name:"message_index",number:254,type:"uint16"},{name:"timestamp",number:253,type:"date_time"},{name:"start_time",number:2,type:"date_time"},{name:"total_elapsed_time",number:7,type:"seconds"},{name:"total_timer_time",number:8,type:"seconds"},{name:"start_position_lat",number:3,type:"semicircles"},{name:"start_position_long",number:4,type:"semicircles"},{name:"total_distance",number:9,type:"distance"},{name:"total_ascent",number:21,type:"uint16"},{name:"total_descent",number:22,type:"uint16"},{name:"sport",number:5,type:"enum_sport"},{name:"sub_sport",number:6,type:"enum_sub_sport"},{name:"first_lap_index",number:25,type:"uint16"},{name:"num_laps",number:26,type:"uint16"}]},lap:{mesgNum:19,fieldDefns:[{name:"message_index",number:254,type:"uint16"},{name:"timestamp",number:253,type:"date_time"},{name:"start_time",number:2,type:"date_time"},{name:"start_position_lat",number:3,type:"semicircles"},{name:"start_position_long",number:4,type:"semicircles"},{name:"end_position_lat",number:5,type:"semicircles"},{name:"end_position_long",number:6,type:"semicircles"},{name:"total_elapsed_time",number:7,type:"seconds"},{name:"total_timer_time",number:8,type:"seconds"},{name:"total_distance",number:9,type:"distance"},{name:"total_ascent",number:21,type:"uint16"},{name:"total_descent",number:22,type:"uint16"}]},record:{mesgNum:20,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"position_lat",number:0,type:"semicircles"},{name:"position_long",number:1,type:"semicircles"},{name:"altitude",number:2,type:"altitude"},{name:"distance",number:5,type:"distance"},{name:"heart_rate",number:3,type:"uint8"},{name:"cadence",number:4,type:"uint8"},{name:"speed",number:6,type:"speed"},{name:"power",number:7,type:"uint16"}]},event:{mesgNum:21,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"event",number:0,type:"enum_event"},{name:"event_type",number:1,type:"enum_event_type"},{name:"event_group",number:4,type:"uint8"}]},course:{mesgNum:31,fieldDefns:[{name:"name",number:5,type:"string"},{name:"sport",number:4,type:"enum_sport"},{name:"sub_sport",number:7,type:"enum_sub_sport"}]},activity:{mesgNum:34,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"total_timer_time",number:0,type:"seconds"},{name:"num_sessions",number:1,type:"uint16"},{name:"type",number:2,type:"enum_activity"},{name:"event",number:3,type:"enum_event"},{name:"event_type",number:4,type:"enum_event_type"},{name:"local_timestamp",number:5,type:"date_time"},{name:"event_group",number:6,type:"uint8"}]},course_point:{mesgNum:32,fieldDefns:[{name:"timestamp",number:1,type:"date_time"},{name:"position_lat",number:2,type:"semicircles"},{name:"position_long",number:3,type:"semicircles"},{name:"distance",number:4,type:"distance"},{name:"type",number:5,type:"enum_course_point"}]}},Sa=(l,e)=>l.map(s=>({...s,value:e[s.name]})).filter(({value:s})=>s!==void 0),We=class l{static check(e,s,t,n){if(s===void 0)throw new Error(`Message '${e}' not known`);if(t===void 0)throw new Error(`Message '${e}' has no field definitions`);let a=t.map(o=>o.name),i=Object.keys(n).filter(o=>!a.includes(o));if(i.length)throw new Error(`Message '${e}' has no field definitions named '${i}'`)}constructor(e,s,t){let n=Ea[s];if(!n)throw new Error(`Unknown message type: ${s}`);let{mesgNum:a,fieldDefns:i}=n;l.check(s,a,i,t),this.localNum=e,this.mesgNum=a,this.fields=Sa(i,t)}get mesgDefn(){let e=this.fields.map(({number:s,type:t,value:n})=>{let a=xs[t];if(!a)throw new Error(`Unknown type: ${t}`);let{size:i,baseType:o}=a;return t==="string"?{number:s,size:ln(n),baseType:o}:{number:s,size:i,baseType:o}});return{localNum:this.localNum,mesgNum:this.mesgNum,fieldDefns:e}}isSameDefn(e){let s=(o,u)=>o.number===u.number&&o.size===u.size&&o.baseType===u.baseType,t=(o,u)=>o.length===u.length&&o.every((p,d)=>s(p,u[d])),{localNum:n,mesgNum:a,fieldDefns:i}=this.mesgDefn;return a===e.mesgNum&&n===e.localNum&&t(i,e.fieldDefns)}get defnRecord(){let{localNum:e,mesgNum:s,fieldDefns:t}=this.mesgDefn,n=6+3*t.length,a=new DataView(new ArrayBuffer(n));a.setUint8(0,64|e),a.setUint8(2,1),a.setUint16(3,s),a.setUint8(5,t.length);let i=6;for(let o of t)a.setUint8(i++,o.number),a.setUint8(i++,o.size),a.setUint8(i++,o.baseType);return a.buffer}get dataRecord(){let{fieldDefns:e}=this.mesgDefn,s=1+e.reduce((a,{size:i})=>a+i,0),t=new DataView(new ArrayBuffer(s));t.setUint8(0,this.localNum);let n=1;for(let{number:a,type:i,value:o}of this.fields){let u=xs[i];if(!u)throw new Error(`Unknown type: ${i}`);let{size:p,setValue:d}=u,_;"mapValue"in u?_=u.mapValue(o):_=o,d&&d.call(t,n,_),n+=p}return t.buffer}};var Oa=[0,52225,55297,5120,61441,15360,10240,58369,40961,27648,30720,46081,20480,39937,34817,17408],un=(l,e)=>(l>>>4^Oa[l&15^e])&65535,Fa=(l,e,s)=>un(un(l,e),s),Da=(l,e)=>Fa(l,e&15,e>>>4);function et(l,e=0){let s=e,t=l instanceof ArrayBuffer?new Uint8Array(l):l;for(let n=0;n<t.length;n++)s=Da(s,t[n]);return s}var pn=J(require("dayjs"),1),fn=14,Ha=16,wa=2078,va=776358228,Ve=class{constructor(e={}){this.localNum={};this.mesgDefn=[];this.messages=[];this.options={compact:e.compact??!0,defaultActivity:e.defaultActivity??"cycling",defaultSubActivity:e.defaultSubActivity??"generic"}}async encode(e){return this.reset(),this.buildFITContent(e,"activity"),Buffer.from(await this.blob.arrayBuffer())}async encodeCourse(e){return this.reset(),this.buildFITContent(e,"course"),Buffer.from(await this.blob.arrayBuffer())}async encodeToBlob(e,s="activity"){return this.reset(),this.buildFITContent(e,s),this.blob}reset(){this.localNum={},this.mesgDefn=[],this.messages=[]}buildFITContent(e,s){this.buildFileId(e,s),s==="course"?this.buildCourseContent(e):this.buildActivityContent(e)}buildActivityContent(e){let s=e.sessionMesgs||[];if(s.length===0)throw new Error("Activity file must contain at least one Session");let t=[],n=[],a=0;for(let[i,o]of s.entries()){let u=(o.lapMesgs??[]).map((d,_)=>({...d,messageIndex:a+_})),p={...o,messageIndex:i,firstLapIndex:a,numLaps:u.length,lapMesgs:u};u.length>0&&this.buildEventsFromLaps(u,t);for(let d of u)d.recordMesgs&&this.buildRecords(d.recordMesgs);u.length>0&&this.buildLaps(u),this.buildSession(p),this.buildActivityFromSession(p,n),a+=u.length}t.forEach(i=>this.buildEvent(i)),n.forEach(i=>this.buildActivity(i))}buildCourseContent(e){let s=e.sessionMesgs||[];if(s.length===0)throw new Error("Course file must contain track data");let t=s[0];if(this.buildCourse({name:"course",sport:this.options.defaultActivity}),t.lapMesgs){let n=[];for(let o of t.lapMesgs)o.recordMesgs&&n.push(...o.recordMesgs);n.sort((o,u)=>o.timestamp&&u.timestamp?new Date(o.timestamp).getTime()-new Date(u.timestamp).getTime():(o.distance||0)-(u.distance||0));let a=n[0],i=n[n.length-1];if(t.startTime&&this.buildEvent({timestamp:t.startTime,event:"timer",eventType:"start",eventGroup:0}),n.forEach(o=>this.buildRecord(o)),i.timestamp&&this.buildEvent({timestamp:i.timestamp,event:"timer",eventType:"stop_all",eventGroup:0}),t.lapMesgs)for(let o=0;o<t.lapMesgs.length;o++)this.buildLap(t.lapMesgs[o])}}buildFileId(e,s){let t=e.fileIdMesgs?.[0]||{};this.writeMesg("file_id",{type:s,time_created:t.timeCreated?this.parseTimestamp(t.timeCreated):Date.now(),manufacturer:t.manufacturer,product:t.product,serial_number:t.serialNumber})}buildSession(e){this.writeMesg("session",{message_index:e.messageIndex,timestamp:e.timestamp?e.timestamp:void 0,start_time:e.startTime?e.startTime:void 0,total_elapsed_time:e.totalElapsedTime,total_timer_time:e.totalTimerTime,start_position_lat:e.startPositionLat!=null&&Number.isFinite(e.startPositionLat)?e.startPositionLat:void 0,start_position_long:e.startPositionLong!=null&&Number.isFinite(e.startPositionLong)?e.startPositionLong:void 0,total_distance:e.totalDistance,total_ascent:e.totalAscent,total_descent:e.totalDescent,sport:e.sport||this.options.defaultActivity,sub_sport:e.subSport||this.options.defaultSubActivity,first_lap_index:e.firstLapIndex??0,num_laps:e.numLaps??e.lapMesgs?.length??0})}buildLaps(e){e.forEach(s=>this.buildLap(s))}buildLap(e){this.writeMesg("lap",{message_index:e.messageIndex,timestamp:e?.timestamp?e.timestamp:void 0,start_time:e?.startTime?e.startTime:void 0,start_position_lat:e?.startPositionLat!=null&&Number.isFinite(e.startPositionLat)?e.startPositionLat:void 0,start_position_long:e?.startPositionLong!=null&&Number.isFinite(e.startPositionLong)?e.startPositionLong:void 0,end_position_lat:e?.endPositionLat!=null&&Number.isFinite(e.endPositionLat)?e.endPositionLat:void 0,end_position_long:e?.endPositionLong!=null&&Number.isFinite(e.endPositionLong)?e.endPositionLong:void 0,total_elapsed_time:e?.totalElapsedTime,total_timer_time:e?.totalTimerTime,total_distance:e?.totalDistance,total_ascent:e?.totalAscent,total_descent:e?.totalDescent})}buildRecords(e){e.forEach(s=>this.buildRecord(s))}buildRecord(e){this.writeMesg("record",{timestamp:e.timestamp,position_lat:e?.positionLat!=null&&Number.isFinite(e.positionLat)?e.positionLat:void 0,position_long:e?.positionLong!=null&&Number.isFinite(e.positionLong)?e.positionLong:void 0,altitude:e?.altitude,enhancedAltitude:e?.enhancedAltitude,distance:e?.distance,heart_rate:e?.heartRate,cadence:e?.cadence,speed:e?.speed,enhancedSpeed:e?.enhancedSpeed,power:e?.power})}buildEvent(e){this.writeMesg("event",{timestamp:e.timestamp?e.timestamp:void 0,event:e.event,event_type:e.eventType,event_group:e.eventGroup})}buildActivity(e){this.writeMesg("activity",{timestamp:e.timestamp?e.timestamp:void 0,total_timer_time:e.totalTimerTime,num_sessions:e.numSessions,type:e.type,event:e.event,event_type:e.eventType,local_timestamp:e.localTimestamp?this.parseTimestamp(e.localTimestamp):void 0,event_group:e.eventGroup})}buildCourse(e){this.writeMesg("course",{name:e.name,sport:e.sport})}buildEventsFromLaps(e,s){e.forEach((t,n)=>{t.startTime&&s.push({timestamp:t.startTime,event:"timer",eventType:"start",eventGroup:n}),t.timestamp&&s.push({timestamp:t.timestamp,event:"timer",eventType:n===e.length-1?"stop_all":"stop",eventGroup:n})})}buildActivityFromSession(e,s){s.push({timestamp:e.timestamp,totalTimerTime:e.totalTimerTime,numSessions:1,type:e.sport||this.options.defaultActivity,event:"activity",eventType:"stop",eventGroup:0})}parseTimestamp(e){return typeof e=="number"?e:(0,pn.default)(e).valueOf()}validateRequiredFields(e){if(!e.sessionMesgs||e.sessionMesgs.length===0)throw new Error("FIT file must contain at least one Session")}writeMesg(e,s){let t=Object.fromEntries(Object.entries(s).filter(([o,u])=>u!==void 0));if(Object.keys(t).length===0)return;let n=this.localNum[e];n===void 0&&(n=this.localNum[e]=Object.keys(this.localNum).length);let a=new We(n,e,t),i=this.mesgDefn[n];(!i||!a.isSameDefn(i))&&(this.messages.push(a.defnRecord),this.mesgDefn[n]=a.mesgDefn),this.messages.push(a.dataRecord)}get blob(){let e=[this.header,...this.messages,this.trailer];return new Blob(e,{type:"application/octet-stream"})}get dataLen(){return this.messages.reduce((e,s)=>e+s.byteLength,0)}get dataCrc(){return this.messages.reduce((e,s)=>et(s,e),0)}get header(){let e=new DataView(new ArrayBuffer(fn));return e.setUint8(0,fn),e.setUint8(1,Ha),e.setUint16(2,wa,!0),e.setUint32(4,this.dataLen,!0),e.setUint32(8,va),e.setUint16(12,et(e.buffer.slice(0,12)),!0),e.buffer}get trailer(){let e=new DataView(new ArrayBuffer(2));return e.setUint16(0,this.dataCrc,!0),e.buffer}async encoder(e){return this.encode(e)}};De();var Ua="development",Ba=1,Ma=1;function Ga(l,e){if(!Number.isFinite(l))throw new Error(`${e} must be a finite number.`)}function Ke(l,e){return Ga(l,e),Math.abs(l)<=180?Math.round(l*2147483648/180):Math.round(l)}function Pa(l){if(!l.name||l.name.trim().length===0)throw new Error("Course name is required.");if(!Array.isArray(l.records)||l.records.length===0)throw new Error("Course must contain at least one record point.");let e=l.records.map((t,n)=>{if(t==null)throw new Error(`Course record #${n+1} is missing.`);if(t.timestamp==null)throw new Error(`Course record #${n+1} is missing timestamp.`);return{...t,positionLat:Ke(t.latitude,`records[${n}].latitude`),positionLong:Ke(t.longitude,`records[${n}].longitude`)}}),s=(l.coursePoints??[]).map((t,n)=>{if(t==null)throw new Error(`Course point #${n+1} is missing.`);if(t.timestamp==null)throw new Error(`Course point #${n+1} is missing timestamp.`);return{...t,type:t.type??0,positionLat:Ke(t.latitude,`coursePoints[${n}].latitude`),positionLong:Ke(t.longitude,`coursePoints[${n}].longitude`)}});return{...l,sport:l.sport??2,subSport:l.subSport??0,records:e,coursePoints:s,manufacturer:l.manufacturer??Ua,product:l.product??Ba,serialNumber:l.serialNumber??Ma,timeCreated:l.timeCreated??e[0].timestamp}}function Wa(l){let e=Pa(l),s=e.records[0],t=e.records[e.records.length-1],n=s.timestamp,a=t.timestamp,i=[{mesgNum:0,data:{type:6,manufacturer:e.manufacturer,product:e.product,serialNumber:e.serialNumber,timeCreated:e.timeCreated}},{mesgNum:31,data:{name:e.name,sport:e.sport,subSport:e.subSport}},{mesgNum:19,data:{startTime:n,timestamp:a,startPositionLat:s.positionLat,startPositionLong:s.positionLong,endPositionLat:t.positionLat,endPositionLong:t.positionLong,totalDistance:t.distance}},{mesgNum:21,data:{timestamp:n,event:0,eventType:0}}];return e.records.forEach(o=>{i.push({mesgNum:20,data:{timestamp:o.timestamp,positionLat:o.positionLat,positionLong:o.positionLong,distance:o.distance,altitude:o.altitude,speed:o.speed}})}),e.coursePoints.forEach((o,u)=>{i.push({mesgNum:32,data:{messageIndex:u,timestamp:o.timestamp,positionLat:o.positionLat,positionLong:o.positionLong,distance:o.distance,type:o.type,name:o.name,favorite:o.favorite}})}),i.push({mesgNum:21,data:{timestamp:a,event:0,eventType:4}}),i}function mn(l){let e=new Fe;return Wa(l).forEach(t=>{e.onMesg(t.mesgNum,t.data)}),e.close()}var se=class{constructor(){this.version="1.0.0";this.priority=100}supports(e){return this.supportedTags.includes(e)}async initialize(e){e.metadata.set(`plugin:${this.name}:initialized`,!0)}async destroy(e){e.metadata.delete(`plugin:${this.name}:initialized`)}async validate(e){return!0}parseFloat(e){if(!(typeof e>"u"))return typeof e=="number"?e:typeof e=="string"&&parseFloat(e)||0}parseInt(e){return typeof e=="number"?Math.floor(e):typeof e=="string"&&parseInt(e,10)||0}parseString(e){return String(e||"")}parseBoolean(e){return typeof e=="boolean"?e:typeof e=="string"?e.toLowerCase()==="true":!1}parseDate(e){if(!e)return;let s=new Date(e);return isNaN(s.getTime())?void 0:s}hasRequiredAttributes(e,s){return s.every(t=>e.attributes?.[t])}extractAttributes(e,s,t){e.attributes&&Object.entries(e.attributes).forEach(([n,a])=>{let i=t[n];i&&(s[i]=String(a??""))})}processChildren(e,s,t){e.children?.forEach(n=>{let a=t[n.tag];a&&a(n,s)})}getChildValue(e,s){let t=e.children?.find(n=>n.tag===s);return t?.value?String(t.value):void 0}getChildByTag(e,s){return e.children?.find(t=>t.tag===s)}getChildrenByTag(e,s){return e.children?.filter(t=>t.tag===s)||[]}convertExtensions(e){let s={};return e.children?.forEach(t=>{s[t.tag]=this.convertExtensionContent(t)}),s}convertExtensionContent(e){if(e.children?.length){let s={};return e.children.forEach(t=>{s[t.tag]=this.convertExtensionContent(t)}),s}else return e.value}};var X=class extends se{parseCoordinate(e){let s=this.parseFloat(e);return s===0?void 0:s}parseGPXTime(e){if(!e)return;let s=new Date(e);return isNaN(s.getTime())?void 0:s}extractNumericAttributes(e,s,t){e.attributes&&Object.entries(e.attributes).forEach(([n,a])=>{let i=t[n];i&&i in s&&typeof a<"u"&&(s[i]=this.parseFloat(a))})}};var ke=class extends X{constructor(){super(...arguments);this.name="wpt-converter";this.supportedTags=["wpt","trkpt","rtept"];this.version="1.0.0"}convert(s,t){if(!this.hasRequiredAttributes(s,["lat","lon"])){t.warnings.push(`${this.name}: point without latitude or longitude was ignored`);return}let n={lat:this.parseFloat(s.attributes?.lat),lon:this.parseFloat(s.attributes?.lon)};return this.processChildren(s,n,{ele:(a,i)=>i.ele=this.parseFloat(a.value),time:(a,i)=>i.time=new Date(this.parseString(a.value)),speed:(a,i)=>i.speed=this.parseFloat(a.value),power:(a,i)=>i.power=this.parseFloat(a.value),cadence:(a,i)=>i.cadence=this.parseFloat(a.value),heartRate:(a,i)=>i.heartRate=this.parseFloat(a.value),course:(a,i)=>i.course=this.parseFloat(a.value),name:(a,i)=>i.name=this.parseString(a.value),cmt:(a,i)=>i.cmt=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),src:(a,i)=>i.src=this.parseString(a.value),sym:(a,i)=>i.sym=this.parseString(a.value),type:(a,i)=>i.type=this.parseString(a.value),fix:(a,i)=>i.fix=this.parseString(a.value),sat:(a,i)=>i.sat=this.parseFloat(a.value),hdop:(a,i)=>i.hdop=this.parseFloat(a.value),vdop:(a,i)=>i.vdop=this.parseFloat(a.value),pdop:(a,i)=>i.pdop=this.parseFloat(a.value),ageofdgpsdata:(a,i)=>i.ageofdgpsdata=this.parseFloat(a.value),geoidheight:(a,i)=>i.geoidheight=this.parseFloat(a.value),magvar:(a,i)=>i.magvar=this.parseFloat(a.value),dgpsid:(a,i)=>i.dgpsid=this.parseFloat(a.value),extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");if(u){let p=u.convert(a,t);p&&(this.mapExtensionsToPoint(p,i),i.extensions=p)}},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}mapExtensionsToPoint(s,t){Object.entries(s).forEach(([n,a])=>{if(a!==void 0&&(typeof a=="string"||typeof a=="number")){let i=o=>(Array.isArray(o)?o:[o]).some(p=>{let d=n.toLowerCase(),_=p.toLowerCase();return d===_||d.endsWith(`:${_}`)});i("speed")?t.speed=this.parseFloat(a):i("hr")?t.heartRate=this.parseFloat(a):i(["cad","cadence"])?t.cadence=this.parseFloat(a):i(["PowerInWatts","power"])&&(t.power=this.parseFloat(a))}})}},Ne=class extends X{constructor(){super(...arguments);this.name="rte-converter";this.supportedTags=["rte"]}convert(s,t){let n={rtept:[]};return this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),cmt:(a,i)=>i.cmt=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),src:(a,i)=>i.src=this.parseString(a.value),number:(a,i)=>i.number=this.parseFloat(a.value),type:(a,i)=>i.type=this.parseString(a.value),rtept:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("wpt")?.convert(a,t);u&&i.rtept&&i.rtept.push(u)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}},Xe=class extends X{constructor(){super(...arguments);this.name="trk-converter";this.supportedTags=["trk"]}convert(s,t){let n={trkseg:[]};return this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),cmt:(a,i)=>i.cmt=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),src:(a,i)=>i.src=this.parseString(a.value),number:(a,i)=>i.number=this.parseFloat(a.value),type:(a,i)=>i.type=this.parseString(a.value),trkseg:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("trkseg")?.convert(a,t);u&&i.trkseg&&i.trkseg.push(u)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}},Ye=class extends X{constructor(){super(...arguments);this.name="trkseg-converter";this.supportedTags=["trkseg"]}convert(s,t){let n={trkpt:[]};return this.processChildren(s,n,{trkpt:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("wpt")?.convert(a,t);u&&i.trkpt&&i.trkpt.push(u)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))}}),n}},ze=class extends X{constructor(){super(...arguments);this.name="link-converter";this.supportedTags=["link"]}convert(s,t){let n={};return s.attributes?.href&&(n.href=s.attributes.href),this.processChildren(s,n,{text:(a,i)=>i.text=this.parseString(a.value),type:(a,i)=>i.type=this.parseString(a.value)}),n}},Je=class extends X{constructor(){super(...arguments);this.name="metadata-converter";this.supportedTags=["metadata"]}convert(s,t){let n={};return this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),keywords:(a,i)=>i.keywords=this.parseString(a.value),time:(a,i)=>i.time=new Date(this.parseString(a.value)),author:(a,i)=>{let o=t.metadata.get("decoder");i.author=o?.getConverter("author")?.convert(a,t)},copyright:(a,i)=>{let o=t.metadata.get("decoder");i.copyright=o?.getConverter("copyright")?.convert(a,t)},bounds:(a,i)=>{let o=t.metadata.get("decoder");i.bounds=o?.getConverter("bounds")?.convert(a,t)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}},$e=class extends X{constructor(){super(...arguments);this.name="person-converter";this.supportedTags=["author"]}convert(s,t){let n={};return s.value&&!s.children?.length?(n.name=this.parseString(s.value),n):(this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),email:(a,i)=>{let o=t.metadata.get("decoder");i.email=o?.getConverter("email")?.convert(a,t)},link:(a,i)=>{let o=t.metadata.get("decoder");i.link=o?.getConverter("link")?.convert(a,t)}}),n)}},Qe=class extends X{constructor(){super(...arguments);this.name="email-converter";this.supportedTags=["email"]}convert(s,t){return{id:s.attributes?.id,domain:s.attributes?.domain}}},je=class extends X{constructor(){super(...arguments);this.name="copyright-converter";this.supportedTags=["copyright"]}convert(s,t){let n={};return s.attributes?.author&&(n.author=s.attributes.author),this.processChildren(s,n,{year:(a,i)=>i.year=this.parseString(a.value),license:(a,i)=>i.license=this.parseString(a.value)}),n}},Ze=class extends X{constructor(){super(...arguments);this.name="bounds-converter";this.supportedTags=["bounds"]}convert(s,t){let n={};return this.extractAttributes(s,n,{minlat:"minlat",minlon:"minlon",maxlat:"maxlat",maxlon:"maxlon"}),n}},qe=class extends X{constructor(){super(...arguments);this.name="extensions-converter";this.supportedTags=["extensions"]}convert(s,t){let n={};return s.children?.forEach(a=>{this.flattenExtensionElement(a,n)}),n}flattenExtensionElement(s,t){if(!s.children?.length&&s.value!==void 0){t[s.tag]=this.parseExtensionValue(s.value);return}s.children?.length&&s.children.forEach(n=>{this.flattenExtensionElement(n,t)})}parseExtensionValue(s){if(s===void 0)return;let t=String(s),n=parseFloat(t);return!isNaN(n)&&isFinite(n)?n:t}};var dn=require("htmlparser2");var xe=class{constructor(){this.stage="tokenize"}async process(e){let s=Date.now();if(!e.xmlContent)throw new Error("XML content cannot be empty");let t=[],n=new dn.Parser({onopentag(a,i){t.push({type:"open",tag:a,attributes:i})},ontext(a){let i=a.replace(/\n/g,"").trim();i&&t.push({type:"text",tag:"text",value:i})},onclosetag(a){t.push({type:"close",tag:a})}},{xmlMode:!0});return n.write(e.xmlContent),n.end(),e.tokens=t,e.performance.tokenizeTime=Date.now()-s,e}},es=class{constructor(){this.stage="ast_generate"}async process(e){let s=Date.now();if(!e.tokens)throw new Error("Tokens cannot be empty");let t=[],n,a=null;for(let i of e.tokens)if(i.type==="open"){let o={tag:i.tag,attributes:i.attributes||{},children:[]};n?a&&a.children?.push(o):n=o,t.push(o),a=o}else i.type==="text"&&a?a.value=i.value:i.type==="close"&&(t.pop(),a=t[t.length-1]||null);return e.ast=n,e.performance.astTime=Date.now()-s,e}},ss=class{constructor(e){this.getConverter=e;this.stage="convert"}async process(e){let s=Date.now();if(!e.ast)throw new Error("AST cannot be empty");if(e.ast.tag!=="gpx")throw new Error(`Not a valid GPX document: expected <gpx>, received <${e.ast.tag}>`);let t={};return e.ast.attributes&&Object.entries(e.ast.attributes).forEach(([n,a])=>{n.startsWith("xmlns:")?t[n]=a.replace(/&#39;/g,"'"):n==="xsi:schemaLocation"?t[n]=a.replace(/&#39;/g,"'"):t[n]=a}),e.ast.children?.forEach(n=>{let a=this.getConverter(n.tag);if(!a){e.warnings.push(`Unsupported GPX element "${n.tag}" was ignored`);return}try{let i=a.convert(n,e);i&&this.assignResult(t,n.tag,i)}catch(i){throw e.errors.push(i),new Error(`GPX converter "${a.name}" failed for ${n.tag}: ${i.message}`)}}),e.result=t,e.performance.convertTime=Date.now()-s,e}assignResult(e,s,t){switch(s){case"metadata":e.metadata=t;break;case"wpt":e.wpt||(e.wpt=[]),e.wpt.push(t);break;case"rte":e.rte||(e.rte=[]),e.rte.push(t);break;case"trk":e.trk||(e.trk=[]),e.trk.push(t);break;case"extensions":e.extensions=t;break}}},ts=class{constructor(){this.stage="complete"}async process(e){e.performance.endTime=Date.now();let s=e.performance.endTime-e.performance.startTime;return e.metadata.set("performance",{totalTime:s,tokenizeTime:e.performance.tokenizeTime,astTime:e.performance.astTime,convertTime:e.performance.convertTime}),e}};var ns=class{constructor(){this.converterPlugins=new Map;this.registeredPlugins=new Set;this.middlewarePlugins=[];this.processors=[];this.initialized=!1;this.defaultConvertersRegistered=!1;this.initializePipeline()}initializePipeline(){this.processors=[new xe,new es,new ss(e=>this.getConverter(e)),new ts]}async registerDefaultConverters(){if(this.defaultConvertersRegistered)return;let e=[new ke,new Ne,new Xe,new Ye,new ze,new Je,new $e,new Qe,new je,new Ze,new qe];for(let s of e)s.supportedTags?.forEach(t=>{this.addConverterForTag(t,s)}),this.registeredPlugins.add(s.name);this.defaultConvertersRegistered=!0}addConverterForTag(e,s){this.converterPlugins.has(e)||this.converterPlugins.set(e,[]);let t=this.converterPlugins.get(e);t.push(s),t.sort((n,a)=>(n.priority||100)-(a.priority||100))}async registerConverter(e){if(this.registeredPlugins.has(e.name))throw new Error(`Converter plugin ${e.name} already exists`);e.supportedTags?.forEach(s=>{this.addConverterForTag(s,e)}),this.registeredPlugins.add(e.name)}async registerMiddleware(e){let s=this.middlewarePlugins.findIndex(t=>t.name===e.name);s!==-1?this.middlewarePlugins[s]=e:this.middlewarePlugins.push(e)}getConverter(e){let s=this.converterPlugins.get(e);return s&&s.length>0?s[0]:void 0}getAllConverters(e){return this.converterPlugins.get(e)||[]}unregisterConverter(e){let s;for(let[t,n]of this.converterPlugins){let a=n.findIndex(i=>i.name===e);a!==-1&&(s=n[a],n.splice(a,1),n.length===0&&this.converterPlugins.delete(t))}s&&this.registeredPlugins.delete(e)}unregisterMiddleware(e){let s=this.middlewarePlugins.findIndex(t=>t.name===e);s!==-1&&this.middlewarePlugins.splice(s,1)}listConverters(){return Array.from(this.converterPlugins.keys())}listConverterPlugins(){return Array.from(this.registeredPlugins)}listMiddlewares(){return this.middlewarePlugins.map(e=>e.name)}listProcessors(){return this.processors.map(e=>e.constructor.name)}getConverterDetails(e){let s={};if(e){let t=this.converterPlugins.get(e);t&&(s[e]=t.map(n=>({name:n.name,priority:n.priority||100})))}else for(let[t,n]of this.converterPlugins)s[t]=n.map(a=>({name:a.name,priority:a.priority||100}));return s}getMiddlewareDetails(){return this.middlewarePlugins.map(e=>{let s=[];return e.onTokenize&&s.push("onTokenize"),e.onAstGenerate&&s.push("onAstGenerate"),e.onConvert&&s.push("onConvert"),e.onComplete&&s.push("onComplete"),e.onError&&s.push("onError"),{name:e.name,hooks:s}})}async initialize(){if(this.initialized)return;await this.registerDefaultConverters();let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.initialize?.(e);this.initialized=!0}async destroy(){if(!this.initialized)return;let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.destroy?.(e);this.initialized=!1}createContext(){return{metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},performance:{startTime:Date.now()}}}async executeMiddlewareHook(e,s,t){let n=s;for(let a of this.middlewarePlugins){let i=a[e];if(i)try{n=await i.call(a,n,t)||n}catch(o){t.errors.push(o),await a.onError?.(o,t)}}return n}async parserByBuffer(e){await this.initialize();let s=this.createContext();s.rawData=e,s.xmlContent=e.toString("utf-8"),s.metadata.set("decoder",this);for(let t of this.processors)try{switch(s=await t.process(s),t.stage){case"tokenize":s.tokens&&(s.tokens=await this.executeMiddlewareHook("onTokenize",s.tokens,s));break;case"ast_generate":s.ast&&(s.ast=await this.executeMiddlewareHook("onAstGenerate",s.ast,s));break;case"convert":s.result&&(s.result=await this.executeMiddlewareHook("onConvert",s.result,s));break;case"complete":s.result&&(s.result=await this.executeMiddlewareHook("onComplete",s.result,s));break}}catch(n){s.errors.push(n);for(let a of this.middlewarePlugins)await a.onError?.(n,s);throw new Error(`GPX pipeline stage "${t.stage}" failed: ${n.message}`)}return s.result}convertExtensions(e){let s={},{attributes:t,tag:n,value:a}=e;if(t&&Object.entries(t).forEach(([i,o])=>{s[i]=o}),e?.children?.length)e.children?.forEach(i=>{s[i.tag]=this.convertExtensions(i)});else if(a!==void 0)return a;return s}};var nt=J(require("dayjs"),1),Tn=J(require("dayjs/plugin/utc.js"),1);var st={temperature:"atemp",wtemp:"wtemp",heartRate:"hr",cadence:"cad"};var tt={temperature:"Temperature",Depth:"Depth"};nt.default.extend(Tn.default);var as=class{constructor(e={}){this.formatElevation=e=>{let s=parseFloat(e);return isNaN(s)?e:this.roundTo(s,2).toString()};this.compact=e.compact??!0}async encode(e){let s=this.buildGPXXML(e);return Buffer.from(s,"utf-8")}encodeToString(e){return this.buildGPXXML(e)}buildGPXXML(e){let s=this.buildXMLHeader(e),t=this.buildGPXContent(e),a=`${s}${t}
1
+ "use strict";var En=Object.create;var be=Object.defineProperty;var Sn=Object.getOwnPropertyDescriptor;var On=Object.getOwnPropertyNames;var Fn=Object.getPrototypeOf,Dn=Object.prototype.hasOwnProperty;var N=(l,e)=>()=>(l&&(e=l(l=0)),e);var At=(l,e)=>{for(var s in e)be(l,s,{get:e[s],enumerable:!0})},ct=(l,e,s,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of On(e))!Dn.call(l,n)&&n!==s&&be(l,n,{get:()=>e[n],enumerable:!(t=Sn(e,n))||t.enumerable});return l};var J=(l,e,s)=>(s=l!=null?En(Fn(l)):{},ct(e||!l||!l.__esModule?be(s,"default",{value:l,enumerable:!0}):s,l)),Hn=l=>ct(be({},"__esModule",{value:!0}),l);var Ce,Ws,Q,Ee=N(()=>{Ce=[0,52225,55297,5120,61441,15360,10240,58369,40961,27648,30720,46081,20480,39937,34817,17408],Ws=class l{#t=0;constructor(){}get crc(){return this.#t}#e(e){let s=Ce[this.#t&15];return this.#t=this.#t>>4&4095,this.#t=this.#t^s^Ce[e&15],s=Ce[this.#t&15],this.#t=this.#t>>4&4095,this.#t=this.#t^s^Ce[e>>4&15],this.#t}addBytes(e,s,t){for(let n=s;n<t;n++)this.#t=this.#e(e[n]);return this.#t}static calculateCRC(e,s,t){return new l().addBytes(e,s,t)}},Q=Ws});var Vs,Ks,Et,St=N(()=>{Vs=class{#t=0;#e=0;constructor(e){this.#t=e,this.#e=e}accumulate(e,s){let t=(1<<s)-1;return this.#t+=e-this.#e&t,this.#e=e,this.#t}},Ks=class{#t={};createAccumulatedField(e,s,t){let n=new Vs(t);return this.#t[e]==null&&(this.#t[e]={}),this.#t[e][s]=n,n}accumulate(e,s,t,n){let a=this.#t[e]?.[s];return a==null&&(a=this.createAccumulatedField(e,s,t)),a.accumulate(t,n)}},Et=Ks});var L,Qn,jn,Ot,Zn,qn,xn,ea,sa,ta,Ft,na,Dt,Ht,wt,aa,vt,ia,Ut,r,q=N(()=>{L={ENUM:0,SINT8:1,UINT8:2,SINT16:3,UINT16:4,SINT32:5,UINT32:6,STRING:7,FLOAT32:8,FLOAT64:9,UINT8Z:10,UINT16Z:11,UINT32Z:12,BYTE:13,SINT64:14,UINT64:15,UINT64Z:16},Qn=31,jn={0:{size:1,type:L.ENUM,baseTypeEndianFlag:0,invalid:255},1:{size:1,type:L.SINT8,baseTypeEndianFlag:0,invalid:127},2:{size:1,type:L.UINT8,baseTypeEndianFlag:0,invalid:255},3:{size:2,type:L.SINT16,baseTypeEndianFlag:128,invalid:32767},4:{size:2,type:L.UINT16,baseTypeEndianFlag:128,invalid:65535},5:{size:4,type:L.SINT32,baseTypeEndianFlag:128,invalid:2147483647},6:{size:4,type:L.UINT32,baseTypeEndianFlag:128,invalid:4294967295},7:{size:1,type:L.STRING,baseTypeEndianFlag:0,invalid:0},8:{size:4,type:L.FLOAT32,baseTypeEndianFlag:128,invalid:4294967295},9:{size:8,type:L.FLOAT64,baseTypeEndianFlag:128,invalid:18446744073709552e3},10:{size:1,type:L.UINT8Z,baseTypeEndianFlag:0,invalid:0},11:{size:2,type:L.UINT16Z,baseTypeEndianFlag:128,invalid:0},12:{size:4,type:L.UINT32Z,baseTypeEndianFlag:128,invalid:0},13:{size:1,type:L.BYTE,baseTypeEndianFlag:0,invalid:255},14:{size:8,type:L.SINT64,baseTypeEndianFlag:128,invalid:9223372036854776e3},15:{size:8,type:L.UINT64,baseTypeEndianFlag:128,invalid:18446744073709552e3},16:{size:8,type:L.UINT64Z,baseTypeEndianFlag:128,invalid:0}},Ot=["sint8","uint8","sint16","uint16","sint32","uint32","float32","float64","uint8z","uint16z","uint32z","byte","sint64","uint64","uint64z"],Zn=new Set(Ot),qn={enum:"number",sint8:"number",uint8:"number",sint16:"number",uint16:"number",sint32:"number",uint32:"number",string:"string",float32:"number",float64:"number",uint8z:"number",uint16z:"number",uint32z:"number",byte:"number",sint64:"bigint",uint64:"bigint",uint64z:"bigint"},xn=["sint64","uint64","uint64z"],ea=["float32","float64"],sa={enum:L.UINT8,sint8:L.SINT8,uint8:L.UINT8,sint16:L.SINT16,uint16:L.UINT16,sint32:L.SINT32,uint32:L.UINT32,string:L.STRING,float32:L.FLOAT32,float64:L.FLOAT64,uint8z:L.UINT8Z,uint16z:L.UINT16Z,uint32z:L.UINT32Z,byte:L.BYTE,sint64:L.SINT64,uint64:L.UINT64,uint64z:L.UINT64Z},ta={[L.ENUM]:"enum",[L.SINT8]:"sint8",[L.UINT8]:"uint8",[L.SINT16]:"sint16",[L.UINT16]:"uint16",[L.SINT32]:"sint32",[L.UINT32]:"uint32",[L.STRING]:"string",[L.FLOAT32]:"float32",[L.FLOAT64]:"float64",[L.UINT8Z]:"uint8z",[L.UINT16Z]:"uint16z",[L.UINT32Z]:"uint32z",[L.BYTE]:"byte",[L.SINT64]:"sint64",[L.UINT64]:"uint64",[L.UINT64Z]:"uint64z"},Ft=l=>l==null,na=l=>typeof l=="object",Dt=l=>typeof l=="boolean",Ht=l=>typeof l=="object"&&l instanceof Date,wt=l=>typeof l=="string",aa=l=>typeof l=="bigint",vt=l=>{if(typeof l=="number")return!isNaN(l)&&isFinite(l);if(typeof l=="bigint")return!0;let e=parseFloat(l);return!isNaN(e)&&isFinite(e)},ia=l=>!Ut(l),Ut=l=>!(Ft(l)||!vt(l)&&!Ht(l)&&!wt(l)&&!Dt(l)),r={BaseType:L,BaseTypeMask:Qn,BaseTypeDefinitions:jn,NumericFieldTypes:Ot,NumericFieldTypesSet:Zn,BigIntFieldTypes:xn,FloatingPointFieldTypes:ea,FieldTypeToBaseType:sa,BaseTypeToFieldType:ta,FieldTypeToJsType:qn,isNullOrUndefined:Ft,isObject:na,isBoolean:Dt,isDate:Ht,isString:wt,isBigInt:aa,isNumeric:vt,isNumberStringDateOrBoolean:Ut,isNotNumberStringDateOrBoolean:ia,MAX_FIELD_SIZE:255,FIELD_DEFAULT_SCALE:1,FIELD_DEFAULT_OFFSET:0,MESG_DEFINITION_MASK:64,LOCAL_MESG_NUM_MASK:15,ARCH_LITTLE_ENDIAN:0,DEV_DATA_MASK:32,NULL_TERMINATOR:"\0"}});var ks,Bt,Mt=N(()=>{q();ks=class{#t=null;#e=null;#s=0;#l=0;#n=!1;#a=0;#o=0;#i=0;constructor(e,s=r.BaseType.UINT8){this.#t=Array.isArray(e)?e:[e];let t=r.BaseTypeDefinitions[s].size;this.#l=t*8,this.#n=this.#l>32,this.reset()}get bitsAvailable(){return this.#i}get hasBitsAvailable(){return this.#i>0}reset(){this.#e=null,this.#s=0,this.#i=this.#l*this.#t.length,this.#a=0,this.#o=0}readBit(){this.hasBitsAvailable||this.#p(),this.#e===null&&(this.#e=this.#t,this.#s=this.#t.length-this.#i/this.#l,this.#f()),this.#o>=this.#l&&this.#f();let e;return this.#n?(e=Number(this.#a&1n),this.#a>>=1n):(e=this.#a&1,this.#a>>=1),this.#o++,this.#i--,e}readBits(e){if(e===this.#l&&this.#e===null){this.hasBitsAvailable||this.#p();let t=this.#t.length-this.#i/this.#l,n=this.#t[t];return this.#i-=e,this.#n?Number(BigInt.asUintN(e,n)):e<32?(n&(1<<e)-1)>>>0:n>>>0}if(e<=32){let t=0;for(let n=0;n<e;n++)t|=this.readBit()<<n;return t>>>0}let s=0n;for(let t=0,n=0n;t<e;t++,n++)s|=BigInt(this.readBit())<<n;return Number(s)}#f(){this.#s>=this.#e.length&&this.#p(),this.#a=this.#e[this.#s++],this.#o=0}get array(){return this.#e}#p(e=""){throw Error("FIT Runtime Error no bits available.")}},Bt=ks});var Ns,la,oa,x,re=N(()=>{q();Ns=6310656e5,la=l=>new Date((l??0)*1e3+Ns),oa=l=>(l.getTime()-Ns)/1e3,x={FIT_EPOCH_MS:Ns,convertDateTimeToDate:la,convertDateToDateTime:oa,FitBaseType:r.BaseType,BaseTypeToFieldType:r.BaseTypeToFieldType,FieldTypeToBaseType:r.FieldTypeToBaseType}});var ua,Gt,Pt,de,Wt,Vt=N(()=>{re();ua=(l,e)=>{if(l==null||e==null||l.length==0||e.length==0)return;let s=Gt(l),t=0,n=null;for(let a=0;a<e.length;++a){let i=e[a],o=0,u=0,p=Pt(i.timestamp);n==null&&(n=p),n===p&&(n--,t=t>=1?t-1:0);let T=!0;for(;T&&t<s.length;){let _=s[t];if(_.timestamp>n&&_.timestamp<=p)o+=_.heartRate,u++;else if(_.timestamp>p){if(T=!1,u>0){let R=Math.round(o/u);i.heartRate=R}o=0,u=0,n=p;break}t++}}},Gt=l=>{if(l==null||l.length==0)return[];let a=0,i=null,o=[];return l.forEach(u=>{u==null&&de("HR mesg must not be null");let p=Array.isArray(u.eventTimestamp)?u.eventTimestamp:[u.eventTimestamp],T=Array.isArray(u.filteredBpm)?u.filteredBpm:[u.filteredBpm];u.timestamp!=null&&(i=Pt(u.timestamp),u.fractionalTimestamp!=null&&(i+=u.fractionalTimestamp),p.length==1?a=p[0]:de("anchor HR mesg must have 1 event_timestamp")),i==null||a==null?de("no anchor timestamp received in a HR mesg before delta HR mesgs"):p.length!=T.length&&de("HR mesg with mismatching event timestamp and filtered bpm");for(let _=0;_<p.length;_++){let R=p[_];R<a&&(a-R>4194304?R+=4194304:de("anchor event_timestamp is greater than subsequent event_timestamp. This does not allow for correct delta calculation."));let I={timestamp:i,heartRate:T[_]};if(I.timestamp+=R-a,o.length>0){let h=o[o.length-1],U=Math.abs(I.timestamp-h.timestamp)*1e3,H=1;for(;U>250&&H<=20;){let A={timestamp:h.timestamp,heartRate:h.heartRate};A.timestamp+=.25*H,o.push(A),U-=250,H++}}o.push(I)}}),o},Pt=l=>l instanceof Date?(l.getTime()-x.FIT_EPOCH_MS)/1e3:l,de=(l="")=>{throw Error(`FIT Runtime Error ${l}`.trimEnd())},Wt={mergeHeartRates:ua,expandHeartRates:Gt}});var fa,P,ue=N(()=>{fa={version:{major:21,minor:212,patch:0,type:"Release"},CommonFields:{PartIndex:250,Timestamp:253,MessageIndex:254},messages:{0:{num:0,name:"fileId",messagesKey:"fileIdMesgs",fields:{0:{num:0,name:"type",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},3:{num:3,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeCreated",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"number",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"productName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},49:{num:49,name:"fileCreator",messagesKey:"fileCreatorMesgs",fields:{0:{num:0,name:"softwareVersion",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"hardwareVersion",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},162:{num:162,name:"timestampCorrelation",messagesKey:"timestampCorrelationMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"systemTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"fractionalSystemTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"systemTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},35:{num:35,name:"software",messagesKey:"softwareMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"version",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"partNumber",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},106:{num:106,name:"slaveDevice",messagesKey:"slaveDeviceMesgs",fields:{0:{num:0,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]}}},1:{num:1,name:"capabilities",messagesKey:"capabilitiesMesgs",fields:{0:{num:0,name:"languages",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sports",type:"sportBits0",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"workoutsSupported",type:"workoutCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"connectivitySupported",type:"connectivityCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},37:{num:37,name:"fileCapabilities",messagesKey:"fileCapabilitiesMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"type",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"flags",type:"fileFlags",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"directory",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"maxCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"maxSize",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"bytes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},38:{num:38,name:"mesgCapabilities",messagesKey:"mesgCapabilitiesMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"file",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"countType",type:"mesgCount",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"count",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"numPerFile",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"countType",value:0}]},{name:"maxPerFile",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"countType",value:1}]},{name:"maxPerFileType",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"countType",value:2}]}]}}},39:{num:39,name:"fieldCapabilities",messagesKey:"fieldCapabilitiesMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"file",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"fieldNum",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"count",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},2:{num:2,name:"deviceSettings",messagesKey:"deviceSettingsMesgs",fields:{0:{num:0,name:"activeTimeZone",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"utcOffset",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"timeOffset",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeMode",type:"timeMode",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timeZoneOffset",type:"sint8",baseType:"sint8",array:!0,scale:4,offset:0,units:"hr",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"backlightMode",type:"backlightMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},36:{num:36,name:"activityTrackerEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"clockTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"pagesEnabled",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"moveAlertEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"dateMode",type:"dateMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"displayOrientation",type:"displayOrientation",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"mountingSide",type:"side",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"defaultPage",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"autosyncMinSteps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"steps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"autosyncMinTime",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},80:{num:80,name:"lactateThresholdAutodetectEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"bleAutoUploadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"autoSyncFrequency",type:"autoSyncFrequency",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},90:{num:90,name:"autoActivityDetect",type:"autoActivityDetect",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"numberOfScreens",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"smartNotificationDisplayOrientation",type:"displayOrientation",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},134:{num:134,name:"tapInterface",type:"switch",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},174:{num:174,name:"tapSensitivity",type:"tapSensitivity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},3:{num:3,name:"userProfile",messagesKey:"userProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"friendlyName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"gender",type:"gender",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"age",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"years",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"height",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"weight",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"language",type:"language",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"elevSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"weightSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"restingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"defaultMaxRunningHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"defaultMaxBikingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"defaultMaxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"hrSetting",type:"displayHeart",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"speedSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"distSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"powerSetting",type:"displayPower",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"activityClass",type:"activityClass",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"positionSetting",type:"displayPosition",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"temperatureSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"localId",type:"userLocalId",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"globalId",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"wakeTime",type:"localtimeIntoDay",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"sleepTime",type:"localtimeIntoDay",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"heightSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"userRunningStepLength",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"userWalkingStepLength",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"depthSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"diveCount",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},4:{num:4,name:"hrmProfile",messagesKey:"hrmProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"hrmAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"logHrv",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"hrmAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},5:{num:5,name:"sdmProfile",messagesKey:"sdmProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sdmAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"sdmCalFactor",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"odometer",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"speedSource",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sdmAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"odometerRollover",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},6:{num:6,name:"bikeProfile",messagesKey:"bikeProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"odometer",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"bikeSpdAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"bikeCadAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"bikeSpdcadAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"bikePowerAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"customWheelsize",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"autoWheelsize",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"bikeWeight",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"powerCalFactor",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"autoWheelCal",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"autoPowerZero",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"id",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"spdEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"cadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"spdcadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"powerEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"crankLength",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:-110,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"bikeSpdAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"bikeCadAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"bikeSpdcadAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"bikePowerAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"odometerRollover",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"frontGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"frontGear",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"rearGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"rearGear",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"shimanoDi2Enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},127:{num:127,name:"connectivity",messagesKey:"connectivityMesgs",fields:{0:{num:0,name:"bluetoothEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"bluetoothLeEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"antEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"liveTrackingEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"weatherConditionsEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"weatherAlertsEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"autoActivityUploadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"courseDownloadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"workoutDownloadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"gpsEphemerisDownloadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"incidentDetectionEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"grouptrackEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},159:{num:159,name:"watchfaceSettings",messagesKey:"watchfaceSettingsMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"mode",type:"watchfaceMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"layout",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"digitalLayout",type:"digitalWatchfaceLayout",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"mode",value:0}]},{name:"analogLayout",type:"analogWatchfaceLayout",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"mode",value:1}]}]}}},188:{num:188,name:"ohrSettings",messagesKey:"ohrSettingsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"enabled",type:"switch",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},216:{num:216,name:"timeInZone",messagesKey:"timeInZoneMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"referenceMesg",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"referenceIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"hrZoneHighBoundary",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"speedZoneHighBoundary",type:"uint16",baseType:"uint16",array:!0,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"cadenceZoneHighBondary",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"powerZoneHighBoundary",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"hrCalcType",type:"hrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"restingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"thresholdHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"pwrCalcType",type:"pwrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"functionalThresholdPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},7:{num:7,name:"zonesTarget",messagesKey:"zonesTargetMesgs",fields:{1:{num:1,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"thresholdHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"functionalThresholdPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"hrCalcType",type:"hrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"pwrCalcType",type:"pwrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},12:{num:12,name:"sport",messagesKey:"sportMesgs",fields:{0:{num:0,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},8:{num:8,name:"hrZone",messagesKey:"hrZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"highBpm",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},53:{num:53,name:"speedZone",messagesKey:"speedZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"highValue",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},131:{num:131,name:"cadenceZone",messagesKey:"cadenceZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"highValue",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},9:{num:9,name:"powerZone",messagesKey:"powerZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"highValue",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},10:{num:10,name:"metZone",messagesKey:"metZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"highBpm",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"calories",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kcal / min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"fatCalories",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"kcal / min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},13:{num:13,name:"trainingSettings",messagesKey:"trainingSettingsMesgs",fields:{31:{num:31,name:"targetDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"targetSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"targetTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},153:{num:153,name:"preciseTargetSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e6,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},258:{num:258,name:"diveSettings",messagesKey:"diveSettingsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"model",type:"tissueModelType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"gfLow",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"gfHigh",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"waterType",type:"waterType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"waterDensity",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kg/m^3",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"po2Warn",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"po2Critical",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"po2Deco",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"safetyStopEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"bottomDepth",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"bottomTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"apneaCountdownEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"apneaCountdownTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"backlightMode",type:"diveBacklightMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"backlightBrightness",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"backlightTimeout",type:"backlightTimeout",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"repeatDiveInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"safetyStopTime",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"heartRateSourceType",type:"sourceType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"heartRateSource",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"heartRateAntplusDeviceType",type:"antplusDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"heartRateSourceType",value:1}]},{name:"heartRateLocalDeviceType",type:"localDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"heartRateSourceType",value:5}]}]},21:{num:21,name:"travelGas",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"ccrLowSetpointSwitchMode",type:"ccrSetpointSwitchMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"ccrLowSetpoint",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"ccrLowSetpointDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"ccrHighSetpointSwitchMode",type:"ccrSetpointSwitchMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"ccrHighSetpoint",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"ccrHighSetpointDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"gasConsumptionDisplay",type:"gasConsumptionRateType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"upKeyEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},35:{num:35,name:"diveSounds",type:"tone",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},36:{num:36,name:"lastStopMultiple",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"noFlyTimeMode",type:"noFlyTimeMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},262:{num:262,name:"diveAlarm",messagesKey:"diveAlarmMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"depth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"alarmType",type:"diveAlarmType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sound",type:"tone",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"diveTypes",type:"subSport",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"id",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"popupEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"triggerOnDescent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"triggerOnAscent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"repeating",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"speed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"mps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},393:{num:393,name:"diveApneaAlarm",messagesKey:"diveApneaAlarmMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"depth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"alarmType",type:"diveAlarmType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sound",type:"tone",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"diveTypes",type:"subSport",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"id",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"popupEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"triggerOnDescent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"triggerOnAscent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"repeating",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"speed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"mps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},259:{num:259,name:"diveGas",messagesKey:"diveGasMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"heliumContent",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"oxygenContent",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"status",type:"diveGasStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"mode",type:"diveGasMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},15:{num:15,name:"goal",messagesKey:"goalMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startDate",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"endDate",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"type",type:"goal",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"value",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"repeat",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"targetValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"recurrence",type:"goalRecurrence",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"recurrenceValue",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"source",type:"goalSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},34:{num:34,name:"activity",messagesKey:"activityMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"numSessions",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"type",type:"activity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},18:{num:18,name:"session",messagesKey:"sessionMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"totalReps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"reps",bits:[],components:[],hasComponents:!1,map:[{name:"subSport",value:20},{name:"sport",value:62}]},{name:"totalStrides",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strides",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1},{name:"sport",value:11}]},{name:"totalStrokes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:2},{name:"sport",value:5},{name:"sport",value:15},{name:"sport",value:37}]},{name:"totalPushes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"pushes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:66},{name:"sport",value:65}]}]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"totalFatCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["124"],isAccumulated:!1,hasComponents:!0,subFields:[]},15:{num:15,name:"maxSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["125"],isAccumulated:!1,hasComponents:!0,subFields:[]},16:{num:16,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"avgCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"avgRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},19:{num:19,name:"maxCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"maxRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},20:{num:20,name:"avgPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"maxPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"totalTrainingEffect",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"firstLapIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"numLaps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"trigger",type:"sessionTrigger",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"necLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"necLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"swcLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"swcLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"numLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"normalizedPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},35:{num:35,name:"trainingStressScore",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"tss",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},36:{num:36,name:"intensityFactor",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"if",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"leftRightBalance",type:"leftRightBalance100",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"avgStrokeCount",type:"uint32",baseType:"uint32",array:!1,scale:10,offset:0,units:"strokes/lap",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"avgStrokeDistance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},43:{num:43,name:"swimStroke",type:"swimStroke",baseType:"enum",array:!1,scale:1,offset:0,units:"swim_stroke",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"poolLength",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"thresholdPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"poolLengthUnit",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"numActiveLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"totalWork",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"J",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"avgAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["126"],isAccumulated:!1,hasComponents:!0,subFields:[]},50:{num:50,name:"maxAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["128"],isAccumulated:!1,hasComponents:!0,subFields:[]},51:{num:51,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"avgGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"avgPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"avgNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"maxPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"maxNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"avgTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"maxTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},60:{num:60,name:"avgPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},61:{num:61,name:"avgNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"maxPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},63:{num:63,name:"maxNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},64:{num:64,name:"minHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},65:{num:65,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},66:{num:66,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},67:{num:67,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},68:{num:68,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},69:{num:69,name:"avgLapTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"bestLapIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"minAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["127"],isAccumulated:!1,hasComponents:!0,subFields:[]},78:{num:78,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"playerScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"opponentName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"strokeCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"zoneCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"maxBallSpeed",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},88:{num:88,name:"avgBallSpeed",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"avgVerticalOscillation",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},90:{num:90,name:"avgStanceTimePercent",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"avgStanceTime",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"avgFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"maxFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"totalFractionalCycles",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"avgTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},96:{num:96,name:"minTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},97:{num:97,name:"maxTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},98:{num:98,name:"avgSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},99:{num:99,name:"minSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},100:{num:100,name:"maxSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},101:{num:101,name:"avgLeftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},102:{num:102,name:"avgRightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},103:{num:103,name:"avgLeftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},104:{num:104,name:"avgRightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},105:{num:105,name:"avgCombinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},110:{num:110,name:"sportProfileName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},111:{num:111,name:"sportIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},112:{num:112,name:"timeStanding",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},113:{num:113,name:"standCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},114:{num:114,name:"avgLeftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},115:{num:115,name:"avgRightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},116:{num:116,name:"avgLeftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},117:{num:117,name:"avgLeftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},118:{num:118,name:"avgRightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},119:{num:119,name:"avgRightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},120:{num:120,name:"avgPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},121:{num:121,name:"maxPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},122:{num:122,name:"avgCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},123:{num:123,name:"maxCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},124:{num:124,name:"enhancedAvgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},125:{num:125,name:"enhancedMaxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},126:{num:126,name:"enhancedAvgAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},127:{num:127,name:"enhancedMinAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},128:{num:128,name:"enhancedMaxAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},129:{num:129,name:"avgLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},130:{num:130,name:"maxLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},131:{num:131,name:"levBatteryConsumption",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},132:{num:132,name:"avgVerticalRatio",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},133:{num:133,name:"avgStanceTimeBalance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},134:{num:134,name:"avgStepLength",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},137:{num:137,name:"totalAnaerobicTrainingEffect",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},139:{num:139,name:"avgVam",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},140:{num:140,name:"avgDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},141:{num:141,name:"maxDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},142:{num:142,name:"surfaceInterval",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},143:{num:143,name:"startCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},144:{num:144,name:"endCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},145:{num:145,name:"startN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},146:{num:146,name:"endN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},147:{num:147,name:"avgRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["169"],isAccumulated:!1,hasComponents:!0,subFields:[]},148:{num:148,name:"maxRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["170"],isAccumulated:!1,hasComponents:!0,subFields:[]},149:{num:149,name:"minRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["180"],isAccumulated:!1,hasComponents:!0,subFields:[]},150:{num:150,name:"minTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},155:{num:155,name:"o2Toxicity",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"OTUs",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},156:{num:156,name:"diveNumber",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},168:{num:168,name:"trainingLoadPeak",type:"sint32",baseType:"sint32",array:!1,scale:65536,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},169:{num:169,name:"enhancedAvgRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},170:{num:170,name:"enhancedMaxRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},180:{num:180,name:"enhancedMinRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},181:{num:181,name:"totalGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},182:{num:182,name:"totalFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},183:{num:183,name:"jumpCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},186:{num:186,name:"avgGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},187:{num:187,name:"avgFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},192:{num:192,name:"workoutFeel",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},193:{num:193,name:"workoutRpe",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},194:{num:194,name:"avgSpo2",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},195:{num:195,name:"avgStress",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},196:{num:196,name:"metabolicCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},197:{num:197,name:"sdrrHrv",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"mS",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},198:{num:198,name:"rmssdHrv",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"mS",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},199:{num:199,name:"totalFractionalAscent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},200:{num:200,name:"totalFractionalDescent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},208:{num:208,name:"avgCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},209:{num:209,name:"minCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},210:{num:210,name:"maxCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},19:{num:19,name:"lap",messagesKey:"lapMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"totalStrides",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strides",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1},{name:"sport",value:11}]},{name:"totalStrokes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:2},{name:"sport",value:5},{name:"sport",value:15},{name:"sport",value:37}]}]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"totalFatCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["110"],isAccumulated:!1,hasComponents:!0,subFields:[]},14:{num:14,name:"maxSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["111"],isAccumulated:!1,hasComponents:!0,subFields:[]},15:{num:15,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"avgCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"avgRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},18:{num:18,name:"maxCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"maxRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},19:{num:19,name:"avgPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"maxPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"intensity",type:"intensity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"lapTrigger",type:"lapTrigger",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"numLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"normalizedPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"leftRightBalance",type:"leftRightBalance100",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},35:{num:35,name:"firstLengthIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"avgStrokeDistance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"swimStroke",type:"swimStroke",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"numActiveLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"totalWork",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"J",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"avgAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["112"],isAccumulated:!1,hasComponents:!0,subFields:[]},43:{num:43,name:"maxAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["114"],isAccumulated:!1,hasComponents:!0,subFields:[]},44:{num:44,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"avgGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"avgPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"avgNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"maxPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"maxNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},50:{num:50,name:"avgTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},51:{num:51,name:"maxTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"avgPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"avgNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"maxPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"maxNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},60:{num:60,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},61:{num:61,name:"repetitionNum",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"minAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["113"],isAccumulated:!1,hasComponents:!0,subFields:[]},63:{num:63,name:"minHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"wktStepIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},74:{num:74,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},75:{num:75,name:"strokeCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},76:{num:76,name:"zoneCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},77:{num:77,name:"avgVerticalOscillation",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"avgStanceTimePercent",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},79:{num:79,name:"avgStanceTime",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},80:{num:80,name:"avgFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},81:{num:81,name:"maxFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"totalFractionalCycles",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"playerScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"avgTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"minTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"maxTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"avgSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},88:{num:88,name:"minSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"maxSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"avgLeftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"avgRightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"avgLeftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"avgRightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"avgCombinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},98:{num:98,name:"timeStanding",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},99:{num:99,name:"standCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},100:{num:100,name:"avgLeftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},101:{num:101,name:"avgRightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},102:{num:102,name:"avgLeftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},103:{num:103,name:"avgLeftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},104:{num:104,name:"avgRightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},105:{num:105,name:"avgRightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},106:{num:106,name:"avgPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},107:{num:107,name:"maxPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},108:{num:108,name:"avgCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},109:{num:109,name:"maxCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},110:{num:110,name:"enhancedAvgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},111:{num:111,name:"enhancedMaxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},112:{num:112,name:"enhancedAvgAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},113:{num:113,name:"enhancedMinAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},114:{num:114,name:"enhancedMaxAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},115:{num:115,name:"avgLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},116:{num:116,name:"maxLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},117:{num:117,name:"levBatteryConsumption",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},118:{num:118,name:"avgVerticalRatio",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},119:{num:119,name:"avgStanceTimeBalance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},120:{num:120,name:"avgStepLength",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},121:{num:121,name:"avgVam",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},122:{num:122,name:"avgDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},123:{num:123,name:"maxDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},124:{num:124,name:"minTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},136:{num:136,name:"enhancedAvgRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},137:{num:137,name:"enhancedMaxRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},147:{num:147,name:"avgRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["136"],isAccumulated:!1,hasComponents:!0,subFields:[]},148:{num:148,name:"maxRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["137"],isAccumulated:!1,hasComponents:!0,subFields:[]},149:{num:149,name:"totalGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},150:{num:150,name:"totalFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},151:{num:151,name:"jumpCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},153:{num:153,name:"avgGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},154:{num:154,name:"avgFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},156:{num:156,name:"totalFractionalAscent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},157:{num:157,name:"totalFractionalDescent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},158:{num:158,name:"avgCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},159:{num:159,name:"minCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},160:{num:160,name:"maxCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},101:{num:101,name:"length",messagesKey:"lengthMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"totalStrokes",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"strokes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"swimStroke",type:"swimStroke",baseType:"enum",array:!1,scale:1,offset:0,units:"swim_stroke",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"avgSwimmingCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"strokes/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"lengthType",type:"lengthType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"playerScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"strokeCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"zoneCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"enhancedAvgRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"enhancedMaxRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"avgRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["22"],isAccumulated:!1,hasComponents:!0,subFields:[]},25:{num:25,name:"maxRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["23"],isAccumulated:!1,hasComponents:!0,subFields:[]}}},20:{num:20,name:"record",messagesKey:"recordMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"altitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["78"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"heartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"cadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},6:{num:6,name:"speed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["73"],isAccumulated:!1,hasComponents:!0,subFields:[]},7:{num:7,name:"power",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"compressedSpeedDistance",type:"byte",baseType:"byte",array:!0,scale:[100,16],offset:[0,0],units:["m/s","m"],bits:[12,12],components:["6","5"],isAccumulated:!1,hasComponents:!0,subFields:[]},9:{num:9,name:"grade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"resistance",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"timeFromCourse",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"cycleLength",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"temperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"speed1s",type:"uint8",baseType:"uint8",array:!0,scale:16,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"cycles",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:["cycles"],bits:[8],components:["19"],isAccumulated:!1,hasComponents:!0,subFields:[]},19:{num:19,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},28:{num:28,name:"compressedAccumulatedPower",type:"uint16",baseType:"uint16",array:!1,scale:[1],offset:[0],units:["watts"],bits:[16],components:["29"],isAccumulated:!1,hasComponents:!0,subFields:[]},29:{num:29,name:"accumulatedPower",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},30:{num:30,name:"leftRightBalance",type:"leftRightBalance",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"verticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"calories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"verticalOscillation",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"stanceTimePercent",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"stanceTime",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"activityType",type:"activityType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},43:{num:43,name:"leftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"rightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"leftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"rightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"combinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"time128",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"strokeType",type:"strokeType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},50:{num:50,name:"zone",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},51:{num:51,name:"ballSpeed",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"cadence256",type:"uint16",baseType:"uint16",array:!1,scale:256,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"fractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"totalHemoglobinConc",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"totalHemoglobinConcMin",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"totalHemoglobinConcMax",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"saturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"saturatedHemoglobinPercentMin",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"saturatedHemoglobinPercentMax",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},67:{num:67,name:"leftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},68:{num:68,name:"rightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},69:{num:69,name:"leftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"leftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"rightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},72:{num:72,name:"rightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},73:{num:73,name:"enhancedSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"enhancedAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},81:{num:81,name:"batterySoc",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"motorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"verticalRatio",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"stanceTimeBalance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"stepLength",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"cycleLength16",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"absolutePressure",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"Pa",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"depth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"nextStopDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"nextStopTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"timeToSurface",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},96:{num:96,name:"ndlTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},97:{num:97,name:"cnsLoad",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},98:{num:98,name:"n2Load",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},99:{num:99,name:"respirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:["s"],bits:[8],components:["108"],isAccumulated:!1,hasComponents:!0,subFields:[]},108:{num:108,name:"enhancedRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},114:{num:114,name:"grit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},115:{num:115,name:"flow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},116:{num:116,name:"currentStress",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},117:{num:117,name:"ebikeTravelRange",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"km",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},118:{num:118,name:"ebikeBatteryLevel",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},119:{num:119,name:"ebikeAssistMode",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"depends on sensor",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},120:{num:120,name:"ebikeAssistLevelPercent",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},123:{num:123,name:"airTimeRemaining",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},124:{num:124,name:"pressureSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},125:{num:125,name:"volumeSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},126:{num:126,name:"rmv",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},127:{num:127,name:"ascentRate",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},129:{num:129,name:"po2",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},139:{num:139,name:"coreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},21:{num:21,name:"event",messagesKey:"eventMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"data16",type:"uint16",baseType:"uint16",array:!1,scale:[1],offset:[0],units:[""],bits:[16],components:["3"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"data",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"timerTrigger",type:"timerTrigger",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:0}]},{name:"coursePointIndex",type:"messageIndex",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:10}]},{name:"batteryLevel",type:"uint16",baseType:"uint16",scale:1e3,offset:0,units:"V",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:11}]},{name:"virtualPartnerSpeed",type:"uint16",baseType:"uint16",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:12}]},{name:"hrHighAlert",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"bpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:13}]},{name:"hrLowAlert",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"bpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:14}]},{name:"speedHighAlert",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:15}]},{name:"speedLowAlert",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:16}]},{name:"cadHighAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:17}]},{name:"cadLowAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:18}]},{name:"powerHighAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"watts",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:19}]},{name:"powerLowAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"watts",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:20}]},{name:"timeDurationAlert",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:23}]},{name:"distanceDurationAlert",type:"uint32",baseType:"uint32",scale:100,offset:0,units:"m",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:24}]},{name:"calorieDurationAlert",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"calories",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:25}]},{name:"fitnessEquipmentState",type:"fitnessEquipmentState",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:27}]},{name:"sportPoint",type:"uint32",baseType:"uint32",scale:[1,1],offset:[0,0],units:["",""],bits:[16,16],components:["7","8"],hasComponents:!0,map:[{name:"event",value:33}]},{name:"gearChangeData",type:"uint32",baseType:"uint32",scale:[1,1,1,1],offset:[0,0,0,0],units:["","","",""],bits:[8,8,8,8],components:["11","12","9","10"],hasComponents:!0,map:[{name:"event",value:42},{name:"event",value:43}]},{name:"riderPosition",type:"riderPositionType",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:44}]},{name:"commTimeout",type:"commTimeoutType",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:47}]},{name:"diveAlert",type:"diveAlert",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:56}]},{name:"autoActivityDetectDuration",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"min",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:54}]},{name:"radarThreatAlert",type:"uint32",baseType:"uint32",scale:[1,1,10,10],offset:[0,0,0,0],units:["","","",""],bits:[8,8,8,8],components:["21","22","23","24"],hasComponents:!0,map:[{name:"event",value:75}]}]},4:{num:4,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"score",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"frontGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"frontGear",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"rearGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"rearGear",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"activityType",type:"activityType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"startTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"autoActivityDetectStartTimestamp",type:"dateTime",baseType:"uint32",scale:1,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:54}]}]},21:{num:21,name:"radarThreatLevelMax",type:"radarThreatLevelType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"radarThreatCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"radarThreatAvgApproachSpeed",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"radarThreatMaxApproachSpeed",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},23:{num:23,name:"deviceInfo",messagesKey:"deviceInfoMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"deviceType",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"bleDeviceType",type:"bleDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:3}]},{name:"antplusDeviceType",type:"antplusDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:1}]},{name:"antDeviceType",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:0}]},{name:"localDeviceType",type:"localDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:5}]}]},2:{num:2,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},5:{num:5,name:"softwareVersion",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"hardwareVersion",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"cumOperatingTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"batteryVoltage",type:"uint16",baseType:"uint16",array:!1,scale:256,offset:0,units:"V",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"batteryStatus",type:"batteryStatus",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"sensorPosition",type:"bodyLocation",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"descriptor",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"antTransmissionType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"antDeviceNumber",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"antNetwork",type:"antNetwork",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"sourceType",type:"sourceType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"productName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"batteryLevel",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},375:{num:375,name:"deviceAuxBatteryInfo",messagesKey:"deviceAuxBatteryInfoMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"batteryVoltage",type:"uint16",baseType:"uint16",array:!1,scale:256,offset:0,units:"V",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"batteryStatus",type:"batteryStatus",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"batteryIdentifier",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},72:{num:72,name:"trainingFile",messagesKey:"trainingFileMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"type",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},3:{num:3,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeCreated",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},128:{num:128,name:"weatherConditions",messagesKey:"weatherConditionsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"weatherReport",type:"weatherReport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"temperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"condition",type:"weatherStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"windDirection",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"windSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"precipitationProbability",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"temperatureFeelsLike",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"relativeHumidity",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"location",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"observedAtTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"observedLocationLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"observedLocationLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"dayOfWeek",type:"dayOfWeek",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"highTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"lowTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},129:{num:129,name:"weatherAlert",messagesKey:"weatherAlertMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"reportId",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"issueTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"expireTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"severity",type:"weatherSeverity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"type",type:"weatherSevereType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},160:{num:160,name:"gpsMetadata",messagesKey:"gpsMetadataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"enhancedAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"enhancedSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"heading",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"utcTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"velocity",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},161:{num:161,name:"cameraEvent",messagesKey:"cameraEventMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"cameraEventType",type:"cameraEventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"cameraFileUuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"cameraOrientation",type:"cameraOrientationType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},164:{num:164,name:"gyroscopeData",messagesKey:"gyroscopeDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"gyroX",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"gyroY",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"gyroZ",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"calibratedGyroX",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"calibratedGyroY",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"calibratedGyroZ",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},165:{num:165,name:"accelerometerData",messagesKey:"accelerometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"accelX",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"accelY",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"accelZ",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"calibratedAccelX",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"g",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"calibratedAccelY",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"g",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"calibratedAccelZ",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"g",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"compressedCalibratedAccelX",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"compressedCalibratedAccelY",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"compressedCalibratedAccelZ",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},208:{num:208,name:"magnetometerData",messagesKey:"magnetometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"magX",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"magY",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"magZ",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"calibratedMagX",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"G",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"calibratedMagY",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"G",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"calibratedMagZ",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"G",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},209:{num:209,name:"barometerData",messagesKey:"barometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"baroPres",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"Pa",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},167:{num:167,name:"threeDSensorCalibration",messagesKey:"threeDSensorCalibrationMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensorType",type:"sensorType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"calibrationFactor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"accelCalFactor",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"g",bits:[],components:[],hasComponents:!1,map:[{name:"sensorType",value:0}]},{name:"gyroCalFactor",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"deg/s",bits:[],components:[],hasComponents:!1,map:[{name:"sensorType",value:1}]}]},2:{num:2,name:"calibrationDivisor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"levelShift",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"offsetCal",type:"sint32",baseType:"sint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"orientationMatrix",type:"sint32",baseType:"sint32",array:!0,scale:65535,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},210:{num:210,name:"oneDSensorCalibration",messagesKey:"oneDSensorCalibrationMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensorType",type:"sensorType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"calibrationFactor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"baroCalFactor",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"Pa",bits:[],components:[],hasComponents:!1,map:[{name:"sensorType",value:3}]}]},2:{num:2,name:"calibrationDivisor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"levelShift",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"offsetCal",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},169:{num:169,name:"videoFrame",messagesKey:"videoFrameMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"frameNumber",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},174:{num:174,name:"obdiiData",messagesKey:"obdiiDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"timeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"pid",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"rawData",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"pidDataSize",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"systemTime",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"startTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"startTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},177:{num:177,name:"nmeaSentence",messagesKey:"nmeaSentenceMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sentence",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},178:{num:178,name:"aviationAttitude",messagesKey:"aviationAttitudeMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"systemTime",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"pitch",type:"sint16",baseType:"sint16",array:!0,scale:10430.38,offset:0,units:"radians",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"roll",type:"sint16",baseType:"sint16",array:!0,scale:10430.38,offset:0,units:"radians",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"accelLateral",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"m/s^2",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"accelNormal",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"m/s^2",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"turnRate",type:"sint16",baseType:"sint16",array:!0,scale:1024,offset:0,units:"radians/second",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"stage",type:"attitudeStage",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"attitudeStageComplete",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"track",type:"uint16",baseType:"uint16",array:!0,scale:10430.38,offset:0,units:"radians",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"validity",type:"attitudeValidity",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},184:{num:184,name:"video",messagesKey:"videoMesgs",fields:{0:{num:0,name:"url",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"hostingProvider",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"duration",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},185:{num:185,name:"videoTitle",messagesKey:"videoTitleMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"messageCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"text",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},186:{num:186,name:"videoDescription",messagesKey:"videoDescriptionMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"messageCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"text",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},187:{num:187,name:"videoClip",messagesKey:"videoClipMesgs",fields:{0:{num:0,name:"clipNumber",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"startTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"endTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"endTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"clipStart",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"clipEnd",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},225:{num:225,name:"set",messagesKey:"setMesgs",fields:{254:{num:254,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"duration",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"repetitions",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"weight",type:"uint16",baseType:"uint16",array:!1,scale:16,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"setType",type:"setType",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"category",type:"exerciseCategory",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"categorySubtype",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"weightDisplayUnit",type:"fitBaseUnit",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"wktStepIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},285:{num:285,name:"jump",messagesKey:"jumpMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"distance",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"height",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"rotations",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"hangTime",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"score",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"speed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["8"],isAccumulated:!1,hasComponents:!0,subFields:[]},8:{num:8,name:"enhancedSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},312:{num:312,name:"split",messagesKey:"splitMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"splitType",type:"splitType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"avgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"maxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"avgVertSpeed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"endTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"totalCalories",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},74:{num:74,name:"startElevation",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},110:{num:110,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},313:{num:313,name:"splitSummary",messagesKey:"splitSummaryMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"splitType",type:"splitType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"numSplits",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"avgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"maxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"avgVertSpeed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"totalCalories",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},65:{num:65,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},77:{num:77,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},317:{num:317,name:"climbPro",messagesKey:"climbProMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"climbProEvent",type:"climbProEvent",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"climbNumber",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"climbCategory",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"currentDist",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},206:{num:206,name:"fieldDescription",messagesKey:"fieldDescriptionMesgs",fields:{0:{num:0,name:"developerDataIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"fieldDefinitionNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"fitBaseTypeId",type:"fitBaseType",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"fieldName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"array",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"components",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"scale",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"offset",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"units",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"bits",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"accumulate",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"fitBaseUnitId",type:"fitBaseUnit",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"nativeMesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"nativeFieldNum",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},207:{num:207,name:"developerDataId",messagesKey:"developerDataIdMesgs",fields:{0:{num:0,name:"developerId",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"applicationId",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"manufacturerId",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"developerDataIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"applicationVersion",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},31:{num:31,name:"course",messagesKey:"courseMesgs",fields:{4:{num:4,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"capabilities",type:"courseCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},32:{num:32,name:"coursePoint",messagesKey:"coursePointMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"type",type:"coursePoint",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"favorite",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},148:{num:148,name:"segmentId",messagesKey:"segmentIdMesgs",fields:{0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"uuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"userProfilePrimaryKey",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"deviceId",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"defaultRaceLeader",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"deleteStatus",type:"segmentDeleteStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"selectionType",type:"segmentSelectionType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},149:{num:149,name:"segmentLeaderboardEntry",messagesKey:"segmentLeaderboardEntryMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"type",type:"segmentLeaderboardType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"groupPrimaryKey",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"activityId",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"segmentTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"activityIdString",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},150:{num:150,name:"segmentPoint",messagesKey:"segmentPointMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"altitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["6"],isAccumulated:!1,hasComponents:!0,subFields:[]},5:{num:5,name:"leaderTime",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"enhancedAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},142:{num:142,name:"segmentLap",messagesKey:"segmentLapMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"totalStrokes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:2}]}]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"totalFatCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"maxSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"avgCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"maxCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"avgPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"maxPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"necLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"necLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"swcLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"swcLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"normalizedPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"leftRightBalance",type:"leftRightBalance100",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"totalWork",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"J",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"avgAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["91"],isAccumulated:!1,hasComponents:!0,subFields:[]},35:{num:35,name:"maxAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["92"],isAccumulated:!1,hasComponents:!0,subFields:[]},36:{num:36,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"avgGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"avgPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"avgNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"maxPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"maxNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"avgTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},43:{num:43,name:"maxTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"avgPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"avgNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"maxPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"maxNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},50:{num:50,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},51:{num:51,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"repetitionNum",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"minAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["93"],isAccumulated:!1,hasComponents:!0,subFields:[]},55:{num:55,name:"minHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"wktStepIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"sportEvent",type:"sportEvent",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"avgLeftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},60:{num:60,name:"avgRightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},61:{num:61,name:"avgLeftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"avgRightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},63:{num:63,name:"avgCombinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},64:{num:64,name:"status",type:"segmentLapStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},65:{num:65,name:"uuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},66:{num:66,name:"avgFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},67:{num:67,name:"maxFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},68:{num:68,name:"totalFractionalCycles",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},69:{num:69,name:"frontGearShiftCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"rearGearShiftCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"timeStanding",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},72:{num:72,name:"standCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},73:{num:73,name:"avgLeftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},74:{num:74,name:"avgRightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},75:{num:75,name:"avgLeftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},76:{num:76,name:"avgLeftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},77:{num:77,name:"avgRightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"avgRightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},79:{num:79,name:"avgPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},80:{num:80,name:"maxPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},81:{num:81,name:"avgCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"maxCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"totalGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"totalFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"avgGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"avgFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"totalFractionalAscent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},90:{num:90,name:"totalFractionalDescent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"enhancedAvgAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"enhancedMaxAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"enhancedMinAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},151:{num:151,name:"segmentFile",messagesKey:"segmentFileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"fileUuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"userProfilePrimaryKey",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"leaderType",type:"segmentLeaderboardType",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"leaderGroupPrimaryKey",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"leaderActivityId",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"leaderActivityIdString",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"defaultRaceLeader",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},26:{num:26,name:"workout",messagesKey:"workoutMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"capabilities",type:"workoutCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"numValidSteps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"wktName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"poolLength",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"poolLengthUnit",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"wktDescription",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},158:{num:158,name:"workoutSession",messagesKey:"workoutSessionMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"numValidSteps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"firstStepIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"poolLength",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"poolLengthUnit",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},27:{num:27,name:"workoutStep",messagesKey:"workoutStepMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"wktStepName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"durationType",type:"wktStepDuration",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"durationValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"durationTime",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:0},{name:"durationType",value:28}]},{name:"durationDistance",type:"uint32",baseType:"uint32",scale:100,offset:0,units:"m",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:1}]},{name:"durationHr",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:2},{name:"durationType",value:3}]},{name:"durationCalories",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"calories",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:4}]},{name:"durationStep",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:6},{name:"durationType",value:7},{name:"durationType",value:8},{name:"durationType",value:9},{name:"durationType",value:10},{name:"durationType",value:11},{name:"durationType",value:12},{name:"durationType",value:13}]},{name:"durationPower",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:14},{name:"durationType",value:15}]},{name:"durationReps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:29}]}]},3:{num:3,name:"targetType",type:"wktStepTarget",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"targetValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"targetSpeedZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:0}]},{name:"targetHrZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:1}]},{name:"targetCadenceZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:3}]},{name:"targetPowerZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:4}]},{name:"repeatSteps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:6}]},{name:"repeatTime",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:7}]},{name:"repeatDistance",type:"uint32",baseType:"uint32",scale:100,offset:0,units:"m",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:8}]},{name:"repeatCalories",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"calories",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:9}]},{name:"repeatHr",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:10},{name:"durationType",value:11}]},{name:"repeatPower",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:12},{name:"durationType",value:13}]},{name:"targetStrokeType",type:"swimStroke",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:11}]}]},5:{num:5,name:"customTargetValueLow",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"customTargetSpeedLow",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:0}]},{name:"customTargetHeartRateLow",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:1}]},{name:"customTargetCadenceLow",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:3}]},{name:"customTargetPowerLow",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:4}]}]},6:{num:6,name:"customTargetValueHigh",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"customTargetSpeedHigh",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:0}]},{name:"customTargetHeartRateHigh",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:1}]},{name:"customTargetCadenceHigh",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:3}]},{name:"customTargetPowerHigh",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:4}]}]},7:{num:7,name:"intensity",type:"intensity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"notes",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"equipment",type:"workoutEquipment",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"exerciseCategory",type:"exerciseCategory",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"exerciseName",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"exerciseWeight",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"weightDisplayUnit",type:"fitBaseUnit",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"secondaryTargetType",type:"wktStepTarget",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"secondaryTargetValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"secondaryTargetSpeedZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:0}]},{name:"secondaryTargetHrZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:1}]},{name:"secondaryTargetCadenceZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:3}]},{name:"secondaryTargetPowerZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:4}]},{name:"secondaryTargetStrokeType",type:"swimStroke",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:11}]}]},21:{num:21,name:"secondaryCustomTargetValueLow",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"secondaryCustomTargetSpeedLow",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:0}]},{name:"secondaryCustomTargetHeartRateLow",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:1}]},{name:"secondaryCustomTargetCadenceLow",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:3}]},{name:"secondaryCustomTargetPowerLow",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:4}]}]},22:{num:22,name:"secondaryCustomTargetValueHigh",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"secondaryCustomTargetSpeedHigh",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:0}]},{name:"secondaryCustomTargetHeartRateHigh",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:1}]},{name:"secondaryCustomTargetCadenceHigh",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:3}]},{name:"secondaryCustomTargetPowerHigh",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:4}]}]}}},264:{num:264,name:"exerciseTitle",messagesKey:"exerciseTitleMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"exerciseCategory",type:"exerciseCategory",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"exerciseName",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"wktStepName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},28:{num:28,name:"schedule",messagesKey:"scheduleMesgs",fields:{0:{num:0,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},2:{num:2,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"timeCreated",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"completed",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"type",type:"schedule",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"scheduledTime",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},33:{num:33,name:"totals",messagesKey:"totalsMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timerTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"calories",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"elapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sessions",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"sportIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},30:{num:30,name:"weightScale",messagesKey:"weightScaleMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"weight",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"percentFat",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"percentHydration",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"visceralFatMass",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"boneMass",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"muscleMass",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"basalMet",type:"uint16",baseType:"uint16",array:!1,scale:4,offset:0,units:"kcal/day",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"physiqueRating",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"activeMet",type:"uint16",baseType:"uint16",array:!1,scale:4,offset:0,units:"kcal/day",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"metabolicAge",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"years",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"visceralFatRating",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"userProfileIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"bmi",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kg/m^2",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},51:{num:51,name:"bloodPressure",messagesKey:"bloodPressureMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"systolicPressure",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"diastolicPressure",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"meanArterialPressure",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"map3SampleMean",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"mapMorningValues",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"mapEveningValues",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"heartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"heartRateType",type:"hrType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"status",type:"bpStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"userProfileIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},103:{num:103,name:"monitoringInfo",messagesKey:"monitoringInfoMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"activityType",type:"activityType",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"cyclesToDistance",type:"uint16",baseType:"uint16",array:!0,scale:5e3,offset:0,units:"m/cycle",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"cyclesToCalories",type:"uint16",baseType:"uint16",array:!0,scale:5e3,offset:0,units:"kcal/cycle",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"restingMetabolicRate",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal / day",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},55:{num:55,name:"monitoring",messagesKey:"monitoringMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"calories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"cycles",type:"uint32",baseType:"uint32",array:!1,scale:2,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"steps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"steps",bits:[],components:[],hasComponents:!1,map:[{name:"activityType",value:6},{name:"activityType",value:1}]},{name:"strokes",type:"uint32",baseType:"uint32",scale:2,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"activityType",value:2},{name:"activityType",value:5}]}]},4:{num:4,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"activityType",type:"activityType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"activitySubtype",type:"activitySubtype",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"activityLevel",type:"activityLevel",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"distance16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"100 * m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"cycles16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"2 * cycles (steps)",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"activeTime16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"temperature",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"temperatureMin",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"temperatureMax",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"activityTime",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"activeCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"currentActivityTypeIntensity",type:"byte",baseType:"byte",array:!1,scale:[1,1],offset:[0,0],units:["",""],bits:[5,3],components:["5","28"],isAccumulated:!1,hasComponents:!0,subFields:[]},25:{num:25,name:"timestampMin8",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"timestamp16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"heartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"intensity",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"durationMin",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"duration",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"ascent",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"descent",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"moderateActivityMinutes",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"vigorousActivityMinutes",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"pushes",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},211:{num:211,name:"monitoringHrData",messagesKey:"monitoringHrDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"restingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"currentDayRestingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},269:{num:269,name:"spo2Data",messagesKey:"spo2DataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"readingSpo2",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"readingConfidence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"mode",type:"spo2MeasurementType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},132:{num:132,name:"hr",messagesKey:"hrMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time256",type:"uint8",baseType:"uint8",array:!1,scale:[256],offset:[0],units:["s"],bits:[8],components:["0"],isAccumulated:!1,hasComponents:!0,subFields:[]},6:{num:6,name:"filteredBpm",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"eventTimestamp",type:"uint32",baseType:"uint32",array:!0,scale:1024,offset:0,units:"s",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},10:{num:10,name:"eventTimestamp12",type:"byte",baseType:"byte",array:!0,scale:[1024,1024,1024,1024,1024,1024,1024,1024,1024,1024],offset:[0,0,0,0,0,0,0,0,0,0],units:["s","","","","","","","","",""],bits:[12,12,12,12,12,12,12,12,12,12],components:["9","9","9","9","9","9","9","9","9","9"],isAccumulated:!1,hasComponents:!0,subFields:[]}}},227:{num:227,name:"stressLevel",messagesKey:"stressLevelMesgs",fields:{0:{num:0,name:"stressLevelValue",type:"sint16",baseType:"sint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"stressLevelTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},229:{num:229,name:"maxMetData",messagesKey:"maxMetDataMesgs",fields:{0:{num:0,name:"updateTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"vo2Max",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mL/kg/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"maxMetCategory",type:"maxMetCategory",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"calibratedData",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"hrSource",type:"maxMetHeartRateSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"speedSource",type:"maxMetSpeedSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},314:{num:314,name:"hsaBodyBatteryData",messagesKey:"hsaBodyBatteryDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"level",type:"sint8",baseType:"sint8",array:!0,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"charged",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"uncharged",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},315:{num:315,name:"hsaEvent",messagesKey:"hsaEventMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"eventId",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},302:{num:302,name:"hsaAccelerometerData",messagesKey:"hsaAccelerometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"samplingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"accelX",type:"sint16",baseType:"sint16",array:!0,scale:1.024,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"accelY",type:"sint16",baseType:"sint16",array:!0,scale:1.024,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"accelZ",type:"sint16",baseType:"sint16",array:!0,scale:1.024,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timestamp32k",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},376:{num:376,name:"hsaGyroscopeData",messagesKey:"hsaGyroscopeDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"samplingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"1/32768 s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"gyroX",type:"sint16",baseType:"sint16",array:!0,scale:28.57143,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"gyroY",type:"sint16",baseType:"sint16",array:!0,scale:28.57143,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"gyroZ",type:"sint16",baseType:"sint16",array:!0,scale:28.57143,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timestamp32k",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"1/32768 s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},304:{num:304,name:"hsaStepData",messagesKey:"hsaStepDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"steps",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"steps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},305:{num:305,name:"hsaSpo2Data",messagesKey:"hsaSpo2DataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"readingSpo2",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"confidence",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},306:{num:306,name:"hsaStressData",messagesKey:"hsaStressDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"stressLevel",type:"sint8",baseType:"sint8",array:!0,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},307:{num:307,name:"hsaRespirationData",messagesKey:"hsaRespirationDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"respirationRate",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},308:{num:308,name:"hsaHeartRateData",messagesKey:"hsaHeartRateDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"status",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"heartRate",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},389:{num:389,name:"hsaConfigurationData",messagesKey:"hsaConfigurationDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"data",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"dataSize",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},409:{num:409,name:"hsaWristTemperatureData",messagesKey:"hsaWristTemperatureDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"value",type:"uint16",baseType:"uint16",array:!0,scale:1e3,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},145:{num:145,name:"memoGlob",messagesKey:"memoGlobMesgs",fields:{250:{num:250,name:"partIndex",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"memo",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"parentIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"fieldNum",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"data",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},275:{num:275,name:"sleepLevel",messagesKey:"sleepLevelMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sleepLevel",type:"sleepLevel",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},82:{num:82,name:"antChannelId",messagesKey:"antChannelIdMesgs",fields:{0:{num:0,name:"channelNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"deviceType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"deviceNumber",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"transmissionType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},80:{num:80,name:"antRx",messagesKey:"antRxMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgId",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"mesgData",type:"byte",baseType:"byte",array:!0,scale:[1,1,1,1,1,1,1,1,1],offset:[0,0,0,0,0,0,0,0,0],units:["","","","","","","","",""],bits:[8,8,8,8,8,8,8,8,8],components:["3","4","4","4","4","4","4","4","4"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"channelNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"data",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},81:{num:81,name:"antTx",messagesKey:"antTxMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgId",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"mesgData",type:"byte",baseType:"byte",array:!0,scale:[1,1,1,1,1,1,1,1,1],offset:[0,0,0,0,0,0,0,0,0],units:["","","","","","","","",""],bits:[8,8,8,8,8,8,8,8,8],components:["3","4","4","4","4","4","4","4","4"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"channelNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"data",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},200:{num:200,name:"exdScreenConfiguration",messagesKey:"exdScreenConfigurationMesgs",fields:{0:{num:0,name:"screenIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"fieldCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"layout",type:"exdLayout",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"screenEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},201:{num:201,name:"exdDataFieldConfiguration",messagesKey:"exdDataFieldConfigurationMesgs",fields:{0:{num:0,name:"screenIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"conceptField",type:"byte",baseType:"byte",array:!1,scale:[1,1],offset:[0,0],units:["",""],bits:[4,4],components:["2","3"],isAccumulated:!1,hasComponents:!0,subFields:[]},2:{num:2,name:"fieldId",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"conceptCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"displayType",type:"exdDisplayType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"title",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},202:{num:202,name:"exdDataConceptConfiguration",messagesKey:"exdDataConceptConfigurationMesgs",fields:{0:{num:0,name:"screenIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"conceptField",type:"byte",baseType:"byte",array:!1,scale:[1,1],offset:[0,0],units:["",""],bits:[4,4],components:["2","3"],isAccumulated:!1,hasComponents:!0,subFields:[]},2:{num:2,name:"fieldId",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"conceptIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"dataPage",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"conceptKey",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"scaling",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"dataUnits",type:"exdDataUnits",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"qualifier",type:"exdQualifiers",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"descriptor",type:"exdDescriptors",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"isSigned",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},268:{num:268,name:"diveSummary",messagesKey:"diveSummaryMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"referenceMesg",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"referenceIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"avgDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"maxDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"surfaceInterval",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"startCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"endCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"startN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"endN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"o2Toxicity",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"OTUs",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"diveNumber",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"bottomTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"avgPressureSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"avgVolumeSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"avgRmv",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"descentTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"ascentTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"avgAscentRate",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"avgDescentRate",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"maxAscentRate",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"maxDescentRate",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"hangTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},289:{num:289,name:"aadAccelFeatures",messagesKey:"aadAccelFeaturesMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"time",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"energyTotal",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"zeroCrossCnt",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"instance",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeAboveThreshold",type:"uint16",baseType:"uint16",array:!1,scale:25,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},78:{num:78,name:"hrv",messagesKey:"hrvMesgs",fields:{0:{num:0,name:"time",type:"uint16",baseType:"uint16",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},290:{num:290,name:"beatIntervals",messagesKey:"beatIntervalsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},370:{num:370,name:"hrvStatusSummary",messagesKey:"hrvStatusSummaryMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"weeklyAverage",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"lastNightAverage",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"lastNight5MinHigh",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"baselineLowUpper",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"baselineBalancedLower",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"baselineBalancedUpper",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"status",type:"hrvStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},371:{num:371,name:"hrvValue",messagesKey:"hrvValueMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"value",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},372:{num:372,name:"rawBbi",messagesKey:"rawBbiMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"data",type:"uint16",baseType:"uint16",array:!0,scale:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],offset:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],units:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],bits:[14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1],components:["2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4"],isAccumulated:!1,hasComponents:!0,subFields:[]},2:{num:2,name:"time",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"quality",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"gap",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},297:{num:297,name:"respirationRate",messagesKey:"respirationRateMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"respirationRate",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},387:{num:387,name:"chronoShotSession",messagesKey:"chronoShotSessionMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"minSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"maxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"avgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"shotCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"projectileType",type:"projectileType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"grainWeight",type:"uint32",baseType:"uint32",array:!1,scale:10,offset:0,units:"gr",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"standardDeviation",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},388:{num:388,name:"chronoShotData",messagesKey:"chronoShotDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"shotSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"shotNum",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},319:{num:319,name:"tankUpdate",messagesKey:"tankUpdateMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensor",type:"antChannelId",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"pressure",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},323:{num:323,name:"tankSummary",messagesKey:"tankSummaryMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensor",type:"antChannelId",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"startPressure",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"endPressure",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"volumeUsed",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"L",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},346:{num:346,name:"sleepAssessment",messagesKey:"sleepAssessmentMesgs",fields:{0:{num:0,name:"combinedAwakeScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"awakeTimeScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"awakeningsCountScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"deepSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sleepDurationScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"lightSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"overallSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"sleepQualityScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"sleepRecoveryScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"remSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"sleepRestlessnessScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"awakeningsCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"interruptionsScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"averageStressDuringSleep",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},470:{num:470,name:"sleepDisruptionSeverityPeriod",messagesKey:"sleepDisruptionSeverityPeriodMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"severity",type:"sleepDisruptionSeverity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},471:{num:471,name:"sleepDisruptionOvernightSeverity",messagesKey:"sleepDisruptionOvernightSeverityMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"severity",type:"sleepDisruptionSeverity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},412:{num:412,name:"napEvent",messagesKey:"napEventMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"seconds",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"startTimezoneOffset",type:"sint16",baseType:"sint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"endTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"seconds",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"endTimezoneOffset",type:"sint16",baseType:"sint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"feedback",type:"napPeriodFeedback",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"isDeleted",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"source",type:"napSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"updateTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},398:{num:398,name:"skinTempOvernight",messagesKey:"skinTempOvernightMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"averageDeviation",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"average7DayDeviation",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"nightlyValue",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},105:{num:105,name:"pad",messagesKey:"padMesgs",fields:{}}},types:{file:{1:"device",2:"settings",3:"sport",4:"activity",5:"workout",6:"course",7:"schedules",9:"weight",10:"totals",11:"goals",14:"bloodPressure",15:"monitoringA",20:"activitySummary",28:"monitoringDaily",32:"monitoringB",34:"segment",35:"segmentList",40:"exdConfiguration",247:"mfgRangeMin",254:"mfgRangeMax"},mesgNum:{0:"fileId",1:"capabilities",2:"deviceSettings",3:"userProfile",4:"hrmProfile",5:"sdmProfile",6:"bikeProfile",7:"zonesTarget",8:"hrZone",9:"powerZone",10:"metZone",12:"sport",13:"trainingSettings",15:"goal",18:"session",19:"lap",20:"record",21:"event",23:"deviceInfo",26:"workout",27:"workoutStep",28:"schedule",30:"weightScale",31:"course",32:"coursePoint",33:"totals",34:"activity",35:"software",37:"fileCapabilities",38:"mesgCapabilities",39:"fieldCapabilities",49:"fileCreator",51:"bloodPressure",53:"speedZone",55:"monitoring",72:"trainingFile",78:"hrv",80:"antRx",81:"antTx",82:"antChannelId",101:"length",103:"monitoringInfo",105:"pad",106:"slaveDevice",127:"connectivity",128:"weatherConditions",129:"weatherAlert",131:"cadenceZone",132:"hr",142:"segmentLap",145:"memoGlob",148:"segmentId",149:"segmentLeaderboardEntry",150:"segmentPoint",151:"segmentFile",158:"workoutSession",159:"watchfaceSettings",160:"gpsMetadata",161:"cameraEvent",162:"timestampCorrelation",164:"gyroscopeData",165:"accelerometerData",167:"threeDSensorCalibration",169:"videoFrame",174:"obdiiData",177:"nmeaSentence",178:"aviationAttitude",184:"video",185:"videoTitle",186:"videoDescription",187:"videoClip",188:"ohrSettings",200:"exdScreenConfiguration",201:"exdDataFieldConfiguration",202:"exdDataConceptConfiguration",206:"fieldDescription",207:"developerDataId",208:"magnetometerData",209:"barometerData",210:"oneDSensorCalibration",211:"monitoringHrData",216:"timeInZone",225:"set",227:"stressLevel",229:"maxMetData",258:"diveSettings",259:"diveGas",262:"diveAlarm",264:"exerciseTitle",268:"diveSummary",269:"spo2Data",275:"sleepLevel",285:"jump",289:"aadAccelFeatures",290:"beatIntervals",297:"respirationRate",302:"hsaAccelerometerData",304:"hsaStepData",305:"hsaSpo2Data",306:"hsaStressData",307:"hsaRespirationData",308:"hsaHeartRateData",312:"split",313:"splitSummary",314:"hsaBodyBatteryData",315:"hsaEvent",317:"climbPro",319:"tankUpdate",323:"tankSummary",346:"sleepAssessment",370:"hrvStatusSummary",371:"hrvValue",372:"rawBbi",375:"deviceAuxBatteryInfo",376:"hsaGyroscopeData",387:"chronoShotSession",388:"chronoShotData",389:"hsaConfigurationData",393:"diveApneaAlarm",398:"skinTempOvernight",409:"hsaWristTemperatureData",412:"napEvent",470:"sleepDisruptionSeverityPeriod",471:"sleepDisruptionOvernightSeverity",65280:"mfgRangeMin",65534:"mfgRangeMax"},checksum:{0:"clear",1:"ok"},fileFlags:{2:"read",4:"write",8:"erase"},mesgCount:{0:"numPerFile",1:"maxPerFile",2:"maxPerFileType"},dateTime:{268435456:"min"},localDateTime:{268435456:"min"},messageIndex:{32768:"selected",28672:"reserved",4095:"mask"},deviceIndex:{0:"creator"},gender:{0:"female",1:"male"},language:{0:"english",1:"french",2:"italian",3:"german",4:"spanish",5:"croatian",6:"czech",7:"danish",8:"dutch",9:"finnish",10:"greek",11:"hungarian",12:"norwegian",13:"polish",14:"portuguese",15:"slovakian",16:"slovenian",17:"swedish",18:"russian",19:"turkish",20:"latvian",21:"ukrainian",22:"arabic",23:"farsi",24:"bulgarian",25:"romanian",26:"chinese",27:"japanese",28:"korean",29:"taiwanese",30:"thai",31:"hebrew",32:"brazilianPortuguese",33:"indonesian",34:"malaysian",35:"vietnamese",36:"burmese",37:"mongolian",254:"custom"},languageBits0:{1:"english",2:"french",4:"italian",8:"german",16:"spanish",32:"croatian",64:"czech",128:"danish"},languageBits1:{1:"dutch",2:"finnish",4:"greek",8:"hungarian",16:"norwegian",32:"polish",64:"portuguese",128:"slovakian"},languageBits2:{1:"slovenian",2:"swedish",4:"russian",8:"turkish",16:"latvian",32:"ukrainian",64:"arabic",128:"farsi"},languageBits3:{1:"bulgarian",2:"romanian",4:"chinese",8:"japanese",16:"korean",32:"taiwanese",64:"thai",128:"hebrew"},languageBits4:{1:"brazilianPortuguese",2:"indonesian",4:"malaysian",8:"vietnamese",16:"burmese",32:"mongolian"},timeZone:{0:"almaty",1:"bangkok",2:"bombay",3:"brasilia",4:"cairo",5:"capeVerdeIs",6:"darwin",7:"eniwetok",8:"fiji",9:"hongKong",10:"islamabad",11:"kabul",12:"magadan",13:"midAtlantic",14:"moscow",15:"muscat",16:"newfoundland",17:"samoa",18:"sydney",19:"tehran",20:"tokyo",21:"usAlaska",22:"usAtlantic",23:"usCentral",24:"usEastern",25:"usHawaii",26:"usMountain",27:"usPacific",28:"other",29:"auckland",30:"kathmandu",31:"europeWesternWet",32:"europeCentralCet",33:"europeEasternEet",34:"jakarta",35:"perth",36:"adelaide",37:"brisbane",38:"tasmania",39:"iceland",40:"amsterdam",41:"athens",42:"barcelona",43:"berlin",44:"brussels",45:"budapest",46:"copenhagen",47:"dublin",48:"helsinki",49:"lisbon",50:"london",51:"madrid",52:"munich",53:"oslo",54:"paris",55:"prague",56:"reykjavik",57:"rome",58:"stockholm",59:"vienna",60:"warsaw",61:"zurich",62:"quebec",63:"ontario",64:"manitoba",65:"saskatchewan",66:"alberta",67:"britishColumbia",68:"boise",69:"boston",70:"chicago",71:"dallas",72:"denver",73:"kansasCity",74:"lasVegas",75:"losAngeles",76:"miami",77:"minneapolis",78:"newYork",79:"newOrleans",80:"phoenix",81:"santaFe",82:"seattle",83:"washingtonDc",84:"usArizona",85:"chita",86:"ekaterinburg",87:"irkutsk",88:"kaliningrad",89:"krasnoyarsk",90:"novosibirsk",91:"petropavlovskKamchatskiy",92:"samara",93:"vladivostok",94:"mexicoCentral",95:"mexicoMountain",96:"mexicoPacific",97:"capeTown",98:"winkhoek",99:"lagos",100:"riyahd",101:"venezuela",102:"australiaLh",103:"santiago",253:"manual",254:"automatic"},displayMeasure:{0:"metric",1:"statute",2:"nautical"},displayHeart:{0:"bpm",1:"max",2:"reserve"},displayPower:{0:"watts",1:"percentFtp"},displayPosition:{0:"degree",1:"degreeMinute",2:"degreeMinuteSecond",3:"austrianGrid",4:"britishGrid",5:"dutchGrid",6:"hungarianGrid",7:"finnishGrid",8:"germanGrid",9:"icelandicGrid",10:"indonesianEquatorial",11:"indonesianIrian",12:"indonesianSouthern",13:"indiaZone0",14:"indiaZoneIA",15:"indiaZoneIB",16:"indiaZoneIIA",17:"indiaZoneIIB",18:"indiaZoneIIIA",19:"indiaZoneIIIB",20:"indiaZoneIVA",21:"indiaZoneIVB",22:"irishTransverse",23:"irishGrid",24:"loran",25:"maidenheadGrid",26:"mgrsGrid",27:"newZealandGrid",28:"newZealandTransverse",29:"qatarGrid",30:"modifiedSwedishGrid",31:"swedishGrid",32:"southAfricanGrid",33:"swissGrid",34:"taiwanGrid",35:"unitedStatesGrid",36:"utmUpsGrid",37:"westMalayan",38:"borneoRso",39:"estonianGrid",40:"latvianGrid",41:"swedishRef99Grid"},switch:{0:"off",1:"on",2:"auto"},sport:{0:"generic",1:"running",2:"cycling",3:"transition",4:"fitnessEquipment",5:"swimming",6:"basketball",7:"soccer",8:"tennis",9:"americanFootball",10:"training",11:"walking",12:"crossCountrySkiing",13:"alpineSkiing",14:"snowboarding",15:"rowing",16:"mountaineering",17:"hiking",18:"multisport",19:"paddling",20:"flying",21:"eBiking",22:"motorcycling",23:"boating",24:"driving",25:"golf",26:"hangGliding",27:"horsebackRiding",28:"hunting",29:"fishing",30:"inlineSkating",31:"rockClimbing",32:"sailing",33:"iceSkating",34:"skyDiving",35:"snowshoeing",36:"snowmobiling",37:"standUpPaddleboarding",38:"surfing",39:"wakeboarding",40:"waterSkiing",41:"kayaking",42:"rafting",43:"windsurfing",44:"kitesurfing",45:"tactical",46:"jumpmaster",47:"boxing",48:"floorClimbing",49:"baseball",53:"diving",56:"shooting",58:"winterSport",59:"grinding",62:"hiit",63:"videoGaming",64:"racket",65:"wheelchairPushWalk",66:"wheelchairPushRun",67:"meditation",68:"paraSport",69:"discGolf",70:"teamSport",71:"cricket",72:"rugby",73:"hockey",74:"lacrosse",75:"volleyball",76:"waterTubing",77:"wakesurfing",78:"waterSport",79:"archery",80:"mixedMartialArts",81:"motorSports",82:"snorkeling",83:"dance",84:"jumpRope",85:"poolApnea",86:"mobility",87:"geocaching",88:"canoeing",254:"all"},sportBits0:{1:"generic",2:"running",4:"cycling",8:"transition",16:"fitnessEquipment",32:"swimming",64:"basketball",128:"soccer"},sportBits1:{1:"tennis",2:"americanFootball",4:"training",8:"walking",16:"crossCountrySkiing",32:"alpineSkiing",64:"snowboarding",128:"rowing"},sportBits2:{1:"mountaineering",2:"hiking",4:"multisport",8:"paddling",16:"flying",32:"eBiking",64:"motorcycling",128:"boating"},sportBits3:{1:"driving",2:"golf",4:"hangGliding",8:"horsebackRiding",16:"hunting",32:"fishing",64:"inlineSkating",128:"rockClimbing"},sportBits4:{1:"sailing",2:"iceSkating",4:"skyDiving",8:"snowshoeing",16:"snowmobiling",32:"standUpPaddleboarding",64:"surfing",128:"wakeboarding"},sportBits5:{1:"waterSkiing",2:"kayaking",4:"rafting",8:"windsurfing",16:"kitesurfing",32:"tactical",64:"jumpmaster",128:"boxing"},sportBits6:{1:"floorClimbing"},subSport:{0:"generic",1:"treadmill",2:"street",3:"trail",4:"track",5:"spin",6:"indoorCycling",7:"road",8:"mountain",9:"downhill",10:"recumbent",11:"cyclocross",12:"handCycling",13:"trackCycling",14:"indoorRowing",15:"elliptical",16:"stairClimbing",17:"lapSwimming",18:"openWater",19:"flexibilityTraining",20:"strengthTraining",21:"warmUp",22:"match",23:"exercise",24:"challenge",25:"indoorSkiing",26:"cardioTraining",27:"indoorWalking",28:"eBikeFitness",29:"bmx",30:"casualWalking",31:"speedWalking",32:"bikeToRunTransition",33:"runToBikeTransition",34:"swimToBikeTransition",35:"atv",36:"motocross",37:"backcountry",38:"resort",39:"rcDrone",40:"wingsuit",41:"whitewater",42:"skateSkiing",43:"yoga",44:"pilates",45:"indoorRunning",46:"gravelCycling",47:"eBikeMountain",48:"commuting",49:"mixedSurface",50:"navigate",51:"trackMe",52:"map",53:"singleGasDiving",54:"multiGasDiving",55:"gaugeDiving",56:"apneaDiving",57:"apneaHunting",58:"virtualActivity",59:"obstacle",62:"breathing",63:"ccrDiving",65:"sailRace",66:"expedition",67:"ultra",68:"indoorClimbing",69:"bouldering",70:"hiit",71:"indoorGrinding",72:"huntingWithDogs",73:"amrap",74:"emom",75:"tabata",77:"esport",78:"triathlon",79:"duathlon",80:"brick",81:"swimRun",82:"adventureRace",83:"truckerWorkout",84:"pickleball",85:"padel",86:"indoorWheelchairWalk",87:"indoorWheelchairRun",88:"indoorHandCycling",90:"field",91:"ice",92:"ultimate",93:"platform",94:"squash",95:"badminton",96:"racquetball",97:"tableTennis",98:"overland",99:"trollingMotor",110:"flyCanopy",111:"flyParaglide",112:"flyParamotor",113:"flyPressurized",114:"flyNavigate",115:"flyTimer",116:"flyAltimeter",117:"flyWx",118:"flyVfr",119:"flyIfr",121:"dynamicApnea",123:"enduro",124:"rucking",125:"rally",126:"poolTriathlon",127:"eBikeEnduro",254:"all"},sportEvent:{0:"uncategorized",1:"geocaching",2:"fitness",3:"recreation",4:"race",5:"specialEvent",6:"training",7:"transportation",8:"touring"},activity:{0:"manual",1:"autoMultiSport"},intensity:{0:"active",1:"rest",2:"warmup",3:"cooldown",4:"recovery",5:"interval",6:"other"},sessionTrigger:{0:"activityEnd",1:"manual",2:"autoMultiSport",3:"fitnessEquipment"},autolapTrigger:{0:"time",1:"distance",2:"positionStart",3:"positionLap",4:"positionWaypoint",5:"positionMarked",6:"off",13:"autoSelect"},lapTrigger:{0:"manual",1:"time",2:"distance",3:"positionStart",4:"positionLap",5:"positionWaypoint",6:"positionMarked",7:"sessionEnd",8:"fitnessEquipment"},timeMode:{0:"hour12",1:"hour24",2:"military",3:"hour12WithSeconds",4:"hour24WithSeconds",5:"utc"},backlightMode:{0:"off",1:"manual",2:"keyAndMessages",3:"autoBrightness",4:"smartNotifications",5:"keyAndMessagesNight",6:"keyAndMessagesAndSmartNotifications"},dateMode:{0:"dayMonth",1:"monthDay"},backlightTimeout:{0:"infinite"},event:{0:"timer",3:"workout",4:"workoutStep",5:"powerDown",6:"powerUp",7:"offCourse",8:"session",9:"lap",10:"coursePoint",11:"battery",12:"virtualPartnerPace",13:"hrHighAlert",14:"hrLowAlert",15:"speedHighAlert",16:"speedLowAlert",17:"cadHighAlert",18:"cadLowAlert",19:"powerHighAlert",20:"powerLowAlert",21:"recoveryHr",22:"batteryLow",23:"timeDurationAlert",24:"distanceDurationAlert",25:"calorieDurationAlert",26:"activity",27:"fitnessEquipment",28:"length",32:"userMarker",33:"sportPoint",36:"calibration",42:"frontGearChange",43:"rearGearChange",44:"riderPositionChange",45:"elevHighAlert",46:"elevLowAlert",47:"commTimeout",54:"autoActivityDetect",56:"diveAlert",57:"diveGasSwitched",71:"tankPressureReserve",72:"tankPressureCritical",73:"tankLost",75:"radarThreatAlert",76:"tankBatteryLow",81:"tankPodConnected",82:"tankPodDisconnected"},eventType:{0:"start",1:"stop",2:"consecutiveDepreciated",3:"marker",4:"stopAll",5:"beginDepreciated",6:"endDepreciated",7:"endAllDepreciated",8:"stopDisable",9:"stopDisableAll"},timerTrigger:{0:"manual",1:"auto",2:"fitnessEquipment"},fitnessEquipmentState:{0:"ready",1:"inUse",2:"paused",3:"unknown"},tone:{0:"off",1:"tone",2:"vibrate",3:"toneAndVibrate"},autoscroll:{0:"none",1:"slow",2:"medium",3:"fast"},activityClass:{127:"level",100:"levelMax",128:"athlete"},hrZoneCalc:{0:"custom",1:"percentMaxHr",2:"percentHrr",3:"percentLthr"},pwrZoneCalc:{0:"custom",1:"percentFtp"},wktStepDuration:{0:"time",1:"distance",2:"hrLessThan",3:"hrGreaterThan",4:"calories",5:"open",6:"repeatUntilStepsCmplt",7:"repeatUntilTime",8:"repeatUntilDistance",9:"repeatUntilCalories",10:"repeatUntilHrLessThan",11:"repeatUntilHrGreaterThan",12:"repeatUntilPowerLessThan",13:"repeatUntilPowerGreaterThan",14:"powerLessThan",15:"powerGreaterThan",16:"trainingPeaksTss",17:"repeatUntilPowerLastLapLessThan",18:"repeatUntilMaxPowerLastLapLessThan",19:"power3sLessThan",20:"power10sLessThan",21:"power30sLessThan",22:"power3sGreaterThan",23:"power10sGreaterThan",24:"power30sGreaterThan",25:"powerLapLessThan",26:"powerLapGreaterThan",27:"repeatUntilTrainingPeaksTss",28:"repetitionTime",29:"reps",31:"timeOnly"},wktStepTarget:{0:"speed",1:"heartRate",2:"open",3:"cadence",4:"power",5:"grade",6:"resistance",7:"power3s",8:"power10s",9:"power30s",10:"powerLap",11:"swimStroke",12:"speedLap",13:"heartRateLap"},goal:{0:"time",1:"distance",2:"calories",3:"frequency",4:"steps",5:"ascent",6:"activeMinutes"},goalRecurrence:{0:"off",1:"daily",2:"weekly",3:"monthly",4:"yearly",5:"custom"},goalSource:{0:"auto",1:"community",2:"user"},schedule:{0:"workout",1:"course"},coursePoint:{0:"generic",1:"summit",2:"valley",3:"water",4:"food",5:"danger",6:"left",7:"right",8:"straight",9:"firstAid",10:"fourthCategory",11:"thirdCategory",12:"secondCategory",13:"firstCategory",14:"horsCategory",15:"sprint",16:"leftFork",17:"rightFork",18:"middleFork",19:"slightLeft",20:"sharpLeft",21:"slightRight",22:"sharpRight",23:"uTurn",24:"segmentStart",25:"segmentEnd",27:"campsite",28:"aidStation",29:"restArea",30:"generalDistance",31:"service",32:"energyGel",33:"sportsDrink",34:"mileMarker",35:"checkpoint",36:"shelter",37:"meetingSpot",38:"overlook",39:"toilet",40:"shower",41:"gear",42:"sharpCurve",43:"steepIncline",44:"tunnel",45:"bridge",46:"obstacle",47:"crossing",48:"store",49:"transition",50:"navaid",51:"transport",52:"alert",53:"info"},manufacturer:{1:"garmin",2:"garminFr405Antfs",3:"zephyr",4:"dayton",5:"idt",6:"srm",7:"quarq",8:"ibike",9:"saris",10:"sparkHk",11:"tanita",12:"echowell",13:"dynastreamOem",14:"nautilus",15:"dynastream",16:"timex",17:"metrigear",18:"xelic",19:"beurer",20:"cardiosport",21:"aAndD",22:"hmm",23:"suunto",24:"thitaElektronik",25:"gpulse",26:"cleanMobile",27:"pedalBrain",28:"peaksware",29:"saxonar",30:"lemondFitness",31:"dexcom",32:"wahooFitness",33:"octaneFitness",34:"archinoetics",35:"theHurtBox",36:"citizenSystems",37:"magellan",38:"osynce",39:"holux",40:"concept2",41:"shimano",42:"oneGiantLeap",43:"aceSensor",44:"brimBrothers",45:"xplova",46:"perceptionDigital",47:"bf1systems",48:"pioneer",49:"spantec",50:"metalogics",51:"4iiiis",52:"seikoEpson",53:"seikoEpsonOem",54:"iforPowell",55:"maxwellGuider",56:"starTrac",57:"breakaway",58:"alatechTechnologyLtd",59:"mioTechnologyEurope",60:"rotor",61:"geonaute",62:"idBike",63:"specialized",64:"wtek",65:"physicalEnterprises",66:"northPoleEngineering",67:"bkool",68:"cateye",69:"stagesCycling",70:"sigmasport",71:"tomtom",72:"peripedal",73:"wattbike",76:"moxy",77:"ciclosport",78:"powerbahn",79:"acornProjectsAps",80:"lifebeam",81:"bontrager",82:"wellgo",83:"scosche",84:"magura",85:"woodway",86:"elite",87:"nielsenKellerman",88:"dkCity",89:"tacx",90:"directionTechnology",91:"magtonic",92:"1partcarbon",93:"insideRideTechnologies",94:"soundOfMotion",95:"stryd",96:"icg",97:"miPulse",98:"bsxAthletics",99:"look",100:"campagnoloSrl",101:"bodyBikeSmart",102:"praxisworks",103:"limitsTechnology",104:"topactionTechnology",105:"cosinuss",106:"fitcare",107:"magene",108:"giantManufacturingCo",109:"tigrasport",110:"salutron",111:"technogym",112:"brytonSensors",113:"latitudeLimited",114:"soaringTechnology",115:"igpsport",116:"thinkrider",117:"gopherSport",118:"waterrower",119:"orangetheory",120:"inpeak",121:"kinetic",122:"johnsonHealthTech",123:"polarElectro",124:"seesense",125:"nciTechnology",126:"iqsquare",127:"leomo",128:"ifitCom",129:"corosByte",130:"versaDesign",131:"chileaf",132:"cycplus",133:"gravaaByte",134:"sigeyi",135:"coospo",136:"geoid",137:"bosch",138:"kyto",139:"kineticSports",140:"decathlonByte",141:"tqSystems",142:"tagHeuer",143:"keiserFitness",144:"zwiftByte",145:"porscheEp",146:"blackbird",147:"meilanByte",148:"ezon",149:"laisi",150:"myzone",151:"abawo",152:"bafang",153:"luhongTechnology",255:"development",257:"healthandlife",258:"lezyne",259:"scribeLabs",260:"zwift",261:"watteam",262:"recon",263:"faveroElectronics",264:"dynovelo",265:"strava",266:"precor",267:"bryton",268:"sram",269:"navman",270:"cobi",271:"spivi",272:"mioMagellan",273:"evesports",274:"sensitivusGauge",275:"podoon",276:"lifeTimeFitness",277:"falcoEMotors",278:"minoura",279:"cycliq",280:"luxottica",281:"trainerRoad",282:"theSufferfest",283:"fullspeedahead",284:"virtualtraining",285:"feedbacksports",286:"omata",287:"vdo",288:"magneticdays",289:"hammerhead",290:"kineticByKurt",291:"shapelog",292:"dabuziduo",293:"jetblack",294:"coros",295:"virtugo",296:"velosense",297:"cycligentinc",298:"trailforks",299:"mahleEbikemotion",300:"nurvv",301:"microprogram",302:"zone5cloud",303:"greenteg",304:"yamahaMotors",305:"whoop",306:"gravaa",307:"onelap",308:"monarkExercise",309:"form",310:"decathlon",311:"syncros",312:"heatup",313:"cannondale",314:"trueFitness",315:"rGTCycling",316:"vasa",317:"raceRepublic",318:"fazua",319:"orekaTraining",320:"lsec",321:"lululemonStudio",322:"shanyue",323:"spinningMda",324:"hilldating",325:"aeroSensor",326:"nike",327:"magicshine",328:"ictrainer",329:"absoluteCycling",330:"eoSwimbetter",331:"mywhoosh",332:"ravemen",333:"tektroRacingProducts",334:"daradInnovationCorporation",335:"cycloptim",337:"runna",339:"zepp",340:"peloton",341:"carv",342:"tissot",345:"realVelo",346:"wetech",347:"jespr",348:"huawei",349:"gotoes",350:"cadenceApp",351:"unaWatch",5759:"actigraphcorp"},garminProduct:{1:"hrm1",2:"axh01",3:"axb01",4:"axb02",5:"hrm2ss",6:"dsiAlf02",7:"hrm3ss",8:"hrmRunSingleByteProductId",9:"bsm",10:"bcm",11:"axs01",12:"hrmTriSingleByteProductId",13:"hrm4RunSingleByteProductId",14:"fr225SingleByteProductId",15:"gen3BsmSingleByteProductId",16:"gen3BcmSingleByteProductId",22:"hrmFitSingleByteProductId",255:"oHR",473:"fr301China",474:"fr301Japan",475:"fr301Korea",494:"fr301Taiwan",717:"fr405",782:"fr50",987:"fr405Japan",988:"fr60",1011:"dsiAlf01",1018:"fr310xt",1036:"edge500",1124:"fr110",1169:"edge800",1199:"edge500Taiwan",1213:"edge500Japan",1253:"chirp",1274:"fr110Japan",1325:"edge200",1328:"fr910xt",1333:"edge800Taiwan",1334:"edge800Japan",1341:"alf04",1345:"fr610",1360:"fr210Japan",1380:"vectorSs",1381:"vectorCp",1386:"edge800China",1387:"edge500China",1405:"approachG10",1410:"fr610Japan",1422:"edge500Korea",1436:"fr70",1446:"fr310xt4t",1461:"amx",1482:"fr10",1497:"edge800Korea",1499:"swim",1537:"fr910xtChina",1551:"fenix",1555:"edge200Taiwan",1561:"edge510",1567:"edge810",1570:"tempe",1600:"fr910xtJapan",1623:"fr620",1632:"fr220",1664:"fr910xtKorea",1688:"fr10Japan",1721:"edge810Japan",1735:"virbElite",1736:"edgeTouring",1742:"edge510Japan",1743:"hrmTri",1752:"hrmRun",1765:"fr920xt",1821:"edge510Asia",1822:"edge810China",1823:"edge810Taiwan",1836:"edge1000",1837:"vivoFit",1853:"virbRemote",1885:"vivoKi",1903:"fr15",1907:"vivoActive",1918:"edge510Korea",1928:"fr620Japan",1929:"fr620China",1930:"fr220Japan",1931:"fr220China",1936:"approachS6",1956:"vivoSmart",1967:"fenix2",1988:"epix",2050:"fenix3",2052:"edge1000Taiwan",2053:"edge1000Japan",2061:"fr15Japan",2067:"edge520",2070:"edge1000China",2072:"fr620Russia",2073:"fr220Russia",2079:"vectorS",2100:"edge1000Korea",2130:"fr920xtTaiwan",2131:"fr920xtChina",2132:"fr920xtJapan",2134:"virbx",2135:"vivoSmartApac",2140:"etrexTouch",2147:"edge25",2148:"fr25",2150:"vivoFit2",2153:"fr225",2156:"fr630",2157:"fr230",2158:"fr735xt",2160:"vivoActiveApac",2161:"vector2",2162:"vector2s",2172:"virbxe",2173:"fr620Taiwan",2174:"fr220Taiwan",2175:"truswing",2187:"d2airvenu",2188:"fenix3China",2189:"fenix3Twn",2192:"variaHeadlight",2193:"variaTaillightOld",2204:"edgeExplore1000",2219:"fr225Asia",2225:"variaRadarTaillight",2226:"variaRadarDisplay",2238:"edge20",2260:"edge520Asia",2261:"edge520Japan",2262:"d2Bravo",2266:"approachS20",2271:"vivoSmart2",2274:"edge1000Thai",2276:"variaRemote",2288:"edge25Asia",2289:"edge25Jpn",2290:"edge20Asia",2292:"approachX40",2293:"fenix3Japan",2294:"vivoSmartEmea",2310:"fr630Asia",2311:"fr630Jpn",2313:"fr230Jpn",2327:"hrm4Run",2332:"epixJapan",2337:"vivoActiveHr",2347:"vivoSmartGpsHr",2348:"vivoSmartHr",2361:"vivoSmartHrAsia",2362:"vivoSmartGpsHrAsia",2368:"vivoMove",2379:"variaTaillight",2396:"fr235Asia",2397:"fr235Japan",2398:"variaVision",2406:"vivoFit3",2407:"fenix3Korea",2408:"fenix3Sea",2413:"fenix3Hr",2417:"virbUltra30",2429:"indexSmartScale",2431:"fr235",2432:"fenix3Chronos",2441:"oregon7xx",2444:"rino7xx",2457:"epixKorea",2473:"fenix3HrChn",2474:"fenix3HrTwn",2475:"fenix3HrJpn",2476:"fenix3HrSea",2477:"fenix3HrKor",2496:"nautix",2497:"vivoActiveHrApac",2503:"fr35",2512:"oregon7xxWw",2530:"edge820",2531:"edgeExplore820",2533:"fr735xtApac",2534:"fr735xtJapan",2544:"fenix5s",2547:"d2BravoTitanium",2567:"variaUt800",2593:"runningDynamicsPod",2599:"edge820China",2600:"edge820Japan",2604:"fenix5x",2606:"vivoFitJr",2622:"vivoSmart3",2623:"vivoSport",2628:"edge820Taiwan",2629:"edge820Korea",2630:"edge820Sea",2650:"fr35Hebrew",2656:"approachS60",2667:"fr35Apac",2668:"fr35Japan",2675:"fenix3ChronosAsia",2687:"virb360",2691:"fr935",2697:"fenix5",2700:"vivoactive3",2733:"fr235ChinaNfc",2769:"foretrex601_701",2772:"vivoMoveHr",2713:"edge1030",2727:"fr35Sea",2787:"vector3",2796:"fenix5Asia",2797:"fenix5sAsia",2798:"fenix5xAsia",2806:"approachZ80",2814:"fr35Korea",2819:"d2charlie",2831:"vivoSmart3Apac",2832:"vivoSportApac",2833:"fr935Asia",2859:"descent",2878:"vivoFit4",2886:"fr645",2888:"fr645m",2891:"fr30",2900:"fenix5sPlus",2909:"edge130",2924:"edge1030Asia",2927:"vivosmart4",2945:"vivoMoveHrAsia",2962:"approachX10",2977:"fr30Asia",2988:"vivoactive3mW",3003:"fr645Asia",3004:"fr645mAsia",3011:"edgeExplore",3028:"gpsmap66",3049:"approachS10",3066:"vivoactive3mL",3076:"fr245",3077:"fr245Music",3085:"approachG80",3092:"edge130Asia",3095:"edge1030Bontrager",3110:"fenix5Plus",3111:"fenix5xPlus",3112:"edge520Plus",3113:"fr945",3121:"edge530",3122:"edge830",3126:"instinctEsports",3134:"fenix5sPlusApac",3135:"fenix5xPlusApac",3142:"edge520PlusApac",3143:"descentT1",3144:"fr235lAsia",3145:"fr245Asia",3163:"vivoActive3mApac",3192:"gen3Bsm",3193:"gen3Bcm",3218:"vivoSmart4Asia",3224:"vivoactive4Small",3225:"vivoactive4Large",3226:"venu",3246:"marqDriver",3247:"marqAviator",3248:"marqCaptain",3249:"marqCommander",3250:"marqExpedition",3251:"marqAthlete",3258:"descentMk2",3282:"fr45",3284:"gpsmap66i",3287:"fenix6SSport",3288:"fenix6S",3289:"fenix6Sport",3290:"fenix6",3291:"fenix6x",3299:"hrmDual",3300:"hrmPro",3308:"vivoMove3Premium",3314:"approachS40",3321:"fr245mAsia",3349:"edge530Apac",3350:"edge830Apac",3378:"vivoMove3",3387:"vivoActive4SmallAsia",3388:"vivoActive4LargeAsia",3389:"vivoActive4OledAsia",3405:"swim2",3420:"marqDriverAsia",3421:"marqAviatorAsia",3422:"vivoMove3Asia",3441:"fr945Asia",3446:"vivoActive3tChn",3448:"marqCaptainAsia",3449:"marqCommanderAsia",3450:"marqExpeditionAsia",3451:"marqAthleteAsia",3461:"indexSmartScale2",3466:"instinctSolar",3469:"fr45Asia",3473:"vivoactive3Daimler",3498:"legacyRey",3499:"legacyDarthVader",3500:"legacyCaptainMarvel",3501:"legacyFirstAvenger",3512:"fenix6sSportAsia",3513:"fenix6sAsia",3514:"fenix6SportAsia",3515:"fenix6Asia",3516:"fenix6xAsia",3535:"legacyCaptainMarvelAsia",3536:"legacyFirstAvengerAsia",3537:"legacyReyAsia",3538:"legacyDarthVaderAsia",3542:"descentMk2s",3558:"edge130Plus",3570:"edge1030Plus",3578:"rally200",3589:"fr745",3596:"venusqMusic",3599:"venusqMusicV2",3600:"venusq",3615:"lily",3624:"marqAdventurer",3638:"enduro",3639:"swim2Apac",3648:"marqAdventurerAsia",3652:"fr945Lte",3702:"descentMk2Asia",3703:"venu2",3704:"venu2s",3737:"venuDaimlerAsia",3739:"marqGolfer",3740:"venuDaimler",3794:"fr745Asia",3808:"variaRct715",3809:"lilyAsia",3812:"edge1030PlusAsia",3813:"edge130PlusAsia",3823:"approachS12",3872:"enduroAsia",3837:"venusqAsia",3843:"edge1040",3850:"marqGolferAsia",3851:"venu2Plus",3865:"gnss",3869:"fr55",3888:"instinct2",3889:"instinct2s",3905:"fenix7s",3906:"fenix7",3907:"fenix7x",3908:"fenix7sApac",3909:"fenix7Apac",3910:"fenix7xApac",3927:"approachG12",3930:"descentMk2sAsia",3934:"approachS42",3943:"epixGen2",3944:"epixGen2Apac",3949:"venu2sAsia",3950:"venu2Asia",3978:"fr945LteAsia",3982:"vivoMoveSport",3983:"vivomoveTrend",3986:"approachS12Asia",3990:"fr255Music",3991:"fr255SmallMusic",3992:"fr255",3993:"fr255Small",4001:"approachG12Asia",4002:"approachS42Asia",4005:"descentG1",4017:"venu2PlusAsia",4024:"fr955",4033:"fr55Asia",4061:"edge540",4062:"edge840",4063:"vivosmart5",4071:"instinct2Asia",4105:"marqGen2",4115:"venusq2",4116:"venusq2music",4124:"marqGen2Aviator",4125:"d2AirX10",4130:"hrmProPlus",4132:"descentG1Asia",4135:"tactix7",4155:"instinctCrossover",4169:"edgeExplore2",4222:"descentMk3",4223:"descentMk3i",4233:"approachS70",4257:"fr265Large",4258:"fr265Small",4260:"venu3",4261:"venu3s",4265:"tacxNeoSmart",4266:"tacxNeo2Smart",4267:"tacxNeo2TSmart",4268:"tacxNeoSmartBike",4269:"tacxSatoriSmart",4270:"tacxFlowSmart",4271:"tacxVortexSmart",4272:"tacxBushidoSmart",4273:"tacxGeniusSmart",4274:"tacxFluxFluxSSmart",4275:"tacxFlux2Smart",4276:"tacxMagnum",4305:"edge1040Asia",4312:"epixGen2Pro42",4313:"epixGen2Pro47",4314:"epixGen2Pro51",4315:"fr965",4341:"enduro2",4374:"fenix7sProSolar",4375:"fenix7ProSolar",4376:"fenix7xProSolar",4380:"lily2",4394:"instinct2x",4426:"vivoactive5",4432:"fr165",4433:"fr165Music",4440:"edge1050",4442:"descentT2",4446:"hrmFit",4472:"marqGen2Commander",4477:"lilyAthlete",4525:"rallyX10",4532:"fenix8Solar",4533:"fenix8SolarLarge",4534:"fenix8Small",4536:"fenix8",4556:"d2Mach1Pro",4575:"enduro3",4583:"instinctE40mm",4584:"instinctE45mm",4585:"instinct3Solar45mm",4586:"instinct3Amoled45mm",4587:"instinct3Amoled50mm",4588:"descentG2",4595:"fenix7ProSolarNoWifi",4603:"venuX1",4606:"hrm200",4625:"vivoactive6",4631:"fenix8Pro",4633:"edge550",4634:"edge850",4643:"venu4",4644:"venu4s",4647:"approachS44",4655:"edgeMtb",4656:"approachS50",4666:"fenixE",4745:"bounce2",4759:"instinct3Solar50mm",4775:"tactix8Amoled",4776:"tactix8Solar",4814:"fr170Music",4815:"fr170",4825:"approachJ1",4879:"d2Mach2",4916:"fr702026",4678:"instinctCrossoverAmoled",4944:"d2AirX15",5019:"cirqaSmartBand",5056:"d2Mach2Pro",10007:"sdm4",10014:"edgeRemote",20533:"tacxTrainingAppWin",20534:"tacxTrainingAppMac",20565:"tacxTrainingAppMacCatalyst",20119:"trainingCenter",30045:"tacxTrainingAppAndroid",30046:"tacxTrainingAppIos",30047:"tacxTrainingAppLegacy",65531:"connectiqSimulator",65532:"androidAntplusPlugin",65534:"connect"},antplusDeviceType:{1:"antfs",11:"bikePower",12:"environmentSensorLegacy",15:"multiSportSpeedDistance",16:"control",17:"fitnessEquipment",18:"bloodPressure",19:"geocacheNode",20:"lightElectricVehicle",25:"envSensor",26:"racquet",27:"controlHub",31:"muscleOxygen",34:"shifting",35:"bikeLightMain",36:"bikeLightShared",38:"exd",40:"bikeRadar",46:"bikeAero",119:"weightScale",120:"heartRate",121:"bikeSpeedCadence",122:"bikeCadence",123:"bikeSpeed",124:"strideSpeedDistance"},antNetwork:{0:"public",1:"antplus",2:"antfs",3:"private"},workoutCapabilities:{1:"interval",2:"custom",4:"fitnessEquipment",8:"firstbeat",16:"newLeaf",32:"tcx",128:"speed",256:"heartRate",512:"distance",1024:"cadence",2048:"power",4096:"grade",8192:"resistance",16384:"protected"},batteryStatus:{1:"new",2:"good",3:"ok",4:"low",5:"critical",6:"charging",7:"unknown"},hrType:{0:"normal",1:"irregular"},courseCapabilities:{1:"processed",2:"valid",4:"time",8:"distance",16:"position",32:"heartRate",64:"power",128:"cadence",256:"training",512:"navigation",1024:"bikeway",4096:"aviation"},weight:{65534:"calculating"},workoutHr:{100:"bpmOffset"},workoutPower:{1e3:"wattsOffset"},bpStatus:{0:"noError",1:"errorIncompleteData",2:"errorNoMeasurement",3:"errorDataOutOfRange",4:"errorIrregularHeartRate"},userLocalId:{0:"localMin",15:"localMax",16:"stationaryMin",255:"stationaryMax",256:"portableMin",65534:"portableMax"},swimStroke:{0:"freestyle",1:"backstroke",2:"breaststroke",3:"butterfly",4:"drill",5:"mixed",6:"im",7:"imByRound",8:"rimo"},activityType:{0:"generic",1:"running",2:"cycling",3:"transition",4:"fitnessEquipment",5:"swimming",6:"walking",8:"sedentary",13:"wheelchairPushing",254:"all"},activitySubtype:{0:"generic",1:"treadmill",2:"street",3:"trail",4:"track",5:"spin",6:"indoorCycling",7:"road",8:"mountain",9:"downhill",10:"recumbent",11:"cyclocross",12:"handCycling",13:"trackCycling",14:"indoorRowing",15:"elliptical",16:"stairClimbing",17:"lapSwimming",18:"openWater",254:"all"},activityLevel:{0:"low",1:"medium",2:"high"},side:{0:"right",1:"left"},leftRightBalance:{127:"mask",128:"right"},leftRightBalance100:{16383:"mask",32768:"right"},lengthType:{0:"idle",1:"active"},dayOfWeek:{0:"sunday",1:"monday",2:"tuesday",3:"wednesday",4:"thursday",5:"friday",6:"saturday"},connectivityCapabilities:{1:"bluetooth",2:"bluetoothLe",4:"ant",8:"activityUpload",16:"courseDownload",32:"workoutDownload",64:"liveTrack",128:"weatherConditions",256:"weatherAlerts",512:"gpsEphemerisDownload",1024:"explicitArchive",2048:"setupIncomplete",4096:"continueSyncAfterSoftwareUpdate",8192:"connectIqAppDownload",16384:"golfCourseDownload",32768:"deviceInitiatesSync",65536:"connectIqWatchAppDownload",131072:"connectIqWidgetDownload",262144:"connectIqWatchFaceDownload",524288:"connectIqDataFieldDownload",1048576:"connectIqAppManagment",2097152:"swingSensor",4194304:"swingSensorRemote",8388608:"incidentDetection",16777216:"audioPrompts",33554432:"wifiVerification",67108864:"trueUp",134217728:"findMyWatch",268435456:"remoteManualSync",536870912:"liveTrackAutoStart",1073741824:"liveTrackMessaging",2147483648:"instantInput"},weatherReport:{0:"current",1:"forecast",1:"hourlyForecast",2:"dailyForecast"},weatherStatus:{0:"clear",1:"partlyCloudy",2:"mostlyCloudy",3:"rain",4:"snow",5:"windy",6:"thunderstorms",7:"wintryMix",8:"fog",11:"hazy",12:"hail",13:"scatteredShowers",14:"scatteredThunderstorms",15:"unknownPrecipitation",16:"lightRain",17:"heavyRain",18:"lightSnow",19:"heavySnow",20:"lightRainSnow",21:"heavyRainSnow",22:"cloudy"},weatherSeverity:{0:"unknown",1:"warning",2:"watch",3:"advisory",4:"statement"},weatherSevereType:{0:"unspecified",1:"tornado",2:"tsunami",3:"hurricane",4:"extremeWind",5:"typhoon",6:"inlandHurricane",7:"hurricaneForceWind",8:"waterspout",9:"severeThunderstorm",10:"wreckhouseWinds",11:"lesSuetesWind",12:"avalanche",13:"flashFlood",14:"tropicalStorm",15:"inlandTropicalStorm",16:"blizzard",17:"iceStorm",18:"freezingRain",19:"debrisFlow",20:"flashFreeze",21:"dustStorm",22:"highWind",23:"winterStorm",24:"heavyFreezingSpray",25:"extremeCold",26:"windChill",27:"coldWave",28:"heavySnowAlert",29:"lakeEffectBlowingSnow",30:"snowSquall",31:"lakeEffectSnow",32:"winterWeather",33:"sleet",34:"snowfall",35:"snowAndBlowingSnow",36:"blowingSnow",37:"snowAlert",38:"arcticOutflow",39:"freezingDrizzle",40:"storm",41:"stormSurge",42:"rainfall",43:"arealFlood",44:"coastalFlood",45:"lakeshoreFlood",46:"excessiveHeat",47:"heat",48:"weather",49:"highHeatAndHumidity",50:"humidexAndHealth",51:"humidex",52:"gale",53:"freezingSpray",54:"specialMarine",55:"squall",56:"strongWind",57:"lakeWind",58:"marineWeather",59:"wind",60:"smallCraftHazardousSeas",61:"hazardousSeas",62:"smallCraft",63:"smallCraftWinds",64:"smallCraftRoughBar",65:"highWaterLevel",66:"ashfall",67:"freezingFog",68:"denseFog",69:"denseSmoke",70:"blowingDust",71:"hardFreeze",72:"freeze",73:"frost",74:"fireWeather",75:"flood",76:"ripTide",77:"highSurf",78:"smog",79:"airQuality",80:"briskWind",81:"airStagnation",82:"lowWater",83:"hydrological",84:"specialWeather"},timeIntoDay:{},localtimeIntoDay:{},strokeType:{0:"noEvent",1:"other",2:"serve",3:"forehand",4:"backhand",5:"smash"},bodyLocation:{0:"leftLeg",1:"leftCalf",2:"leftShin",3:"leftHamstring",4:"leftQuad",5:"leftGlute",6:"rightLeg",7:"rightCalf",8:"rightShin",9:"rightHamstring",10:"rightQuad",11:"rightGlute",12:"torsoBack",13:"leftLowerBack",14:"leftUpperBack",15:"rightLowerBack",16:"rightUpperBack",17:"torsoFront",18:"leftAbdomen",19:"leftChest",20:"rightAbdomen",21:"rightChest",22:"leftArm",23:"leftShoulder",24:"leftBicep",25:"leftTricep",26:"leftBrachioradialis",27:"leftForearmExtensors",28:"rightArm",29:"rightShoulder",30:"rightBicep",31:"rightTricep",32:"rightBrachioradialis",33:"rightForearmExtensors",34:"neck",35:"throat",36:"waistMidBack",37:"waistFront",38:"waistLeft",39:"waistRight"},segmentLapStatus:{0:"end",1:"fail"},segmentLeaderboardType:{0:"overall",1:"personalBest",2:"connections",3:"group",4:"challenger",5:"kom",6:"qom",7:"pr",8:"goal",9:"carrot",10:"clubLeader",11:"rival",12:"last",13:"recentBest",14:"courseRecord"},segmentDeleteStatus:{0:"doNotDelete",1:"deleteOne",2:"deleteAll"},segmentSelectionType:{0:"starred",1:"suggested"},sourceType:{0:"ant",1:"antplus",2:"bluetooth",3:"bluetoothLowEnergy",4:"wifi",5:"local"},localDeviceType:{0:"gps",1:"glonass",2:"gpsGlonass",3:"accelerometer",4:"barometer",5:"temperature",10:"whr",12:"sensorHub"},bleDeviceType:{0:"connectedGps",1:"heartRate",2:"bikePower",3:"bikeSpeedCadence",4:"bikeSpeed",5:"bikeCadence",6:"footpod",7:"bikeTrainer"},antChannelId:{4026531840:"antExtendedDeviceNumberUpperNibble",251658240:"antTransmissionTypeLowerNibble",16711680:"antDeviceType",65535:"antDeviceNumber"},displayOrientation:{0:"auto",1:"portrait",2:"landscape",3:"portraitFlipped",4:"landscapeFlipped"},workoutEquipment:{0:"none",1:"swimFins",2:"swimKickboard",3:"swimPaddles",4:"swimPullBuoy",5:"swimSnorkel"},watchfaceMode:{0:"digital",1:"analog",2:"connectIq",3:"disabled"},digitalWatchfaceLayout:{0:"traditional",1:"modern",2:"bold"},analogWatchfaceLayout:{0:"minimal",1:"traditional",2:"modern"},riderPositionType:{0:"seated",1:"standing",2:"transitionToSeated",3:"transitionToStanding"},powerPhaseType:{0:"powerPhaseStartAngle",1:"powerPhaseEndAngle",2:"powerPhaseArcLength",3:"powerPhaseCenter"},cameraEventType:{0:"videoStart",1:"videoSplit",2:"videoEnd",3:"photoTaken",4:"videoSecondStreamStart",5:"videoSecondStreamSplit",6:"videoSecondStreamEnd",7:"videoSplitStart",8:"videoSecondStreamSplitStart",11:"videoPause",12:"videoSecondStreamPause",13:"videoResume",14:"videoSecondStreamResume"},sensorType:{0:"accelerometer",1:"gyroscope",2:"compass",3:"barometer"},bikeLightNetworkConfigType:{0:"auto",4:"individual",5:"highVisibility",6:"trail"},commTimeoutType:{0:"wildcardPairingTimeout",1:"pairingTimeout",2:"connectionLost",3:"connectionTimeout"},cameraOrientationType:{0:"cameraOrientation0",1:"cameraOrientation90",2:"cameraOrientation180",3:"cameraOrientation270"},attitudeStage:{0:"failed",1:"aligning",2:"degraded",3:"valid"},attitudeValidity:{1:"trackAngleHeadingValid",2:"pitchValid",4:"rollValid",8:"lateralBodyAccelValid",16:"normalBodyAccelValid",32:"turnRateValid",64:"hwFail",128:"magInvalid",256:"noGps",512:"gpsInvalid",1024:"solutionCoasting",2048:"trueTrackAngle",4096:"magneticHeading"},autoSyncFrequency:{0:"never",1:"occasionally",2:"frequent",3:"onceADay",4:"remote"},exdLayout:{0:"fullScreen",1:"halfVertical",2:"halfHorizontal",3:"halfVerticalRightSplit",4:"halfHorizontalBottomSplit",5:"fullQuarterSplit",6:"halfVerticalLeftSplit",7:"halfHorizontalTopSplit",8:"dynamic"},exdDisplayType:{0:"numerical",1:"simple",2:"graph",3:"bar",4:"circleGraph",5:"virtualPartner",6:"balance",7:"stringList",8:"string",9:"simpleDynamicIcon",10:"gauge"},exdDataUnits:{0:"noUnits",1:"laps",2:"milesPerHour",3:"kilometersPerHour",4:"feetPerHour",5:"metersPerHour",6:"degreesCelsius",7:"degreesFarenheit",8:"zone",9:"gear",10:"rpm",11:"bpm",12:"degrees",13:"millimeters",14:"meters",15:"kilometers",16:"feet",17:"yards",18:"kilofeet",19:"miles",20:"time",21:"enumTurnType",22:"percent",23:"watts",24:"wattsPerKilogram",25:"enumBatteryStatus",26:"enumBikeLightBeamAngleMode",27:"enumBikeLightBatteryStatus",28:"enumBikeLightNetworkConfigType",29:"lights",30:"seconds",31:"minutes",32:"hours",33:"calories",34:"kilojoules",35:"milliseconds",36:"secondPerMile",37:"secondPerKilometer",38:"centimeter",39:"enumCoursePoint",40:"bradians",41:"enumSport",42:"inchesHg",43:"mmHg",44:"mbars",45:"hectoPascals",46:"feetPerMin",47:"metersPerMin",48:"metersPerSec",49:"eightCardinal"},exdQualifiers:{0:"noQualifier",1:"instantaneous",2:"average",3:"lap",4:"maximum",5:"maximumAverage",6:"maximumLap",7:"lastLap",8:"averageLap",9:"toDestination",10:"toGo",11:"toNext",12:"nextCoursePoint",13:"total",14:"threeSecondAverage",15:"tenSecondAverage",16:"thirtySecondAverage",17:"percentMaximum",18:"percentMaximumAverage",19:"lapPercentMaximum",20:"elapsed",21:"sunrise",22:"sunset",23:"comparedToVirtualPartner",24:"maximum24h",25:"minimum24h",26:"minimum",27:"first",28:"second",29:"third",30:"shifter",31:"lastSport",32:"moving",33:"stopped",34:"estimatedTotal",242:"zone9",243:"zone8",244:"zone7",245:"zone6",246:"zone5",247:"zone4",248:"zone3",249:"zone2",250:"zone1"},exdDescriptors:{0:"bikeLightBatteryStatus",1:"beamAngleStatus",2:"bateryLevel",3:"lightNetworkMode",4:"numberLightsConnected",5:"cadence",6:"distance",7:"estimatedTimeOfArrival",8:"heading",9:"time",10:"batteryLevel",11:"trainerResistance",12:"trainerTargetPower",13:"timeSeated",14:"timeStanding",15:"elevation",16:"grade",17:"ascent",18:"descent",19:"verticalSpeed",20:"di2BatteryLevel",21:"frontGear",22:"rearGear",23:"gearRatio",24:"heartRate",25:"heartRateZone",26:"timeInHeartRateZone",27:"heartRateReserve",28:"calories",29:"gpsAccuracy",30:"gpsSignalStrength",31:"temperature",32:"timeOfDay",33:"balance",34:"pedalSmoothness",35:"power",36:"functionalThresholdPower",37:"intensityFactor",38:"work",39:"powerRatio",40:"normalizedPower",41:"trainingStressScore",42:"timeOnZone",43:"speed",44:"laps",45:"reps",46:"workoutStep",47:"courseDistance",48:"navigationDistance",49:"courseEstimatedTimeOfArrival",50:"navigationEstimatedTimeOfArrival",51:"courseTime",52:"navigationTime",53:"courseHeading",54:"navigationHeading",55:"powerZone",56:"torqueEffectiveness",57:"timerTime",58:"powerWeightRatio",59:"leftPlatformCenterOffset",60:"rightPlatformCenterOffset",61:"leftPowerPhaseStartAngle",62:"rightPowerPhaseStartAngle",63:"leftPowerPhaseFinishAngle",64:"rightPowerPhaseFinishAngle",65:"gears",66:"pace",67:"trainingEffect",68:"verticalOscillation",69:"verticalRatio",70:"groundContactTime",71:"leftGroundContactTimeBalance",72:"rightGroundContactTimeBalance",73:"strideLength",74:"runningCadence",75:"performanceCondition",76:"courseType",77:"timeInPowerZone",78:"navigationTurn",79:"courseLocation",80:"navigationLocation",81:"compass",82:"gearCombo",83:"muscleOxygen",84:"icon",85:"compassHeading",86:"gpsHeading",87:"gpsElevation",88:"anaerobicTrainingEffect",89:"course",90:"offCourse",91:"glideRatio",92:"verticalDistance",93:"vmg",94:"ambientPressure",95:"pressure",96:"vam"},autoActivityDetect:{0:"none",1:"running",2:"cycling",4:"swimming",8:"walking",32:"elliptical",1024:"sedentary"},supportedExdScreenLayouts:{1:"fullScreen",2:"halfVertical",4:"halfHorizontal",8:"halfVerticalRightSplit",16:"halfHorizontalBottomSplit",32:"fullQuarterSplit",64:"halfVerticalLeftSplit",128:"halfHorizontalTopSplit"},fitBaseType:{0:"enum",1:"sint8",2:"uint8",131:"sint16",132:"uint16",133:"sint32",134:"uint32",7:"string",136:"float32",137:"float64",10:"uint8z",139:"uint16z",140:"uint32z",13:"byte",142:"sint64",143:"uint64",144:"uint64z"},turnType:{0:"arrivingIdx",1:"arrivingLeftIdx",2:"arrivingRightIdx",3:"arrivingViaIdx",4:"arrivingViaLeftIdx",5:"arrivingViaRightIdx",6:"bearKeepLeftIdx",7:"bearKeepRightIdx",8:"continueIdx",9:"exitLeftIdx",10:"exitRightIdx",11:"ferryIdx",12:"roundabout45Idx",13:"roundabout90Idx",14:"roundabout135Idx",15:"roundabout180Idx",16:"roundabout225Idx",17:"roundabout270Idx",18:"roundabout315Idx",19:"roundabout360Idx",20:"roundaboutNeg45Idx",21:"roundaboutNeg90Idx",22:"roundaboutNeg135Idx",23:"roundaboutNeg180Idx",24:"roundaboutNeg225Idx",25:"roundaboutNeg270Idx",26:"roundaboutNeg315Idx",27:"roundaboutNeg360Idx",28:"roundaboutGenericIdx",29:"roundaboutNegGenericIdx",30:"sharpTurnLeftIdx",31:"sharpTurnRightIdx",32:"turnLeftIdx",33:"turnRightIdx",34:"uturnLeftIdx",35:"uturnRightIdx",36:"iconInvIdx",37:"iconIdxCnt"},bikeLightBeamAngleMode:{0:"manual",1:"auto"},fitBaseUnit:{0:"other",1:"kilogram",2:"pound"},setType:{0:"rest",1:"active"},maxMetCategory:{0:"generic",1:"cycling"},exerciseCategory:{0:"benchPress",1:"calfRaise",2:"cardio",3:"carry",4:"chop",5:"core",6:"crunch",7:"curl",8:"deadlift",9:"flye",10:"hipRaise",11:"hipStability",12:"hipSwing",13:"hyperextension",14:"lateralRaise",15:"legCurl",16:"legRaise",17:"lunge",18:"olympicLift",19:"plank",20:"plyo",21:"pullUp",22:"pushUp",23:"row",24:"shoulderPress",25:"shoulderStability",26:"shrug",27:"sitUp",28:"squat",29:"totalBody",30:"tricepsExtension",31:"warmUp",32:"run",33:"bike",34:"cardioSensors",35:"move",36:"pose",37:"bandedExercises",38:"battleRope",39:"elliptical",40:"floorClimb",41:"indoorBike",42:"indoorRow",43:"ladder",44:"sandbag",45:"sled",46:"sledgeHammer",47:"stairStepper",49:"suspension",50:"tire",52:"runIndoor",53:"bikeOutdoor",65534:"unknown"},benchPressExerciseName:{0:"alternatingDumbbellChestPressOnSwissBall",1:"barbellBenchPress",2:"barbellBoardBenchPress",3:"barbellFloorPress",4:"closeGripBarbellBenchPress",5:"declineDumbbellBenchPress",6:"dumbbellBenchPress",7:"dumbbellFloorPress",8:"inclineBarbellBenchPress",9:"inclineDumbbellBenchPress",10:"inclineSmithMachineBenchPress",11:"isometricBarbellBenchPress",12:"kettlebellChestPress",13:"neutralGripDumbbellBenchPress",14:"neutralGripDumbbellInclineBenchPress",15:"oneArmFloorPress",16:"weightedOneArmFloorPress",17:"partialLockout",18:"reverseGripBarbellBenchPress",19:"reverseGripInclineBenchPress",20:"singleArmCableChestPress",21:"singleArmDumbbellBenchPress",22:"smithMachineBenchPress",23:"swissBallDumbbellChestPress",24:"tripleStopBarbellBenchPress",25:"wideGripBarbellBenchPress",26:"alternatingDumbbellChestPress"},calfRaiseExerciseName:{0:"3WayCalfRaise",1:"3WayWeightedCalfRaise",2:"3WaySingleLegCalfRaise",3:"3WayWeightedSingleLegCalfRaise",4:"donkeyCalfRaise",5:"weightedDonkeyCalfRaise",6:"seatedCalfRaise",7:"weightedSeatedCalfRaise",8:"seatedDumbbellToeRaise",9:"singleLegBentKneeCalfRaise",10:"weightedSingleLegBentKneeCalfRaise",11:"singleLegDeclinePushUp",12:"singleLegDonkeyCalfRaise",13:"weightedSingleLegDonkeyCalfRaise",14:"singleLegHipRaiseWithKneeHold",15:"singleLegStandingCalfRaise",16:"singleLegStandingDumbbellCalfRaise",17:"standingBarbellCalfRaise",18:"standingCalfRaise",19:"weightedStandingCalfRaise",20:"standingDumbbellCalfRaise"},cardioExerciseName:{0:"bobAndWeaveCircle",1:"weightedBobAndWeaveCircle",2:"cardioCoreCrawl",3:"weightedCardioCoreCrawl",4:"doubleUnder",5:"weightedDoubleUnder",6:"jumpRope",7:"weightedJumpRope",8:"jumpRopeCrossover",9:"weightedJumpRopeCrossover",10:"jumpRopeJog",11:"weightedJumpRopeJog",12:"jumpingJacks",13:"weightedJumpingJacks",14:"skiMoguls",15:"weightedSkiMoguls",16:"splitJacks",17:"weightedSplitJacks",18:"squatJacks",19:"weightedSquatJacks",20:"tripleUnder",21:"weightedTripleUnder",22:"elliptical",23:"spinning",24:"polePaddleForwardWheelchair",25:"polePaddleBackwardWheelchair",26:"poleHandcycleForwardWheelchair",27:"poleHandcycleBackwardWheelchair",28:"poleRainbowWheelchair",29:"doublePunchForwardWheelchair",30:"doublePunchDownWheelchair",31:"doublePunchSidewaysWheelchair",32:"doublePunchUpWheelchair",33:"sitSkiWheelchair",34:"sittingJacksWheelchair",35:"punchForwardWheelchair",36:"punchDownWheelchair",37:"punchSidewaysWheelchair",38:"punchUpWheelchair",39:"punchBagWheelchair",40:"poleDdFfUuWheelchair",41:"butterflyArmsWheelchair",42:"punch"},carryExerciseName:{0:"barHolds",1:"farmersWalk",2:"farmersWalkOnToes",3:"hexDumbbellHold",4:"overheadCarry",5:"dumbbellWaiterCarry",6:"farmersCarryWalkLunge",7:"farmersCarry",8:"farmersCarryOnToes"},chopExerciseName:{0:"cablePullThrough",1:"cableRotationalLift",2:"cableWoodchop",3:"crossChopToKnee",4:"weightedCrossChopToKnee",5:"dumbbellChop",6:"halfKneelingRotation",7:"weightedHalfKneelingRotation",8:"halfKneelingRotationalChop",9:"halfKneelingRotationalReverseChop",10:"halfKneelingStabilityChop",11:"halfKneelingStabilityReverseChop",12:"kneelingRotationalChop",13:"kneelingRotationalReverseChop",14:"kneelingStabilityChop",15:"kneelingWoodchopper",16:"medicineBallWoodChops",17:"powerSquatChops",18:"weightedPowerSquatChops",19:"standingRotationalChop",20:"standingSplitRotationalChop",21:"standingSplitRotationalReverseChop",22:"standingStabilityReverseChop"},coreExerciseName:{0:"absJabs",1:"weightedAbsJabs",2:"alternatingPlateReach",3:"barbellRollout",4:"weightedBarbellRollout",5:"bodyBarObliqueTwist",6:"cableCorePress",7:"cableSideBend",8:"sideBend",9:"weightedSideBend",10:"crescentCircle",11:"weightedCrescentCircle",12:"cyclingRussianTwist",13:"weightedCyclingRussianTwist",14:"elevatedFeetRussianTwist",15:"weightedElevatedFeetRussianTwist",16:"halfTurkishGetUp",17:"kettlebellWindmill",18:"kneelingAbWheel",19:"weightedKneelingAbWheel",20:"modifiedFrontLever",21:"openKneeTucks",22:"weightedOpenKneeTucks",23:"sideAbsLegLift",24:"weightedSideAbsLegLift",25:"swissBallJackknife",26:"weightedSwissBallJackknife",27:"swissBallPike",28:"weightedSwissBallPike",29:"swissBallRollout",30:"weightedSwissBallRollout",31:"triangleHipPress",32:"weightedTriangleHipPress",33:"trxSuspendedJackknife",34:"weightedTrxSuspendedJackknife",35:"uBoat",36:"weightedUBoat",37:"windmillSwitches",38:"weightedWindmillSwitches",39:"alternatingSlideOut",40:"weightedAlternatingSlideOut",41:"ghdBackExtensions",42:"weightedGhdBackExtensions",43:"overheadWalk",44:"inchworm",45:"weightedModifiedFrontLever",46:"russianTwist",47:"abdominalLegRotations",48:"armAndLegExtensionOnKnees",49:"bicycle",50:"bicepCurlWithLegExtension",51:"catCow",52:"corkscrew",53:"crissCross",54:"crissCrossWithBall",55:"doubleLegStretch",56:"kneeFolds",57:"lowerLift",58:"neckPull",59:"pelvicClocks",60:"rollOver",61:"rollUp",62:"rolling",63:"rowing1",64:"rowing2",65:"scissors",66:"singleLegCircles",67:"singleLegStretch",68:"snakeTwist1And2",69:"swan",70:"swimming",71:"teaser",72:"theHundred",73:"bicepCurlWithLegExtensionWithWeights",75:"hangingLSit",77:"lowerLiftWithWeights",79:"ringLSit",80:"rowing1WithWeights",81:"rowing2WithWeights",82:"scissorsWithWeights",83:"singleLegStretchWithWeights",84:"toesToElbows",85:"weightedCrissCross",86:"weightedDoubleLegStretch",87:"weightedTheHundred",88:"lSit",89:"turkishGetUp",90:"weightedRingLSit",91:"weightedHangingLSit",92:"weightedLSit",93:"sideBendLowWheelchair",94:"sideBendMidWheelchair",95:"sideBendHighWheelchair",96:"seatedSideBend"},crunchExerciseName:{0:"bicycleCrunch",1:"cableCrunch",2:"circularArmCrunch",3:"crossedArmsCrunch",4:"weightedCrossedArmsCrunch",5:"crossLegReverseCrunch",6:"weightedCrossLegReverseCrunch",7:"crunchChop",8:"weightedCrunchChop",9:"doubleCrunch",10:"weightedDoubleCrunch",11:"elbowToKneeCrunch",12:"weightedElbowToKneeCrunch",13:"flutterKicks",14:"weightedFlutterKicks",15:"foamRollerReverseCrunchOnBench",16:"weightedFoamRollerReverseCrunchOnBench",17:"foamRollerReverseCrunchWithDumbbell",18:"foamRollerReverseCrunchWithMedicineBall",19:"frogPress",20:"hangingKneeRaiseObliqueCrunch",21:"weightedHangingKneeRaiseObliqueCrunch",22:"hipCrossover",23:"weightedHipCrossover",24:"hollowRock",25:"weightedHollowRock",26:"inclineReverseCrunch",27:"weightedInclineReverseCrunch",28:"kneelingCableCrunch",29:"kneelingCrossCrunch",30:"weightedKneelingCrossCrunch",31:"kneelingObliqueCableCrunch",32:"kneesToElbow",33:"legExtensions",34:"weightedLegExtensions",35:"legLevers",36:"mcgillCurlUp",37:"weightedMcgillCurlUp",38:"modifiedPilatesRollUpWithBall",39:"weightedModifiedPilatesRollUpWithBall",40:"pilatesCrunch",41:"weightedPilatesCrunch",42:"pilatesRollUpWithBall",43:"weightedPilatesRollUpWithBall",44:"raisedLegsCrunch",45:"weightedRaisedLegsCrunch",46:"reverseCrunch",47:"weightedReverseCrunch",48:"reverseCrunchOnABench",49:"weightedReverseCrunchOnABench",50:"reverseCurlAndLift",51:"weightedReverseCurlAndLift",52:"rotationalLift",53:"weightedRotationalLift",54:"seatedAlternatingReverseCrunch",55:"weightedSeatedAlternatingReverseCrunch",56:"seatedLegU",57:"weightedSeatedLegU",58:"sideToSideCrunchAndWeave",59:"weightedSideToSideCrunchAndWeave",60:"singleLegReverseCrunch",61:"weightedSingleLegReverseCrunch",62:"skaterCrunchCross",63:"weightedSkaterCrunchCross",64:"standingCableCrunch",65:"standingSideCrunch",66:"stepClimb",67:"weightedStepClimb",68:"swissBallCrunch",69:"swissBallReverseCrunch",70:"weightedSwissBallReverseCrunch",71:"swissBallRussianTwist",72:"weightedSwissBallRussianTwist",73:"swissBallSideCrunch",74:"weightedSwissBallSideCrunch",75:"thoracicCrunchesOnFoamRoller",76:"weightedThoracicCrunchesOnFoamRoller",77:"tricepsCrunch",78:"weightedBicycleCrunch",79:"weightedCrunch",80:"weightedSwissBallCrunch",81:"toesToBar",82:"weightedToesToBar",83:"crunch",84:"straightLegCrunchWithBall",86:"legClimbCrunch"},curlExerciseName:{0:"alternatingDumbbellBicepsCurl",1:"alternatingDumbbellBicepsCurlOnSwissBall",2:"alternatingInclineDumbbellBicepsCurl",3:"barbellBicepsCurl",4:"barbellReverseWristCurl",5:"barbellWristCurl",6:"behindTheBackBarbellReverseWristCurl",7:"behindTheBackOneArmCableCurl",8:"cableBicepsCurl",9:"cableHammerCurl",10:"cheatingBarbellBicepsCurl",11:"closeGripEzBarBicepsCurl",12:"crossBodyDumbbellHammerCurl",13:"deadHangBicepsCurl",14:"declineHammerCurl",15:"dumbbellBicepsCurlWithStaticHold",16:"dumbbellHammerCurl",17:"dumbbellReverseWristCurl",18:"dumbbellWristCurl",19:"ezBarPreacherCurl",20:"forwardBendBicepsCurl",21:"hammerCurlToPress",22:"inclineDumbbellBicepsCurl",23:"inclineOffsetThumbDumbbellCurl",24:"kettlebellBicepsCurl",25:"lyingConcentrationCableCurl",26:"oneArmPreacherCurl",27:"platePinchCurl",28:"preacherCurlWithCable",29:"reverseEzBarCurl",30:"reverseGripWristCurl",31:"reverseGripBarbellBicepsCurl",32:"seatedAlternatingDumbbellBicepsCurl",33:"seatedDumbbellBicepsCurl",34:"seatedReverseDumbbellCurl",35:"splitStanceOffsetPinkyDumbbellCurl",36:"standingAlternatingDumbbellCurls",37:"standingDumbbellBicepsCurl",38:"standingEzBarBicepsCurl",39:"staticCurl",40:"swissBallDumbbellOverheadTricepsExtension",41:"swissBallEzBarPreacherCurl",42:"twistingStandingDumbbellBicepsCurl",43:"wideGripEzBarBicepsCurl",44:"oneArmConcentrationCurl",45:"standingZottmanBicepsCurl",46:"dumbbellBicepsCurl",47:"dragCurlWheelchair",48:"dumbbellBicepsCurlWheelchair",49:"bottleCurl",50:"seatedBottleCurl"},deadliftExerciseName:{0:"barbellDeadlift",1:"barbellStraightLegDeadlift",2:"dumbbellDeadlift",3:"dumbbellSingleLegDeadliftToRow",4:"dumbbellStraightLegDeadlift",5:"kettlebellFloorToShelf",6:"oneArmOneLegDeadlift",7:"rackPull",8:"rotationalDumbbellStraightLegDeadlift",9:"singleArmDeadlift",10:"singleLegBarbellDeadlift",11:"singleLegBarbellStraightLegDeadlift",12:"singleLegDeadliftWithBarbell",13:"singleLegRdlCircuit",14:"singleLegRomanianDeadliftWithDumbbell",15:"sumoDeadlift",16:"sumoDeadliftHighPull",17:"trapBarDeadlift",18:"wideGripBarbellDeadlift",20:"kettlebellDeadlift",21:"kettlebellSumoDeadlift",23:"romanianDeadlift",24:"singleLegRomanianDeadliftCircuit",25:"straightLegDeadlift"},flyeExerciseName:{0:"cableCrossover",1:"declineDumbbellFlye",2:"dumbbellFlye",3:"inclineDumbbellFlye",4:"kettlebellFlye",5:"kneelingRearFlye",6:"singleArmStandingCableReverseFlye",7:"swissBallDumbbellFlye",8:"armRotations",9:"hugATree",10:"faceDownInclineReverseFlye",11:"inclineReverseFlye",12:"rearDeltFlyWheelchair"},hipRaiseExerciseName:{0:"barbellHipThrustOnFloor",1:"barbellHipThrustWithBench",2:"bentKneeSwissBallReverseHipRaise",3:"weightedBentKneeSwissBallReverseHipRaise",4:"bridgeWithLegExtension",5:"weightedBridgeWithLegExtension",6:"clamBridge",7:"frontKickTabletop",8:"weightedFrontKickTabletop",9:"hipExtensionAndCross",10:"weightedHipExtensionAndCross",11:"hipRaise",12:"weightedHipRaise",13:"hipRaiseWithFeetOnSwissBall",14:"weightedHipRaiseWithFeetOnSwissBall",15:"hipRaiseWithHeadOnBosuBall",16:"weightedHipRaiseWithHeadOnBosuBall",17:"hipRaiseWithHeadOnSwissBall",18:"weightedHipRaiseWithHeadOnSwissBall",19:"hipRaiseWithKneeSqueeze",20:"weightedHipRaiseWithKneeSqueeze",21:"inclineRearLegExtension",22:"weightedInclineRearLegExtension",23:"kettlebellSwing",24:"marchingHipRaise",25:"weightedMarchingHipRaise",26:"marchingHipRaiseWithFeetOnASwissBall",27:"weightedMarchingHipRaiseWithFeetOnASwissBall",28:"reverseHipRaise",29:"weightedReverseHipRaise",30:"singleLegHipRaise",31:"weightedSingleLegHipRaise",32:"singleLegHipRaiseWithFootOnBench",33:"weightedSingleLegHipRaiseWithFootOnBench",34:"singleLegHipRaiseWithFootOnBosuBall",35:"weightedSingleLegHipRaiseWithFootOnBosuBall",36:"singleLegHipRaiseWithFootOnFoamRoller",37:"weightedSingleLegHipRaiseWithFootOnFoamRoller",38:"singleLegHipRaiseWithFootOnMedicineBall",39:"weightedSingleLegHipRaiseWithFootOnMedicineBall",40:"singleLegHipRaiseWithHeadOnBosuBall",41:"weightedSingleLegHipRaiseWithHeadOnBosuBall",42:"weightedClamBridge",43:"singleLegSwissBallHipRaiseAndLegCurl",44:"clams",45:"innerThighCircles",46:"innerThighSideLift",47:"legCircles",48:"legLift",49:"legLiftInExternalRotation"},hipStabilityExerciseName:{0:"bandSideLyingLegRaise",1:"deadBug",2:"weightedDeadBug",3:"externalHipRaise",4:"weightedExternalHipRaise",5:"fireHydrantKicks",6:"weightedFireHydrantKicks",7:"hipCircles",8:"weightedHipCircles",9:"innerThighLift",10:"weightedInnerThighLift",11:"lateralWalksWithBandAtAnkles",12:"pretzelSideKick",13:"weightedPretzelSideKick",14:"proneHipInternalRotation",15:"weightedProneHipInternalRotation",16:"quadruped",17:"quadrupedHipExtension",18:"weightedQuadrupedHipExtension",19:"quadrupedWithLegLift",20:"weightedQuadrupedWithLegLift",21:"sideLyingLegRaise",22:"weightedSideLyingLegRaise",23:"slidingHipAdduction",24:"weightedSlidingHipAdduction",25:"standingAdduction",26:"weightedStandingAdduction",27:"standingCableHipAbduction",28:"standingHipAbduction",29:"weightedStandingHipAbduction",30:"standingRearLegRaise",31:"weightedStandingRearLegRaise",32:"supineHipInternalRotation",33:"weightedSupineHipInternalRotation",34:"lyingAbductionStretch"},hipSwingExerciseName:{0:"singleArmKettlebellSwing",1:"singleArmDumbbellSwing",2:"stepOutSwing",3:"oneArmSwing"},hyperextensionExerciseName:{0:"backExtensionWithOppositeArmAndLegReach",1:"weightedBackExtensionWithOppositeArmAndLegReach",2:"baseRotations",3:"weightedBaseRotations",4:"bentKneeReverseHyperextension",5:"weightedBentKneeReverseHyperextension",6:"hollowHoldAndRoll",7:"weightedHollowHoldAndRoll",8:"kicks",9:"weightedKicks",10:"kneeRaises",11:"weightedKneeRaises",12:"kneelingSuperman",13:"weightedKneelingSuperman",14:"latPullDownWithRow",15:"medicineBallDeadliftToReach",16:"oneArmOneLegRow",17:"oneArmRowWithBand",18:"overheadLungeWithMedicineBall",19:"plankKneeTucks",20:"weightedPlankKneeTucks",21:"sideStep",22:"weightedSideStep",23:"singleLegBackExtension",24:"weightedSingleLegBackExtension",25:"spineExtension",26:"weightedSpineExtension",27:"staticBackExtension",28:"weightedStaticBackExtension",29:"supermanFromFloor",30:"weightedSupermanFromFloor",31:"swissBallBackExtension",32:"weightedSwissBallBackExtension",33:"swissBallHyperextension",34:"weightedSwissBallHyperextension",35:"swissBallOppositeArmAndLegLift",36:"weightedSwissBallOppositeArmAndLegLift",37:"supermanOnSwissBall",38:"cobra",39:"supineFloorBarre"},lateralRaiseExerciseName:{0:"45DegreeCableExternalRotation",1:"alternatingLateralRaiseWithStaticHold",2:"barMuscleUp",3:"bentOverLateralRaise",4:"cableDiagonalRaise",5:"cableFrontRaise",6:"calorieRow",7:"comboShoulderRaise",8:"dumbbellDiagonalRaise",9:"dumbbellVRaise",10:"frontRaise",11:"leaningDumbbellLateralRaise",12:"lyingDumbbellRaise",13:"muscleUp",14:"oneArmCableLateralRaise",15:"overhandGripRearLateralRaise",16:"plateRaises",17:"ringDip",18:"weightedRingDip",19:"ringMuscleUp",20:"weightedRingMuscleUp",21:"ropeClimb",22:"weightedRopeClimb",23:"scaption",24:"seatedLateralRaise",25:"seatedRearLateralRaise",26:"sideLyingLateralRaise",27:"standingLift",28:"suspendedRow",29:"underhandGripRearLateralRaise",30:"wallSlide",31:"weightedWallSlide",32:"armCircles",33:"shavingTheHead",34:"dumbbellLateralRaise",36:"ringDipKipping",37:"wallWalk",38:"dumbbellFrontRaiseWheelchair",39:"dumbbellLateralRaiseWheelchair",40:"poleDoubleArmOverheadAndForwardWheelchair",41:"poleStraightArmOverheadWheelchair"},legCurlExerciseName:{0:"legCurl",1:"weightedLegCurl",2:"goodMorning",3:"seatedBarbellGoodMorning",4:"singleLegBarbellGoodMorning",5:"singleLegSlidingLegCurl",6:"slidingLegCurl",7:"splitBarbellGoodMorning",8:"splitStanceExtension",9:"staggeredStanceGoodMorning",10:"swissBallHipRaiseAndLegCurl",11:"zercherGoodMorning",12:"bandGoodMorning",13:"barGoodMorning"},legRaiseExerciseName:{0:"hangingKneeRaise",1:"hangingLegRaise",2:"weightedHangingLegRaise",3:"hangingSingleLegRaise",4:"weightedHangingSingleLegRaise",5:"kettlebellLegRaises",6:"legLoweringDrill",7:"weightedLegLoweringDrill",8:"lyingStraightLegRaise",9:"weightedLyingStraightLegRaise",10:"medicineBallLegDrops",11:"quadrupedLegRaise",12:"weightedQuadrupedLegRaise",13:"reverseLegRaise",14:"weightedReverseLegRaise",15:"reverseLegRaiseOnSwissBall",16:"weightedReverseLegRaiseOnSwissBall",17:"singleLegLoweringDrill",18:"weightedSingleLegLoweringDrill",19:"weightedHangingKneeRaise",20:"lateralStepover",21:"weightedLateralStepover"},lungeExerciseName:{0:"overheadLunge",1:"lungeMatrix",2:"weightedLungeMatrix",3:"alternatingBarbellForwardLunge",4:"alternatingDumbbellLungeWithReach",5:"backFootElevatedDumbbellSplitSquat",6:"barbellBoxLunge",7:"barbellBulgarianSplitSquat",8:"barbellCrossoverLunge",9:"barbellFrontSplitSquat",10:"barbellLunge",11:"barbellReverseLunge",12:"barbellSideLunge",13:"barbellSplitSquat",14:"coreControlRearLunge",15:"diagonalLunge",16:"dropLunge",17:"dumbbellBoxLunge",18:"dumbbellBulgarianSplitSquat",19:"dumbbellCrossoverLunge",20:"dumbbellDiagonalLunge",21:"dumbbellLunge",22:"dumbbellLungeAndRotation",23:"dumbbellOverheadBulgarianSplitSquat",24:"dumbbellReverseLungeToHighKneeAndPress",25:"dumbbellSideLunge",26:"elevatedFrontFootBarbellSplitSquat",27:"frontFootElevatedDumbbellSplitSquat",28:"gunslingerLunge",29:"lawnmowerLunge",30:"lowLungeWithIsometricAdduction",31:"lowSideToSideLunge",32:"lunge",33:"weightedLunge",34:"lungeWithArmReach",35:"lungeWithDiagonalReach",36:"lungeWithSideBend",37:"offsetDumbbellLunge",38:"offsetDumbbellReverseLunge",39:"overheadBulgarianSplitSquat",40:"overheadDumbbellReverseLunge",41:"overheadDumbbellSplitSquat",42:"overheadLungeWithRotation",43:"reverseBarbellBoxLunge",44:"reverseBoxLunge",45:"reverseDumbbellBoxLunge",46:"reverseDumbbellCrossoverLunge",47:"reverseDumbbellDiagonalLunge",48:"reverseLungeWithReachBack",49:"weightedReverseLungeWithReachBack",50:"reverseLungeWithTwistAndOverheadReach",51:"weightedReverseLungeWithTwistAndOverheadReach",52:"reverseSlidingBoxLunge",53:"weightedReverseSlidingBoxLunge",54:"reverseSlidingLunge",55:"weightedReverseSlidingLunge",56:"runnersLungeToBalance",57:"weightedRunnersLungeToBalance",58:"shiftingSideLunge",59:"sideAndCrossoverLunge",60:"weightedSideAndCrossoverLunge",61:"sideLunge",62:"weightedSideLunge",63:"sideLungeAndPress",64:"sideLungeJumpOff",65:"sideLungeSweep",66:"weightedSideLungeSweep",67:"sideLungeToCrossoverTap",68:"weightedSideLungeToCrossoverTap",69:"sideToSideLungeChops",70:"weightedSideToSideLungeChops",71:"siffJumpLunge",72:"weightedSiffJumpLunge",73:"singleArmReverseLungeAndPress",74:"slidingLateralLunge",75:"weightedSlidingLateralLunge",76:"walkingBarbellLunge",77:"walkingDumbbellLunge",78:"walkingLunge",79:"weightedWalkingLunge",80:"wideGripOverheadBarbellSplitSquat",81:"alternatingDumbbellLunge",82:"dumbbellReverseLunge",83:"overheadDumbbellLunge",84:"scissorPowerSwitch",85:"dumbbellOverheadWalkingLunge",86:"curtsyLunge",87:"weightedCurtsyLunge",88:"weightedShiftingSideLunge",89:"weightedSideLungeAndPress",90:"weightedSideLungeJumpOff"},olympicLiftExerciseName:{0:"barbellHangPowerClean",1:"barbellHangSquatClean",2:"barbellPowerClean",3:"barbellPowerSnatch",4:"barbellSquatClean",5:"cleanAndJerk",6:"barbellHangPowerSnatch",7:"barbellHangPull",8:"barbellHighPull",9:"barbellSnatch",10:"barbellSplitJerk",11:"clean",12:"dumbbellClean",13:"dumbbellHangPull",14:"oneHandDumbbellSplitSnatch",15:"pushJerk",16:"singleArmDumbbellSnatch",17:"singleArmHangSnatch",18:"singleArmKettlebellSnatch",19:"splitJerk",20:"squatCleanAndJerk",21:"dumbbellHangSnatch",22:"dumbbellPowerCleanAndJerk",23:"dumbbellPowerCleanAndPushPress",24:"dumbbellPowerCleanAndStrictPress",25:"dumbbellSnatch",26:"medicineBallClean",27:"cleanAndPress",28:"snatch"},plankExerciseName:{0:"45DegreePlank",1:"weighted45DegreePlank",2:"90DegreeStaticHold",3:"weighted90DegreeStaticHold",4:"bearCrawl",5:"weightedBearCrawl",6:"crossBodyMountainClimber",7:"weightedCrossBodyMountainClimber",8:"elbowPlankPikeJacks",9:"weightedElbowPlankPikeJacks",10:"elevatedFeetPlank",11:"weightedElevatedFeetPlank",12:"elevatorAbs",13:"weightedElevatorAbs",14:"extendedPlank",15:"weightedExtendedPlank",16:"fullPlankPasseTwist",17:"weightedFullPlankPasseTwist",18:"inchingElbowPlank",19:"weightedInchingElbowPlank",20:"inchwormToSidePlank",21:"weightedInchwormToSidePlank",22:"kneelingPlank",23:"weightedKneelingPlank",24:"kneelingSidePlankWithLegLift",25:"weightedKneelingSidePlankWithLegLift",26:"lateralRoll",27:"weightedLateralRoll",28:"lyingReversePlank",29:"weightedLyingReversePlank",30:"medicineBallMountainClimber",31:"weightedMedicineBallMountainClimber",32:"modifiedMountainClimberAndExtension",33:"weightedModifiedMountainClimberAndExtension",34:"mountainClimber",35:"weightedMountainClimber",36:"mountainClimberOnSlidingDiscs",37:"weightedMountainClimberOnSlidingDiscs",38:"mountainClimberWithFeetOnBosuBall",39:"weightedMountainClimberWithFeetOnBosuBall",40:"mountainClimberWithHandsOnBench",41:"mountainClimberWithHandsOnSwissBall",42:"weightedMountainClimberWithHandsOnSwissBall",43:"plank",44:"plankJacksWithFeetOnSlidingDiscs",45:"weightedPlankJacksWithFeetOnSlidingDiscs",46:"plankKneeTwist",47:"weightedPlankKneeTwist",48:"plankPikeJumps",49:"weightedPlankPikeJumps",50:"plankPikes",51:"weightedPlankPikes",52:"plankToStandUp",53:"weightedPlankToStandUp",54:"plankWithArmRaise",55:"weightedPlankWithArmRaise",56:"plankWithKneeToElbow",57:"weightedPlankWithKneeToElbow",58:"plankWithObliqueCrunch",59:"weightedPlankWithObliqueCrunch",60:"plyometricSidePlank",61:"weightedPlyometricSidePlank",62:"rollingSidePlank",63:"weightedRollingSidePlank",64:"sideKickPlank",65:"weightedSideKickPlank",66:"sidePlank",67:"weightedSidePlank",68:"sidePlankAndRow",69:"weightedSidePlankAndRow",70:"sidePlankLift",71:"weightedSidePlankLift",72:"sidePlankWithElbowOnBosuBall",73:"weightedSidePlankWithElbowOnBosuBall",74:"sidePlankWithFeetOnBench",75:"weightedSidePlankWithFeetOnBench",76:"sidePlankWithKneeCircle",77:"weightedSidePlankWithKneeCircle",78:"sidePlankWithKneeTuck",79:"weightedSidePlankWithKneeTuck",80:"sidePlankWithLegLift",81:"weightedSidePlankWithLegLift",82:"sidePlankWithReachUnder",83:"weightedSidePlankWithReachUnder",84:"singleLegElevatedFeetPlank",85:"weightedSingleLegElevatedFeetPlank",86:"singleLegFlexAndExtend",87:"weightedSingleLegFlexAndExtend",88:"singleLegSidePlank",89:"weightedSingleLegSidePlank",90:"spidermanPlank",91:"weightedSpidermanPlank",92:"straightArmPlank",93:"weightedStraightArmPlank",94:"straightArmPlankWithShoulderTouch",95:"weightedStraightArmPlankWithShoulderTouch",96:"swissBallPlank",97:"weightedSwissBallPlank",98:"swissBallPlankLegLift",99:"weightedSwissBallPlankLegLift",100:"swissBallPlankLegLiftAndHold",101:"swissBallPlankWithFeetOnBench",102:"weightedSwissBallPlankWithFeetOnBench",103:"swissBallProneJackknife",104:"weightedSwissBallProneJackknife",105:"swissBallSidePlank",106:"weightedSwissBallSidePlank",107:"threeWayPlank",108:"weightedThreeWayPlank",109:"towelPlankAndKneeIn",110:"weightedTowelPlankAndKneeIn",111:"tStabilization",112:"weightedTStabilization",113:"turkishGetUpToSidePlank",114:"weightedTurkishGetUpToSidePlank",115:"twoPointPlank",116:"weightedTwoPointPlank",117:"weightedPlank",118:"wideStancePlankWithDiagonalArmLift",119:"weightedWideStancePlankWithDiagonalArmLift",120:"wideStancePlankWithDiagonalLegLift",121:"weightedWideStancePlankWithDiagonalLegLift",122:"wideStancePlankWithLegLift",123:"weightedWideStancePlankWithLegLift",124:"wideStancePlankWithOppositeArmAndLegLift",125:"weightedMountainClimberWithHandsOnBench",126:"weightedSwissBallPlankLegLiftAndHold",127:"weightedWideStancePlankWithOppositeArmAndLegLift",128:"plankWithFeetOnSwissBall",129:"sidePlankToPlankWithReachUnder",130:"bridgeWithGluteLowerLift",131:"bridgeOneLegBridge",132:"plankWithArmVariations",133:"plankWithLegLift",134:"reversePlankWithLegPull",135:"ringPlankSprawls"},plyoExerciseName:{0:"alternatingJumpLunge",1:"weightedAlternatingJumpLunge",2:"barbellJumpSquat",3:"bodyWeightJumpSquat",4:"weightedJumpSquat",5:"crossKneeStrike",6:"weightedCrossKneeStrike",7:"depthJump",8:"weightedDepthJump",9:"dumbbellJumpSquat",10:"dumbbellSplitJump",11:"frontKneeStrike",12:"weightedFrontKneeStrike",13:"highBoxJump",14:"weightedHighBoxJump",15:"isometricExplosiveBodyWeightJumpSquat",16:"weightedIsometricExplosiveJumpSquat",17:"lateralLeapAndHop",18:"weightedLateralLeapAndHop",19:"lateralPlyoSquats",20:"weightedLateralPlyoSquats",21:"lateralSlide",22:"weightedLateralSlide",23:"medicineBallOverheadThrows",24:"medicineBallSideThrow",25:"medicineBallSlam",26:"sideToSideMedicineBallThrows",27:"sideToSideShuffleJump",28:"weightedSideToSideShuffleJump",29:"squatJumpOntoBox",30:"weightedSquatJumpOntoBox",31:"squatJumpsInAndOut",32:"weightedSquatJumpsInAndOut",33:"boxJump",34:"boxJumpOvers",35:"boxJumpOversOverTheBox",36:"starJumpSquats",37:"jumpSquat"},pullUpExerciseName:{0:"bandedPullUps",1:"30DegreeLatPulldown",2:"bandAssistedChinUp",3:"closeGripChinUp",4:"weightedCloseGripChinUp",5:"closeGripLatPulldown",6:"crossoverChinUp",7:"weightedCrossoverChinUp",8:"ezBarPullover",9:"hangingHurdle",10:"weightedHangingHurdle",11:"kneelingLatPulldown",12:"kneelingUnderhandGripLatPulldown",13:"latPulldown",14:"mixedGripChinUp",15:"weightedMixedGripChinUp",16:"mixedGripPullUp",17:"weightedMixedGripPullUp",18:"reverseGripPulldown",19:"standingCablePullover",20:"straightArmPulldown",21:"swissBallEzBarPullover",22:"towelPullUp",23:"weightedTowelPullUp",24:"weightedPullUp",25:"wideGripLatPulldown",26:"wideGripPullUp",27:"weightedWideGripPullUp",28:"burpeePullUp",29:"weightedBurpeePullUp",30:"jumpingPullUps",31:"weightedJumpingPullUps",32:"kippingPullUp",33:"weightedKippingPullUp",34:"lPullUp",35:"weightedLPullUp",36:"suspendedChinUp",37:"weightedSuspendedChinUp",38:"pullUp",39:"chinUp",40:"neutralGripChinUp",41:"weightedChinUp",42:"bandAssistedPullUp",43:"neutralGripPullUp",44:"weightedNeutralGripChinUp",45:"weightedNeutralGripPullUp"},pushUpExerciseName:{0:"chestPressWithBand",1:"alternatingStaggeredPushUp",2:"weightedAlternatingStaggeredPushUp",3:"alternatingHandsMedicineBallPushUp",4:"weightedAlternatingHandsMedicineBallPushUp",5:"bosuBallPushUp",6:"weightedBosuBallPushUp",7:"clappingPushUp",8:"weightedClappingPushUp",9:"closeGripMedicineBallPushUp",10:"weightedCloseGripMedicineBallPushUp",11:"closeHandsPushUp",12:"weightedCloseHandsPushUp",13:"declinePushUp",14:"weightedDeclinePushUp",15:"diamondPushUp",16:"weightedDiamondPushUp",17:"explosiveCrossoverPushUp",18:"weightedExplosiveCrossoverPushUp",19:"explosivePushUp",20:"weightedExplosivePushUp",21:"feetElevatedSideToSidePushUp",22:"weightedFeetElevatedSideToSidePushUp",23:"handReleasePushUp",24:"weightedHandReleasePushUp",25:"handstandPushUp",26:"weightedHandstandPushUp",27:"inclinePushUp",28:"weightedInclinePushUp",29:"isometricExplosivePushUp",30:"weightedIsometricExplosivePushUp",31:"judoPushUp",32:"weightedJudoPushUp",33:"kneelingPushUp",34:"weightedKneelingPushUp",35:"medicineBallChestPass",36:"medicineBallPushUp",37:"weightedMedicineBallPushUp",38:"oneArmPushUp",39:"weightedOneArmPushUp",40:"weightedPushUp",41:"pushUpAndRow",42:"weightedPushUpAndRow",43:"pushUpPlus",44:"weightedPushUpPlus",45:"pushUpWithFeetOnSwissBall",46:"weightedPushUpWithFeetOnSwissBall",47:"pushUpWithOneHandOnMedicineBall",48:"weightedPushUpWithOneHandOnMedicineBall",49:"shoulderPushUp",50:"weightedShoulderPushUp",51:"singleArmMedicineBallPushUp",52:"weightedSingleArmMedicineBallPushUp",53:"spidermanPushUp",54:"weightedSpidermanPushUp",55:"stackedFeetPushUp",56:"weightedStackedFeetPushUp",57:"staggeredHandsPushUp",58:"weightedStaggeredHandsPushUp",59:"suspendedPushUp",60:"weightedSuspendedPushUp",61:"swissBallPushUp",62:"weightedSwissBallPushUp",63:"swissBallPushUpPlus",64:"weightedSwissBallPushUpPlus",65:"tPushUp",66:"weightedTPushUp",67:"tripleStopPushUp",68:"weightedTripleStopPushUp",69:"wideHandsPushUp",70:"weightedWideHandsPushUp",71:"paralletteHandstandPushUp",72:"weightedParalletteHandstandPushUp",73:"ringHandstandPushUp",74:"weightedRingHandstandPushUp",75:"ringPushUp",76:"weightedRingPushUp",77:"pushUp",78:"pilatesPushup",79:"dynamicPushUp",80:"kippingHandstandPushUp",81:"shoulderTappingPushUp",82:"bicepsPushUp",83:"hinduPushUp",84:"pikePushUp",85:"wideGripPushUp",86:"weightedBicepsPushUp",87:"weightedHinduPushUp",88:"weightedPikePushUp",89:"kippingParalletteHandstandPushUp",90:"wallPushUp"},rowExerciseName:{0:"barbellStraightLegDeadliftToRow",1:"cableRowStanding",2:"dumbbellRow",3:"elevatedFeetInvertedRow",4:"weightedElevatedFeetInvertedRow",5:"facePull",6:"facePullWithExternalRotation",7:"invertedRowWithFeetOnSwissBall",8:"weightedInvertedRowWithFeetOnSwissBall",9:"kettlebellRow",10:"modifiedInvertedRow",11:"weightedModifiedInvertedRow",12:"neutralGripAlternatingDumbbellRow",13:"oneArmBentOverRow",14:"oneLeggedDumbbellRow",15:"renegadeRow",16:"reverseGripBarbellRow",17:"ropeHandleCableRow",18:"seatedCableRow",19:"seatedDumbbellRow",20:"singleArmCableRow",21:"singleArmCableRowAndRotation",22:"singleArmInvertedRow",23:"weightedSingleArmInvertedRow",24:"singleArmNeutralGripDumbbellRow",25:"singleArmNeutralGripDumbbellRowAndRotation",26:"suspendedInvertedRow",27:"weightedSuspendedInvertedRow",28:"tBarRow",29:"towelGripInvertedRow",30:"weightedTowelGripInvertedRow",31:"underhandGripCableRow",32:"vGripCableRow",33:"wideGripSeatedCableRow",34:"alternatingDumbbellRow",35:"invertedRow",36:"row",37:"weightedRow",38:"indoorRow",39:"bandedFacePulls",40:"chestSupportedDumbbellRow",41:"declineRingRow",42:"elevatedRingRow",43:"rdlBentOverRowWithBarbellDumbbell",44:"ringRow",45:"barbellRow",46:"bentOverRowWithBarbell",47:"bentOverRowWithDumbell",48:"seatedUnderhandGripCableRow",49:"trxInvertedRow",50:"weightedInvertedRow",51:"weightedTrxInvertedRow",52:"dumbbellRowWheelchair"},shoulderPressExerciseName:{0:"alternatingDumbbellShoulderPress",1:"arnoldPress",2:"barbellFrontSquatToPushPress",3:"barbellPushPress",4:"barbellShoulderPress",5:"deadCurlPress",6:"dumbbellAlternatingShoulderPressAndTwist",7:"dumbbellHammerCurlToLungeToPress",8:"dumbbellPushPress",9:"floorInvertedShoulderPress",10:"weightedFloorInvertedShoulderPress",11:"invertedShoulderPress",12:"weightedInvertedShoulderPress",13:"oneArmPushPress",14:"overheadBarbellPress",15:"overheadDumbbellPress",16:"seatedBarbellShoulderPress",17:"seatedDumbbellShoulderPress",18:"singleArmDumbbellShoulderPress",19:"singleArmStepUpAndPress",20:"smithMachineOverheadPress",21:"splitStanceHammerCurlToPress",22:"swissBallDumbbellShoulderPress",23:"weightPlateFrontRaise",24:"dumbbellShoulderPress",25:"militaryPress",27:"strictPress",28:"dumbbellFrontRaise",29:"dumbbellCurlToOverheadPressWheelchair",30:"arnoldPressWheelchair",31:"overheadDumbbellPressWheelchair"},shoulderStabilityExerciseName:{0:"90DegreeCableExternalRotation",1:"bandExternalRotation",2:"bandInternalRotation",3:"bentArmLateralRaiseAndExternalRotation",4:"cableExternalRotation",5:"dumbbellFacePullWithExternalRotation",6:"floorIRaise",7:"weightedFloorIRaise",8:"floorTRaise",9:"weightedFloorTRaise",10:"floorYRaise",11:"weightedFloorYRaise",12:"inclineIRaise",13:"weightedInclineIRaise",14:"inclineLRaise",15:"weightedInclineLRaise",16:"inclineTRaise",17:"weightedInclineTRaise",18:"inclineWRaise",19:"weightedInclineWRaise",20:"inclineYRaise",21:"weightedInclineYRaise",22:"lyingExternalRotation",23:"seatedDumbbellExternalRotation",24:"standingLRaise",25:"swissBallIRaise",26:"weightedSwissBallIRaise",27:"swissBallTRaise",28:"weightedSwissBallTRaise",29:"swissBallWRaise",30:"weightedSwissBallWRaise",31:"swissBallYRaise",32:"weightedSwissBallYRaise",33:"cableInternalRotation",34:"lyingInternalRotation",35:"seatedDumbbellInternalRotation"},shrugExerciseName:{0:"barbellJumpShrug",1:"barbellShrug",2:"barbellUprightRow",3:"behindTheBackSmithMachineShrug",4:"dumbbellJumpShrug",5:"dumbbellShrug",6:"dumbbellUprightRow",7:"inclineDumbbellShrug",8:"overheadBarbellShrug",9:"overheadDumbbellShrug",10:"scaptionAndShrug",11:"scapularRetraction",12:"serratusChairShrug",13:"weightedSerratusChairShrug",14:"serratusShrug",15:"weightedSerratusShrug",16:"wideGripJumpShrug",17:"wideGripBarbellShrug",18:"behindTheBackShrug",19:"dumbbellShrugWheelchair",20:"shrugWheelchair",21:"shrugArmDownWheelchair",22:"shrugArmMidWheelchair",23:"shrugArmUpWheelchair",24:"uprightRow"},sitUpExerciseName:{0:"alternatingSitUp",1:"weightedAlternatingSitUp",2:"bentKneeVUp",3:"weightedBentKneeVUp",4:"butterflySitUp",5:"weightedButterflySitup",6:"crossPunchRollUp",7:"weightedCrossPunchRollUp",8:"crossedArmsSitUp",9:"weightedCrossedArmsSitUp",10:"getUpSitUp",11:"weightedGetUpSitUp",12:"hoveringSitUp",13:"weightedHoveringSitUp",14:"kettlebellSitUp",15:"medicineBallAlternatingVUp",16:"medicineBallSitUp",17:"medicineBallVUp",18:"modifiedSitUp",19:"negativeSitUp",20:"oneArmFullSitUp",21:"recliningCircle",22:"weightedRecliningCircle",23:"reverseCurlUp",24:"weightedReverseCurlUp",25:"singleLegSwissBallJackknife",26:"weightedSingleLegSwissBallJackknife",27:"theTeaser",28:"theTeaserWeighted",29:"threePartRollDown",30:"weightedThreePartRollDown",31:"vUp",32:"weightedVUp",33:"weightedRussianTwistOnSwissBall",34:"weightedSitUp",35:"xAbs",36:"weightedXAbs",37:"sitUp",38:"ghdSitUps",39:"sitUpTurkishGetUp",40:"russianTwistOnSwissBall"},squatExerciseName:{0:"legPress",1:"backSquatWithBodyBar",2:"backSquats",3:"weightedBackSquats",4:"balancingSquat",5:"weightedBalancingSquat",6:"barbellBackSquat",7:"barbellBoxSquat",8:"barbellFrontSquat",9:"barbellHackSquat",10:"barbellHangSquatSnatch",11:"barbellLateralStepUp",12:"barbellQuarterSquat",13:"barbellSiffSquat",14:"barbellSquatSnatch",15:"barbellSquatWithHeelsRaised",16:"barbellStepover",17:"barbellStepUp",18:"benchSquatWithRotationalChop",19:"weightedBenchSquatWithRotationalChop",20:"bodyWeightWallSquat",21:"weightedWallSquat",22:"boxStepSquat",23:"weightedBoxStepSquat",24:"bracedSquat",25:"crossedArmBarbellFrontSquat",26:"crossoverDumbbellStepUp",27:"dumbbellFrontSquat",28:"dumbbellSplitSquat",29:"dumbbellSquat",30:"dumbbellSquatClean",31:"dumbbellStepover",32:"dumbbellStepUp",33:"elevatedSingleLegSquat",34:"weightedElevatedSingleLegSquat",35:"figureFourSquats",36:"weightedFigureFourSquats",37:"gobletSquat",38:"kettlebellSquat",39:"kettlebellSwingOverhead",40:"kettlebellSwingWithFlipToSquat",41:"lateralDumbbellStepUp",42:"oneLeggedSquat",43:"overheadDumbbellSquat",44:"overheadSquat",45:"partialSingleLegSquat",46:"weightedPartialSingleLegSquat",47:"pistolSquat",48:"weightedPistolSquat",49:"plieSlides",50:"weightedPlieSlides",51:"plieSquat",52:"weightedPlieSquat",53:"prisonerSquat",54:"weightedPrisonerSquat",55:"singleLegBenchGetUp",56:"weightedSingleLegBenchGetUp",57:"singleLegBenchSquat",58:"weightedSingleLegBenchSquat",59:"singleLegSquatOnSwissBall",60:"weightedSingleLegSquatOnSwissBall",61:"squat",62:"weightedSquat",63:"squatsWithBand",64:"staggeredSquat",65:"weightedStaggeredSquat",66:"stepUp",67:"weightedStepUp",68:"suitcaseSquats",69:"sumoSquat",70:"sumoSquatSlideIn",71:"weightedSumoSquatSlideIn",72:"sumoSquatToHighPull",73:"sumoSquatToStand",74:"weightedSumoSquatToStand",75:"sumoSquatWithRotation",76:"weightedSumoSquatWithRotation",77:"swissBallBodyWeightWallSquat",78:"weightedSwissBallWallSquat",79:"thrusters",80:"unevenSquat",81:"weightedUnevenSquat",82:"waistSlimmingSquat",83:"wallBall",84:"wideStanceBarbellSquat",85:"wideStanceGobletSquat",86:"zercherSquat",87:"kbsOverhead",88:"squatAndSideKick",89:"squatJumpsInNOut",90:"pilatesPlieSquatsParallelTurnedOutFlatAndHeels",91:"releveStraightLegAndKneeBentWithOneLegVariation",92:"alternatingBoxDumbbellStepUps",93:"dumbbellOverheadSquatSingleArm",94:"dumbbellSquatSnatch",95:"medicineBallSquat",97:"wallBallSquatAndPress",98:"squatAmericanSwing",100:"airSquat",101:"dumbbellThrusters",102:"overheadBarbellSquat"},totalBodyExerciseName:{0:"burpee",1:"weightedBurpee",2:"burpeeBoxJump",3:"weightedBurpeeBoxJump",4:"highPullBurpee",5:"manMakers",6:"oneArmBurpee",7:"squatThrusts",8:"weightedSquatThrusts",9:"squatPlankPushUp",10:"weightedSquatPlankPushUp",11:"standingTRotationBalance",12:"weightedStandingTRotationBalance",13:"barbellBurpee",15:"burpeeBoxJumpOverYesLiterallyJumpingOverTheBox",16:"burpeeBoxJumpStepUpOver",17:"lateralBarbellBurpee",18:"totalBodyBurpeeOverBar",19:"burpeeBoxJumpOver",20:"burpeeWheelchair"},moveExerciseName:{0:"archAndCurl",1:"armCirclesWithBallBandAndWeight",2:"armStretch",3:"backMassage",4:"bellyBreathing",5:"bridgeWithBall",6:"diamondLegCrunch",7:"diamondLegLift",8:"eightPointShoulderOpener",9:"footRolling",10:"footwork",11:"footworkOnDisc",12:"forwardFold",13:"frogWithBand",14:"halfRollUp",15:"hamstringCurl",16:"hamstringStretch",17:"hipStretch",18:"hugATreeWithBallBandAndWeight",19:"kneeCircles",20:"kneeFoldsOnDisc",21:"lateralFlexion",22:"legStretchWithBand",23:"legStretchWithLegCircles",24:"lowerLiftOnDisc",25:"lungeSquat",26:"lungesWithKneeLift",27:"mermaidStretch",28:"neutralPelvicPosition",29:"pelvicClocksOnDisc",30:"pilatesPlieSquatsParallelTurnedOutFlatAndHeelsWithChair",31:"piriformisStretch",32:"plankKneeCrosses",33:"plankKneePulls",34:"plankUpDowns",35:"prayerMudra",36:"psoasLungeStretch",37:"ribcageBreathing",38:"rollDown",39:"rollUpWithWeightAndBand",40:"saw",41:"scapularStabilization",42:"scissorsOnDisc",43:"seatedHipStretchup",44:"seatedTwist",45:"shavingTheHeadWithBallBandAndWeight",46:"spinalTwist",47:"spinalTwistStretch",48:"spineStretchForward",49:"squatOpenArmTwistPose",50:"squatsWithBall",51:"standAndHang",52:"standingSideStretch",53:"standingSingleLegForwardBendWithItBandOpener",54:"straightLegCrunchWithLegLift",55:"straightLegCrunchWithLegLiftWithBall",56:"straightLegCrunchWithLegsCrossed",57:"straightLegCrunchWithLegsCrossedWithBall",58:"straightLegDiagonalCrunch",59:"straightLegDiagonalCrunchWithBall",60:"tailboneCurl",61:"throatLock",62:"tickTockSideRoll",63:"twist",64:"vLegCrunches",65:"vSit",66:"forwardFoldWheelchair",67:"forwardFoldPlusWheelchair",68:"armCirclesLowForwardWheelchair",69:"armCirclesMidForwardWheelchair",70:"armCirclesHighForwardWheelchair",71:"armCirclesLowBackwardWheelchair",72:"armCirclesMidBackwardWheelchair",73:"armCirclesHighBackwardWheelchair",74:"coreTwistsWheelchair",75:"armRaiseWheelchair",76:"chestExpandWheelchair",77:"armExtendWheelchair",78:"forwardBendWheelchair",79:"toeTouchWheelchair",80:"extendedToeTouchWheelchair",81:"seatedArmCircles",82:"trunkRotations",83:"seatedTrunkRotations",84:"toeTouch"},poseExerciseName:{0:"allFours",1:"ankleToKnee",2:"babyCobra",3:"boat",4:"boundAngle",5:"boundSeatedSingleLegForwardBend",6:"bow",7:"bowedHalfMoon",8:"bridge",9:"cat",10:"chair",11:"childs",12:"corpse",13:"cowFace",14:"cow",15:"devotionalWarrior",16:"dolphinPlank",17:"dolphin",18:"downDogKneeToNose",19:"downDogSplit",20:"downDogSplitOpenHipBentKnee",21:"downwardFacingDog",22:"eagle",23:"easySeated",24:"extendedPuppy",25:"extendedSideAngle",26:"fish",27:"fourLimbedStaff",28:"fullSplit",29:"gate",30:"halfChairHalfAnkleToKnee",31:"halfMoon",32:"headToKnee",33:"heron",34:"heros",35:"highLunge",36:"kneesChestChin",37:"lizard",38:"locust",39:"lowLunge",40:"lowLungeTwist",41:"lowLungeWithKneeDown",42:"mermaid",43:"mountain",44:"oneLeggedDownwardFacingPoseOpenHipBentKnee",45:"oneLeggedPigeon",46:"peacefulWarrior",47:"plank",48:"plow",49:"reclinedHandToFoot",50:"revolvedHalfMoon",51:"revolvedHeadToKnee",52:"revolvedTriangle",53:"runnersLunge",54:"seatedEasySideBend",55:"seatedEasyTwist",56:"seatedLongLegForwardBend",57:"seatedWideLegForwardBend",58:"shoulderStand",59:"sideBoat",60:"sidePlank",61:"sphinx",62:"squatOpenArmTwist",63:"squatPalmPress",64:"staff",65:"standingArmsUp",66:"standingForwardBendHalfwayUp",67:"standingForwardBend",68:"standingSideOpener",69:"standingSingleLegForwardBend",70:"standingSplit",71:"standingWideLegForwardBend",72:"standingWideLegForwardBendWithTwist",73:"supineSpinalTwist",74:"tableTop",75:"threadTheNeedle",76:"thunderbolt",77:"thunderboltPoseBothSidesArmStretch",78:"tree",79:"triangle",80:"upDog",81:"upwardFacingPlank",82:"warriorOne",83:"warriorThree",84:"warriorTwo",85:"wheel",86:"wideSideLunge",87:"deepBreathingWheelchair",88:"deepBreathingLowWheelchair",89:"deepBreathingMidWheelchair",90:"deepBreathingHighWheelchair",91:"prayerWheelchair",92:"overheadPrayerWheelchair",93:"cactusWheelchair",94:"breathingPunchesWheelchair",95:"breathingPunchesExtendedWheelchair",96:"breathingPunchesOverheadWheelchair",97:"breathingPunchesOverheadAndDownWheelchair",98:"breathingPunchesSideWheelchair",99:"breathingPunchesExtendedSideWheelchair",100:"breathingPunchesOverheadSideWheelchair",101:"breathingPunchesOverheadAndDownSideWheelchair",102:"leftHandBackWheelchair",103:"triangleWheelchair",104:"threadTheNeedleWheelchair",105:"neckFlexionAndExtensionWheelchair",106:"neckLateralFlexionWheelchair",107:"spineFlexionAndExtensionWheelchair",108:"spineRotationWheelchair",109:"spineLateralFlexionWheelchair",110:"alternativeSkiingWheelchair",111:"reachForwardWheelchair",112:"warriorWheelchair",113:"reverseWarriorWheelchair",114:"downwardFacingDogToCobra",115:"seatedCatCow"},tricepsExtensionExerciseName:{0:"benchDip",1:"weightedBenchDip",2:"bodyWeightDip",3:"cableKickback",4:"cableLyingTricepsExtension",5:"cableOverheadTricepsExtension",6:"dumbbellKickback",7:"dumbbellLyingTricepsExtension",8:"ezBarOverheadTricepsExtension",9:"inclineDip",10:"weightedInclineDip",11:"inclineEzBarLyingTricepsExtension",12:"lyingDumbbellPulloverToExtension",13:"lyingEzBarTricepsExtension",14:"lyingTricepsExtensionToCloseGripBenchPress",15:"overheadDumbbellTricepsExtension",16:"recliningTricepsPress",17:"reverseGripPressdown",18:"reverseGripTricepsPressdown",19:"ropePressdown",20:"seatedBarbellOverheadTricepsExtension",21:"seatedDumbbellOverheadTricepsExtension",22:"seatedEzBarOverheadTricepsExtension",23:"seatedSingleArmOverheadDumbbellExtension",24:"singleArmDumbbellOverheadTricepsExtension",25:"singleDumbbellSeatedOverheadTricepsExtension",26:"singleLegBenchDipAndKick",27:"weightedSingleLegBenchDipAndKick",28:"singleLegDip",29:"weightedSingleLegDip",30:"staticLyingTricepsExtension",31:"suspendedDip",32:"weightedSuspendedDip",33:"swissBallDumbbellLyingTricepsExtension",34:"swissBallEzBarLyingTricepsExtension",35:"swissBallEzBarOverheadTricepsExtension",36:"tabletopDip",37:"weightedTabletopDip",38:"tricepsExtensionOnFloor",39:"tricepsPressdown",40:"weightedDip",41:"alternatingDumbbellLyingTricepsExtension",42:"tricepsPress",43:"dumbbellKickbackWheelchair",44:"overheadDumbbellTricepsExtensionWheelchair"},warmUpExerciseName:{0:"quadrupedRocking",1:"neckTilts",2:"ankleCircles",3:"ankleDorsiflexionWithBand",4:"ankleInternalRotation",5:"armCircles",6:"bentOverReachToSky",7:"catCamel",8:"elbowToFootLunge",9:"forwardAndBackwardLegSwings",10:"groiners",11:"invertedHamstringStretch",12:"lateralDuckUnder",13:"neckRotations",14:"oppositeArmAndLegBalance",15:"reachRollAndLift",16:"scorpion",17:"shoulderCircles",18:"sideToSideLegSwings",19:"sleeperStretch",20:"slideOut",21:"swissBallHipCrossover",22:"swissBallReachRollAndLift",23:"swissBallWindshieldWipers",24:"thoracicRotation",25:"walkingHighKicks",26:"walkingHighKnees",27:"walkingKneeHugs",28:"walkingLegCradles",29:"walkout",30:"walkoutFromPushUpPosition",31:"bicepsStretch",32:"glutesStretch",33:"standingHamstringStretch",34:"stretch90_90",35:"stretchAbs",36:"stretchButterfly",37:"stretchCalf",38:"stretchCatCow",39:"stretchChildsPose",40:"stretchCobra",41:"stretchForearms",42:"stretchForwardGlutes",43:"stretchFrontSplit",44:"stretchHamstring",45:"stretchHipFlexorAndQuad",46:"stretchLat",47:"stretchLevatorScapulae",48:"stretchLungeWithSpinalTwist",49:"stretchLungingHipFlexor",50:"stretchLyingAbduction",51:"stretchLyingItBand",52:"stretchLyingKneeToChest",53:"stretchLyingPiriformis",54:"stretchLyingSpinalTwist",55:"stretchNeck",56:"stretchObliques",57:"stretchOverUnderShoulder",58:"stretchPectoral",59:"stretchPigeonPose",60:"stretchPiriformis",61:"stretchQuad",62:"stretchScorpion",63:"stretchShoulder",64:"stretchSide",65:"stretchSideLunge",66:"stretchSideSplit",67:"stretchStandingItBand",68:"stretchStraddle",69:"stretchTriceps",70:"stretchWallChestAndShoulder",71:"neckRotationsWheelchair",72:"halfKneelingArmRotation",73:"threeWayAnkleMobilization",74:"ninetyNinetyHipSwitch",75:"activeFrog",76:"shoulderSweeps",77:"ankleLunges",78:"backRollFoamRoller",79:"bearCrawl",80:"latissimusDorsiFoamRoll",81:"reverseTHipOpener",82:"shoulderRolls",83:"chestOpeners",84:"tricepsStretch",85:"upperBackStretch",86:"hipCircles",87:"ankleStretch",88:"marchingInPlace",89:"tricepsStretchWheelchair",90:"upperBackStretchWheelchair"},runExerciseName:{0:"run",1:"walk",2:"jog",3:"sprint",4:"runOrWalk",5:"speedWalk",6:"warmUp"},bikeExerciseName:{0:"bike",1:"ride",2:"sprint"},bandedExercisesExerciseName:{1:"abTwist",2:"backExtension",3:"bicycleCrunch",4:"calfRaises",5:"chestPress",6:"clamShells",7:"curl",8:"deadbug",9:"deadlift",10:"donkeyKick",11:"externalRotation",12:"externalRotationAt90DegreeAbduction",13:"facePull",14:"fireHydrant",15:"fly",16:"frontRaise",17:"gluteBridge",18:"hamstringCurls",19:"highPlankLegLifts",20:"hipExtension",21:"internalRotation",22:"jumpingJack",23:"kneelingCrunch",24:"lateralBandWalks",25:"lateralRaise",26:"latpull",27:"legAbduction",28:"legAdduction",29:"legExtension",30:"lunge",31:"plank",32:"pullApart",33:"pushUps",34:"reverseCrunch",35:"row",36:"shoulderAbduction",37:"shoulderExtension",38:"shoulderExternalRotation",39:"shoulderFlexionTo90Degrees",40:"sidePlankLegLifts",41:"sideRaise",42:"squat",43:"squatToPress",44:"tricepExtension",45:"tricepKickback",46:"uprightRow",47:"wallCrawlWithExternalRotation",49:"lateralRaiseWheelchair",50:"tricepsExtensionWheelchair",51:"chestFlyInclineWheelchair",52:"chestFlyDeclineWheelchair",53:"pullDownWheelchair",54:"straightArmPullDownWheelchair",55:"curlWheelchair",56:"overheadCurlWheelchair",57:"facePullWheelchair",58:"aroundTheWorldWheelchair",59:"pullApartWheelchair",60:"sideCurlWheelchair",61:"overheadPressWheelchair"},battleRopeExerciseName:{0:"alternatingFigureEight",1:"alternatingJumpWave",2:"alternatingKneelingToStandingWave",3:"alternatingLungeWave",4:"alternatingSquatWave",5:"alternatingWave",6:"alternatingWaveWithLateralShuffle",7:"clapWave",8:"doubleArmFigureEight",9:"doubleArmSideToSideSnake",10:"doubleArmSideWave",11:"doubleArmSlam",12:"doubleArmWave",13:"grapplerToss",14:"hipToss",15:"inAndOutWave",16:"insideCircle",17:"jumpingJacks",18:"outsideCircle",19:"rainbow",20:"sidePlankWave",21:"sidewinder",22:"sittingRussianTwist",23:"snakeWave",24:"splitJack",25:"stageCoach",26:"ultimateWarrior",27:"upperCuts"},ellipticalExerciseName:{0:"elliptical"},floorClimbExerciseName:{0:"floorClimb"},indoorBikeExerciseName:{0:"airBike",1:"assaultBike",3:"stationaryBike"},indoorRowExerciseName:{0:"rowingMachine"},ladderExerciseName:{0:"agility",1:"speed"},sandbagExerciseName:{0:"aroundTheWorld",1:"backSquat",2:"bearCrawlPullThrough",3:"bearHugSquat",4:"clean",5:"cleanAndPress",6:"curl",7:"frontCarry",8:"frontSquat",9:"lunge",10:"overheadPress",11:"plankPullThrough",12:"rotationalLunge",13:"row",14:"russianTwist",15:"shouldering",16:"shoveling",17:"sideLunge",18:"sprint",19:"zercherSquat"},sledExerciseName:{0:"backwardDrag",1:"chestPress",2:"forwardDrag",3:"lowPush",4:"push",5:"row"},sledgeHammerExerciseName:{0:"lateralSwing",1:"hammerSlam"},stairStepperExerciseName:{0:"stairStepper"},suspensionExerciseName:{0:"chestFly",1:"chestPress",2:"crunch",3:"curl",4:"dip",5:"facePull",6:"gluteBridge",7:"hamstringCurl",8:"hipDrop",9:"invertedRow",10:"kneeDriveJump",11:"kneeToChest",12:"latPullover",13:"lunge",14:"mountainClimber",15:"pendulum",16:"pike",17:"plank",18:"powerPull",19:"pullUp",20:"pushUp",21:"reverseMountainClimber",22:"reversePlank",23:"rollout",24:"row",25:"sideLunge",26:"sidePlank",27:"singleLegDeadlift",28:"singleLegSquat",29:"sitUp",30:"split",31:"squat",32:"squatJump",33:"tricepPress",34:"yFly"},tireExerciseName:{0:"flip"},bikeOutdoorExerciseName:{0:"bike"},runIndoorExerciseName:{0:"indoorTrackRun",1:"treadmill"},waterType:{0:"fresh",1:"salt",2:"en13319",3:"custom"},tissueModelType:{0:"zhl16c"},diveGasStatus:{0:"disabled",1:"enabled",2:"backupOnly"},diveAlert:{0:"ndlReached",1:"gasSwitchPrompted",2:"nearSurface",3:"approachingNdl",4:"po2Warn",5:"po2CritHigh",6:"po2CritLow",7:"timeAlert",8:"depthAlert",9:"decoCeilingBroken",10:"decoComplete",11:"safetyStopBroken",12:"safetyStopComplete",13:"cnsWarning",14:"cnsCritical",15:"otuWarning",16:"otuCritical",17:"ascentCritical",18:"alertDismissedByKey",19:"alertDismissedByTimeout",20:"batteryLow",21:"batteryCritical",22:"safetyStopStarted",23:"approachingFirstDecoStop",24:"setpointSwitchAutoLow",25:"setpointSwitchAutoHigh",26:"setpointSwitchManualLow",27:"setpointSwitchManualHigh",28:"autoSetpointSwitchIgnored",29:"switchedToOpenCircuit",30:"switchedToClosedCircuit",32:"tankBatteryLow",33:"po2CcrDilLow",34:"decoStopCleared",35:"apneaNeutralBuoyancy",36:"apneaTargetDepth",37:"apneaSurface",38:"apneaHighSpeed",39:"apneaLowSpeed"},diveAlarmType:{0:"depth",1:"time",2:"speed"},diveBacklightMode:{0:"atDepth",1:"alwaysOn"},sleepLevel:{0:"unmeasurable",1:"awake",2:"light",3:"deep",4:"rem"},spo2MeasurementType:{0:"offWrist",1:"spotCheck",2:"continuousCheck",3:"periodic"},ccrSetpointSwitchMode:{0:"manual",1:"automatic"},diveGasMode:{0:"openCircuit",1:"closedCircuitDiluent"},projectileType:{0:"arrow",1:"rifleCartridge",2:"pistolCartridge",3:"shotshell",4:"airRiflePellet",5:"other"},faveroProduct:{10:"assiomaUno",12:"assiomaDuo"},splitType:{1:"ascentSplit",2:"descentSplit",3:"intervalActive",4:"intervalRest",5:"intervalWarmup",6:"intervalCooldown",7:"intervalRecovery",8:"intervalOther",9:"climbActive",10:"climbRest",11:"surfActive",12:"runActive",13:"runRest",14:"workoutRound",17:"rwdRun",18:"rwdWalk",21:"windsurfActive",22:"rwdStand",23:"transition",28:"skiLiftSplit",29:"skiRunSplit"},climbProEvent:{0:"approach",1:"start",2:"complete"},gasConsumptionRateType:{0:"pressureSac",1:"volumeSac",2:"rmv"},tapSensitivity:{0:"high",1:"medium",2:"low"},radarThreatLevelType:{0:"threatUnknown",1:"threatNone",2:"threatApproaching",3:"threatApproachingFast"},sleepDisruptionSeverity:{0:"none",1:"low",2:"medium",3:"high"},napPeriodFeedback:{0:"none",1:"multipleNapsDuringDay",2:"jetlagIdealTimingIdealDuration",3:"jetlagIdealTimingLongDuration",4:"jetlagLateTimingIdealDuration",5:"jetlagLateTimingLongDuration",6:"idealTimingIdealDurationLowNeed",7:"idealTimingIdealDurationHighNeed",8:"idealTimingLongDurationLowNeed",9:"idealTimingLongDurationHighNeed",10:"lateTimingIdealDurationLowNeed",11:"lateTimingIdealDurationHighNeed",12:"lateTimingLongDurationLowNeed",13:"lateTimingLongDurationHighNeed",14:"idealDurationLowNeed",15:"idealDurationHighNeed",16:"longDurationLowNeed",17:"longDurationHighNeed"},napSource:{0:"automatic",1:"manualDevice",2:"manualGc"},maxMetSpeedSource:{0:"onboardGps",1:"connectedGps",2:"cadence"},maxMetHeartRateSource:{0:"whr",1:"hrm"},hrvStatus:{0:"none",1:"poor",2:"low",3:"unbalanced",4:"balanced"},noFlyTimeMode:{0:"standard",1:"flat24Hours"}},MesgNum:{FILE_ID:0,FILE_CREATOR:49,TIMESTAMP_CORRELATION:162,SOFTWARE:35,SLAVE_DEVICE:106,CAPABILITIES:1,FILE_CAPABILITIES:37,MESG_CAPABILITIES:38,FIELD_CAPABILITIES:39,DEVICE_SETTINGS:2,USER_PROFILE:3,HRM_PROFILE:4,SDM_PROFILE:5,BIKE_PROFILE:6,CONNECTIVITY:127,WATCHFACE_SETTINGS:159,OHR_SETTINGS:188,TIME_IN_ZONE:216,ZONES_TARGET:7,SPORT:12,HR_ZONE:8,SPEED_ZONE:53,CADENCE_ZONE:131,POWER_ZONE:9,MET_ZONE:10,TRAINING_SETTINGS:13,DIVE_SETTINGS:258,DIVE_ALARM:262,DIVE_APNEA_ALARM:393,DIVE_GAS:259,GOAL:15,ACTIVITY:34,SESSION:18,LAP:19,LENGTH:101,RECORD:20,EVENT:21,DEVICE_INFO:23,DEVICE_AUX_BATTERY_INFO:375,TRAINING_FILE:72,WEATHER_CONDITIONS:128,WEATHER_ALERT:129,GPS_METADATA:160,CAMERA_EVENT:161,GYROSCOPE_DATA:164,ACCELEROMETER_DATA:165,MAGNETOMETER_DATA:208,BAROMETER_DATA:209,THREE_D_SENSOR_CALIBRATION:167,ONE_D_SENSOR_CALIBRATION:210,VIDEO_FRAME:169,OBDII_DATA:174,NMEA_SENTENCE:177,AVIATION_ATTITUDE:178,VIDEO:184,VIDEO_TITLE:185,VIDEO_DESCRIPTION:186,VIDEO_CLIP:187,SET:225,JUMP:285,SPLIT:312,SPLIT_SUMMARY:313,CLIMB_PRO:317,FIELD_DESCRIPTION:206,DEVELOPER_DATA_ID:207,COURSE:31,COURSE_POINT:32,SEGMENT_ID:148,SEGMENT_LEADERBOARD_ENTRY:149,SEGMENT_POINT:150,SEGMENT_LAP:142,SEGMENT_FILE:151,WORKOUT:26,WORKOUT_SESSION:158,WORKOUT_STEP:27,EXERCISE_TITLE:264,SCHEDULE:28,TOTALS:33,WEIGHT_SCALE:30,BLOOD_PRESSURE:51,MONITORING_INFO:103,MONITORING:55,MONITORING_HR_DATA:211,SPO2_DATA:269,HR:132,STRESS_LEVEL:227,MAX_MET_DATA:229,HSA_BODY_BATTERY_DATA:314,HSA_EVENT:315,HSA_ACCELEROMETER_DATA:302,HSA_GYROSCOPE_DATA:376,HSA_STEP_DATA:304,HSA_SPO2_DATA:305,HSA_STRESS_DATA:306,HSA_RESPIRATION_DATA:307,HSA_HEART_RATE_DATA:308,HSA_CONFIGURATION_DATA:389,HSA_WRIST_TEMPERATURE_DATA:409,MEMO_GLOB:145,SLEEP_LEVEL:275,ANT_CHANNEL_ID:82,ANT_RX:80,ANT_TX:81,EXD_SCREEN_CONFIGURATION:200,EXD_DATA_FIELD_CONFIGURATION:201,EXD_DATA_CONCEPT_CONFIGURATION:202,DIVE_SUMMARY:268,AAD_ACCEL_FEATURES:289,HRV:78,BEAT_INTERVALS:290,HRV_STATUS_SUMMARY:370,HRV_VALUE:371,RAW_BBI:372,RESPIRATION_RATE:297,CHRONO_SHOT_SESSION:387,CHRONO_SHOT_DATA:388,TANK_UPDATE:319,TANK_SUMMARY:323,SLEEP_ASSESSMENT:346,SLEEP_DISRUPTION_SEVERITY_PERIOD:470,SLEEP_DISRUPTION_OVERNIGHT_SEVERITY:471,NAP_EVENT:412,SKIN_TEMP_OVERNIGHT:398,PAD:105}},P=fa});var pa,Kt,kt,Nt=N(()=>{ue();pa=l=>{if((l?.memoGlobMesgs?.length??0)==0)return;let e=l.memoGlobMesgs,s=Object.groupBy(e,({mesgNum:t,parentIndex:n,fieldNum:a})=>JSON.stringify({mesgNum:t,parentIndex:n,fieldNum:a}));Object.entries(s).forEach(([t,n])=>{let{mesgNum:a,parentIndex:i,fieldNum:o}=JSON.parse(t);n.sort((R,I)=>R.partIndex-I.partIndex);let u=Object.values(P.messages).find(R=>R.name==a||R.num==a),p=l[u?.messagesKey??a]?.[i];if(p==null)return;let T=u?.fields?.[o]?.name??o,_=n.reduce((R,I)=>R.concat(I.data),[]);p[T]=Kt(_)})},Kt=l=>{let e=new TextDecoder("utf-8"),s=new Uint8Array(l);return e.decode(s)},kt={decodeMemoGlobs:pa,decodeMemoGlobBytesToUtf8:Kt}});var ma,ra,Xt,da,ee,Xs=N(()=>{ma=(l,{legacyArrayMode:e=!1,isArray:s=!1}={})=>Xt(l)?null:e?l.length===1?l[0]:l:s?l:l[0],ra=l=>{if(l==null)return;let e=l.split("\0");for(;e[e.length-1]==="";)if(e.pop(),e.length===0)return"";return e.length===1?e[0]:e},Xt=l=>l.every(e=>e==null),da=(l,e)=>Array.isArray(l)?l.every(s=>s===e):l===e,ee={sanitizeValues:ma,trimStringTrailingNulls:ra,onlyNullValues:Xt,onlyInvalidValues:da}});var Ys,Yt,zs=N(()=>{q();Xs();Ys=class l{#t=0;#e=null;#s=null;#l=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0});#n=null;#a=!1;static fromByteArray(e){let s=new Uint8Array(e);return this.fromArrayBuffer(s.buffer)}static fromBuffer(e){let s=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return this.fromArrayBuffer(s)}static fromArrayBuffer(e){return new l(e)}constructor(e){this.#t=0,this.#e=e,this.#s=new DataView(e)}get length(){return this.#e.byteLength}get bytesRead(){return this.#t}get position(){return this.#t}get crcCalculator(){return this.#n}set crcCalculator(e){this.#n=e}get legacyArrayMode(){return this.#a}set legacyArrayMode(e){this.#a=e}reset(){this.seek(0)}seek(e){this.#t=e}slice(e,s){return this.#e.slice(e,s)}peekByte(){return this.#s.getUint8(this.#t)}readByte(){return this.readUInt8()}readBytes(e){if(this.#t+e>this.#e.byteLength)throw Error(`FIT Runtime Error end of stream at byte ${this.#t}`);let s=new Uint8Array(this.#e,this.#t,e);return this.#t+=e,this.#n?.addBytes(s,0,e),s}readUInt8(e){return this.readValue(r.BaseType.UINT8,1,{convertInvalidToNull:!1,...e})}readInt8(e){return this.readValue(r.BaseType.SINT8,1,{convertInvalidToNull:!1,...e})}readUInt16(e){return this.readValue(r.BaseType.UINT16,2,{convertInvalidToNull:!1,...e})}readInt16(e){return this.readValue(r.BaseType.SINT16,2,{convertInvalidToNull:!1,...e})}readUInt32(e){return this.readValue(r.BaseType.UINT32,4,{convertInvalidToNull:!1,...e})}readInt32(e){return this.readValue(r.BaseType.SINT32,4,{convertInvalidToNull:!1,...e})}readUInt64(e){return this.readValue(r.BaseType.UINT64,8,{convertInvalidToNull:!1,...e})}readInt64(e){return this.readValue(r.BaseType.SINT64,8,{convertInvalidToNull:!1,...e})}readFloat32(e){return this.readValue(r.BaseType.FLOAT32,4,{convertInvalidToNull:!1,...e})}readFloat64(e){return this.readValue(r.BaseType.FLOAT64,8,{convertInvalidToNull:!1,...e})}readString(e,s={}){return this.readValue(r.BaseType.STRING,e,s)}asUint8Array(){return new Uint8Array(this.#e)}readValue(e,s,{littleEndian:t=!0,convertInvalidToNull:n=!0,isArray:a=!1}={}){let i=r.BaseTypeDefinitions[e],o=i.size,u=i.invalid,p=this.#t,T=this.readBytes(s);if(s%o!==0)return n?null:u;if(e===r.BaseType.STRING){let h=this.#l.decode(T).replace(/\uFFFD/g,"").split(r.NULL_TERMINATOR);for(;h[h.length-1]==="";)h.pop();return h.length===0?null:this.#a?h.length===1?h[0]:h:h[0]}let _=s/o;if(_===1){let I=this.#o(e,p,t);return n&&I===u?null:!this.#a&&!a?I:ee.sanitizeValues([I],{legacyArrayMode:this.#a,isArray:a})}let R=[];for(let I=0;I<_;I++)R.push(this.#o(e,p+I*o,t));if(n){if(ee.onlyInvalidValues(R,u))return null;e!==r.BaseType.BYTE&&(R=R.map(I=>I===u?null:I))}return ee.sanitizeValues(R,{legacyArrayMode:this.#a,isArray:a})}#o(e,s,t){switch(e){case r.BaseType.BYTE:case r.BaseType.ENUM:case r.BaseType.UINT8:case r.BaseType.UINT8Z:return this.#s.getUint8(s);case r.BaseType.SINT8:return this.#s.getInt8(s);case r.BaseType.UINT16:case r.BaseType.UINT16Z:return this.#s.getUint16(s,t);case r.BaseType.SINT16:return this.#s.getInt16(s,t);case r.BaseType.UINT32:case r.BaseType.UINT32Z:return this.#s.getUint32(s,t);case r.BaseType.SINT32:return this.#s.getInt32(s,t);case r.BaseType.UINT64:case r.BaseType.UINT64Z:return this.#s.getBigUint64(s,t);case r.BaseType.SINT64:return this.#s.getBigInt64(s,t);case r.BaseType.FLOAT32:return this.#s.getFloat32(s,t);case r.BaseType.FLOAT64:return this.#s.getFloat64(s,t);default:throw new Error(`Unsupported FIT base type: ${e}`)}}},Yt=Ys});var zt,Js,Jt,Ta,$t,Se,_a,$s,Aa,$,Qs,Qt,jt=N(()=>{St();Mt();Ee();q();Vt();Nt();ue();zs();re();Xs();zt=128,Js=64,Jt=32,Ta=0,$t=15,Se=14,_a=12,$s=2,Aa=2199,$=Object.freeze({NORMAL:"normal",SKIP_HEADER:"skipHeader",DATA_ONLY:"dataOnly"}),Qs=class l{#t=[];#e={};#s=null;#l=new Et;#n={};#a=null;#o=[];#i=[];#f=$.NORMAL;#p=null;#_=null;#m=null;#A=!0;#u=!0;#r=!0;#c=!0;#h=!0;#b=!1;#I=!0;#R=!1;#T=!1;constructor(e){if(e==null)throw Error("FIT Runtime Error stream parameter is null or undefined");this.#s=e}static isFIT(e){try{let s=e.peekByte();if([Se,_a].includes(s)!=!0||e.length<s+$s||l.#y(e,{resetPosition:!0}).dataType!==".FIT")return!1}catch{return!1}return!0}isFIT(){return l.isFIT(this.#s)}checkIntegrity(){try{if(!this.isFIT())return!1;let e=l.#y(this.#s,{resetPosition:!0});if(this.#s.length<e.headerSize+e.dataSize+$s)return!1;let s=this.#s.asUint8Array();if(e.headerSize===Se&&e.headerCRC!==0&&e.headerCRC!=Q.calculateCRC(s,0,12)||(s[e.headerSize+e.dataSize+1]<<8)+s[e.headerSize+e.dataSize]!=Q.calculateCRC(s,0,e.headerSize+e.dataSize))return!1}catch{return!1}return!0}read({mesgListener:e=null,mesgDefinitionListener:s=null,fieldDescriptionListener:t=null,expandSubFields:n=!0,expandComponents:a=!0,applyScaleAndOffset:i=!0,convertTypesToStrings:o=!0,convertDateTimesToDates:u=!0,includeUnknownData:p=!1,mergeHeartRates:T=!0,decodeMemoGlobs:_=!1,skipHeader:R=!1,dataOnly:I=!1,legacyArrayMode:h=!1}={}){this.#p=e,this.#_=s,this.#m=t,this.#A=n,this.#u=a,this.#r=i,this.#c=o,this.#h=u,this.#b=p,this.#I=T,this.#R=_,this.#T=h,this.#t=[],this.#e={},this.#n={},this.#a=null;let U=[];try{for(this.#T,this.#I&&(!this.#r||!this.#u)&&this.#d("mergeHeartRates requires applyScaleAndOffset and expandComponents to be enabled"),I&&R&&this.#d("dataOnly and skipHeader cannot both be enabled"),this.#f=R?$.SKIP_HEADER:I?$.DATA_ONLY:$.NORMAL,this.#s.legacyArrayMode=this.#T;this.#s.position<this.#s.length;)this.#E();this.#I&&Wt.mergeHeartRates(this.#n.hrMesgs,this.#n.recordMesgs),this.#R&&kt.decodeMemoGlobs(this.#n)}catch(H){U.push(H)}finally{return{messages:this.#n,profileVersion:this.#a,errors:U}}}#E(){let e=this.#s.position;this.#f===$.NORMAL&&!this.isFIT()&&this.#d("input is not a FIT file"),this.#s.crcCalculator=new Q;let{headerSize:s,dataSize:t,profileVersion:n}=l.#y(this.#s,{decodeMode:this.#f});for(this.#a??=n;this.#s.position<e+s+t;)this.#S();let a=this.#s.crcCalculator.crc,i=this.#s.readUInt16();this.#f===$.NORMAL&&i!==a&&this.#d("CRC error")}#S(){let e=this.#s.peekByte();if((e&zt)===zt)return this.#D();if((e&Js)===Ta)return this.#F();if((e&Js)===Js)return this.#O()}#O(){let e=this.#s.readByte(),s={};s.recordHeader=e,s.localMesgNum=e&$t,s.reserved=this.#s.readByte(),s.architecture=this.#s.readByte(),s.endianness=s.architecture===0,s.globalMessageNumber=this.#s.readUInt16({littleEndian:s.endianness}),s.numFields=this.#s.readByte(),s.fieldDefinitions=[],s.developerFieldDefinitions=[],s.messageSize=0,s.developerDataSize=0;for(let n=0;n<s.numFields;n++){let a={fieldDefinitionNumber:this.#s.readByte(),size:this.#s.readByte(),baseType:this.#s.readByte()&r.BaseTypeMask};a.baseType in r.BaseTypeDefinitions||this.#d(),a.invalidValue=r.BaseTypeDefinitions[a.baseType].invalid,a.baseTypeSize=r.BaseTypeDefinitions[a.baseType].size,s.fieldDefinitions.push(a),s.messageSize+=a.size}if((e&Jt)===Jt){let n=this.#s.readByte();for(let a=0;a<n;a++){let i={fieldDefinitionNumber:this.#s.readByte(),size:this.#s.readByte(),developerDataIndex:this.#s.readByte()};s.developerFieldDefinitions.push(i),s.developerDataSize+=i.size}}this.#_?.({...s});let t=P.messages[s.globalMessageNumber];t==null&&this.#b&&(t={name:s.globalMessageNumber.toString(),messagesKey:s.globalMessageNumber.toString(),num:s.globalMessageNumber,fields:{}}),this.#t[s.localMesgNum]={...s,...t},t&&!this.#n.hasOwnProperty(t.messagesKey)&&(this.#n[t.messagesKey]=[])}#F(){let s=this.#s.readByte()&$t,t=this.#t[s];t==null&&this.#d();let n=t.fields??{},a=t.num,i={};this.#o=[],this.#i=[],t.fieldDefinitions.forEach(u=>{let p=n[u.fieldDefinitionNumber],{fieldName:T,rawFieldValue:_}=this.#H(t,u,p);T!=null&&(p!=null||this.#b)&&(i[T]={rawFieldValue:_,fieldDefinitionNumber:u.fieldDefinitionNumber},p?.subFields?.length>0&&this.#o.push(T),p?.hasComponents&&this.#i.push(T),p?.isAccumulated&&this.#k(t,i,p,_))});let o={};if(t.developerFieldDefinitions.forEach(u=>{let p=this.#B(u);if(p==null){this.#s.readBytes(u.size);return}u.baseType=p.fitBaseTypeId,u.invalidValue=r.BaseTypeDefinitions[u.baseType].invalid,u.baseTypeSize=r.BaseTypeDefinitions[u.baseType].size;let T=this.#w(t,u,p);T!=null&&(o[p.key]=T)}),a===P.MesgNum.DEVELOPER_DATA_ID)this.#v(i);else if(a===P.MesgNum.FIELD_DESCRIPTION){let u=Object.keys(this.#e).reduce((p,T)=>p+this.#e[T].fields.length,0);i.key={fieldValue:u,rawFieldValue:u},this.#U(i)}else this.#M(a,i),this.#P(a,i,n);if(this.#W(i,t),t.name!=null&&(Object.keys(i).forEach(u=>{i[u]=i[u].fieldValue}),Object.keys(o).length>0&&(i.developerFields=o),this.#n[t.messagesKey].push(i),this.#p?.(t.globalMessageNumber,i),a===P.MesgNum.FIELD_DESCRIPTION&&this.#m!=null)){let u=this.#n.developerDataIdMesgs?.find(p=>p.developerDataIndex===i.developerDataIndex)??{};this.#m(i.key,{...u},{...i})}}#D(){this.#d("compressed timestamp messages are not currently supported")}#H(e,s,t){let n=this.#g(e,s,t);return n==null?{}:{fieldName:t?.name??~~s.fieldDefinitionNumber,rawFieldValue:n}}#g(e,s,t){return this.#s.readValue(s.baseType,s.size,{littleEndian:e.endianness,isArray:t?.array??s.size>s.baseTypeSize})}#w(e,s,t){this.#s.legacyArrayMode=!0;let n=this.#g(e,s,t);return this.#s.legacyArrayMode=this.#T,n}#v(e){e==null||e.developerDataIndex.rawFieldValue==null||e.developerDataIndex.rawFieldValue===255||(this.#e[e.developerDataIndex.rawFieldValue]={developerDataIndex:e.developerDataIndex?.rawFieldValue,developerId:e.developerId?.rawFieldValue??null,applicationId:e.applicationId?.rawFieldValue??null,manufacturerId:e.manufacturerId?.rawFieldValue??null,applicationVersion:e.applicationVersion?.rawFieldValue??null,fields:[]})}#U(e){e==null||e.developerDataIndex.rawFieldValue==null||e.developerDataIndex.rawFieldValue===255||this.#e[e.developerDataIndex.rawFieldValue]!=null&&this.#e[e.developerDataIndex.rawFieldValue].fields.push({developerDataIndex:e.developerDataIndex?.rawFieldValue,fieldDefinitionNumber:e.fieldDefinitionNumber?.rawFieldValue,fitBaseTypeId:e.fitBaseTypeId?.rawFieldValue&r.BaseTypeMask,fieldName:e.fieldName?.rawFieldValue??null,array:e.array?.rawFieldValue??null,components:e.components?.rawFieldValue??null,scale:e.scale?.rawFieldValue??null,offset:e.offset?.rawFieldValue??null,units:e.units?.rawFieldValue??null,bits:e.bits?.rawFieldValue??null,accumulate:e.accumulate?.rawFieldValue??null,refFieldName:e.refFieldName?.rawFieldValue??null,refFieldValue:e.refFieldValue?.rawFieldValue??null,fitBaseUnitId:e.fitBaseUnitId?.rawFieldValue??null,nativeMesgNum:e.nativeMesgNum?.rawFieldValue??null,nativeFieldNum:e.nativeFieldNum?.rawFieldValue??null,key:e.key.rawFieldValue})}#B(e){try{return this.#e[e.developerDataIndex]?.fields?.find(s=>s.fieldDefinitionNumber==e.fieldDefinitionNumber)??null}catch{return null}}#M(e,s){!this.#A||this.#o.length==0||this.#o.forEach(t=>{let n=P.messages[e].fields[s[t].fieldDefinitionNumber];this.#G(s,n)})}#G(e,s){for(let t=0;t<s.subFields.length;t++){let n=s.subFields[t];for(let a=0;a<n.map.length;a++){let i=n.map[a],o=e[i.name];if(o!=null&&o.rawFieldValue===i.value){let u=e[s.name],p=Array.isArray(u.rawFieldValue)?[...u.rawFieldValue]:u.rawFieldValue;e[n.name]={...u,rawFieldValue:p,isSubField:!0},n.hasComponents&&this.#i.push(n.name);break}}}}#P(e,s,t){if(!this.#u||this.#i.length==0)return;let n={};for(;this.#i.length>0;){let a=this.#i.shift(),{rawFieldValue:i,fieldDefinitionNumber:o,isSubField:u}=s[a]??n[a],p=P.messages[e].fields[o];p=u?this.#C(p,a):p;let T=r.FieldTypeToBaseType[p.type];if(p.hasComponents===!1||T==null||ee.onlyInvalidValues(i,r.BaseTypeDefinitions[T].invalid))continue;let _=new Bt(i,T);for(let R=0;R<p.components.length&&!(_.bitsAvailable<p.bits[R]);R++){let I=t[p.components[R]];if(n[I.name]==null){let H=r.FieldTypeToBaseType[I.type],A=H!=null?r.BaseTypeDefinitions[H].invalid:255;n[I.name]={fieldValue:[],rawFieldValue:[],fieldDefinitionNumber:I.num,isExpandedField:!0,isArray:I?.array??!1,invalidValue:A}}let h=_.readBits(p.bits[R]);I.isAccumulated&&(h=this.#l.accumulate(e,I.num,h,p.bits[R])),h=h/p.scale[R]-p.offset[R];let U=(h+I.offset)*I.scale;if(n[I.name].rawFieldValue.push(U),U===n[I.name].invalidValue?n[I.name].fieldValue.push(null):(this.#c&&(h=this.#L(n,I,h)),n[I.name].fieldValue.push(h)),I.hasComponents&&this.#i.push(I.name),!_.hasBitsAvailable)break}}Object.keys(n).forEach(a=>{let i=n[a];n[a].fieldValue=ee.sanitizeValues(i.fieldValue,{legacyArrayMode:this.#T,isArray:i.isArray}),n[a].rawFieldValue=ee.sanitizeValues(i.rawFieldValue,{legacyArrayMode:this.#T,isArray:i.isArray}),s[a]=n[a]})}#W(e,s){let t=s?.fields??{};for(let n in e){let{rawFieldValue:a,fieldDefinitionNumber:i,isExpandedField:o,isSubField:u}=e[n],p=t[i];if(p=u?this.#C(p,n):p,!o){let T=this.#V(s,p,a);e[n].fieldValue=T}}}#V(e,s,t){let n=t;return s==null?n=t:r.NumericFieldTypesSet.has(s?.type??-1)?n=this.#K(e,s,t):s.type==="string"?n=t:s.type==="dateTime"&&this.#h?n=x.convertDateTimeToDate(t):this.#c?n=this.#L(e,s,t):n=t,n}#K(e,s,t){if(!this.#r||r.NumericFieldTypesSet.has(s?.type??-1)===!1||[P.MesgNum.DEVELOPER_DATA_ID,P.MesgNum.FIELD_DESCRIPTION].includes(e.globalMessageNumber)||t==null||Array.isArray(s?.scale??1)&&s.scale.length>1)return t;let n=Array.isArray(s?.scale??r.FIELD_DEFAULT_SCALE)?s?.scale[0]:s?.scale??r.FIELD_DEFAULT_SCALE,a=Array.isArray(s?.offset??r.FIELD_DEFAULT_OFFSET)?s?.offset[0]:s?.offset??r.FIELD_DEFAULT_OFFSET;try{return Array.isArray(t)?t.map(i=>i==null?i:i/n-a):t/n-a}catch{return t}}#k(e,s,t,n){(Array.isArray(n)?n:[n]).forEach(i=>{Object.values(s).forEach(o=>{(e.fields[o.fieldDefinitionNumber].components??[]).forEach((p,T)=>{let _=e.fields[p];_?.num==t.num&&_?.isAccumulated&&(i=(i/t.scale-t.offset+o.offset[T])*o.scale[T])})}),this.#l.createAccumulatedField(e.num,t.num,i)})}#L(e,s,t){if([P.MesgNum.DEVELOPER_DATA_ID,P.MesgNum.FIELD_DESCRIPTION].includes(e.globalMessageNumber)||r.NumericFieldTypesSet.has(s?.type??-1))return t;try{let n=P.types[s?.type??-1];return Array.isArray(t)?t.map(a=>a==null?a:n?.[a]??a):n?.[t]??t}catch{return t}}#C(e,s){let t=e.subFields.find(n=>n.name===s);return t??{}}static#y(e,{resetPosition:s=!1,decodeMode:t=$.NORMAL}){let n=e.position;if(t!==$.NORMAL){t===$.SKIP_HEADER&&e.seek(Se);let i=t===$.SKIP_HEADER?Se:0,o=e.length-i-$s;return{headerSize:i,dataSize:o}}let a={headerSize:e.readByte(),protocolVersion:e.readByte(),profileVersion:this.#N(e.readUInt16()),dataSize:e.readUInt32(),dataType:e.readString(4),headerCRC:null};return a.headerSize===14&&(a.headerCRC=e.readUInt16()),s&&e.seek(n),a}#d(e=""){throw Error(`FIT Runtime Error at byte ${this.#s.position} ${e}`.trimEnd())}static#N=e=>{let s=e>Aa?1e3:100;return{major:Math.floor(e/s),minor:e%s}}},Qt=Qs});var ca,js,Zt,qt=N(()=>{q();ue();ca=new TextEncoder,js=class{globalMessageNumber;localMesgNum;fieldDefinitions=[];developerFieldDefinitions=[];constructor(e,s,{fieldDescriptions:t=null}={}){try{if(s==null)throw new Error("mesg is missing or null");if(e==null)throw new Error("mesgNum is missing or null");let n=P.messages[e];if(n==null)throw new Error(`mesgNum: ${e} could not be found in the Profile`);if(this.globalMessageNumber=e,this.localMesgNum=0,Object.keys(s).forEach(a=>{if(s[a]==null)return;let i=Object.entries(n.fields).find(([,_])=>_.name===a);if(i==null)return;let o=r.FieldTypeToBaseType[i[1].baseType],u=r.BaseTypeDefinitions[o],p=i[1].components.length>1?r.FIELD_DEFAULT_SCALE:i[1].scale,T=i[1].components.length>1?r.FIELD_DEFAULT_OFFSET:i[1].offset;p=Array.isArray(p)?p[0]:p??r.FIELD_DEFAULT_SCALE,T=Array.isArray(T)?T[0]:T??r.FIELD_DEFAULT_OFFSET,this.fieldDefinitions.push({name:a,num:i[1].num,size:this.#t(s[a],u),baseType:o,baseTypeEndianFlag:u.baseTypeEndianFlag,type:i[1].type,scale:p,offset:T,components:i[1].components})}),Object.keys(s.developerFields??{})?.sort()?.forEach(a=>{let{developerDataIdMesg:i,fieldDescriptionMesg:o}=this.#e(t,a),u=r.BaseTypeDefinitions[o.fitBaseTypeId&r.BaseTypeMask];this.developerFieldDefinitions.push({key:a,baseType:o.fitBaseTypeId&r.BaseTypeMask,fieldDefinitionNumber:o.fieldDefinitionNumber,size:this.#t(s.developerFields[a],u),developerDataIndex:i.developerDataIndex,type:r.BaseTypeToFieldType[u.type],scale:1,offset:0,components:[]})}),this.fieldDefinitions.length===0)throw new Error("No valid fields were found in the message");if(this.fieldDefinitions.some(a=>a.size>r.MAX_FIELD_SIZE))throw new Error(`Some field sizes are greater than ${r.MAX_FIELD_SIZE}`,{cause:this.fieldDefinitions});this.developerFieldDefinitions.forEach(a=>{if(a.size>r.MAX_FIELD_SIZE)throw new Error(`Developer field size for key '${a.key}' is greater than ${r.MAX_FIELD_SIZE}`,{cause:a})})}catch(n){throw new Error("Could not construct MesgDefinition from Message",{cause:{cause:{message:n.message,cause:n.cause}}})}}write(e){let s=r.MESG_DEFINITION_MASK|this.localMesgNum&r.LOCAL_MESG_NUM_MASK;this.developerFieldDefinitions.length>0&&(s|=r.DEV_DATA_MASK),e.writeUInt8(s),e.writeUInt8(0),e.writeUInt8(r.ARCH_LITTLE_ENDIAN),e.writeUInt16(this.globalMessageNumber),e.writeUInt8(this.fieldDefinitions.length),this.fieldDefinitions.forEach(t=>{e.writeUInt8(t.num),e.writeUInt8(t.size),e.writeUInt8(t.baseType|t.baseTypeEndianFlag)}),this.developerFieldDefinitions.length>0&&(e.writeUInt8(this.developerFieldDefinitions.length),this.developerFieldDefinitions.forEach(t=>{e.writeUInt8(t.fieldDefinitionNumber),e.writeUInt8(t.size),e.writeUInt8(t.developerDataIndex)}))}equals(e){if(this.globalMessageNumber!==e.globalMessageNumber||this.fieldDefinitions.length!==e.fieldDefinitions.length||this.developerFieldDefinitions.length!==e.developerFieldDefinitions.length)return!1;for(let s=0;s<this.fieldDefinitions.length;s++){let t=this.fieldDefinitions[s];if(e.fieldDefinitions.find(n=>t.num===n.num&&t.size===n.size&&t.baseType===n.baseType)==null)return!1}for(let s=0;s<this.developerFieldDefinitions.length;s++){let t=this.developerFieldDefinitions[s];if(e.developerFieldDefinitions.find(n=>t.fieldDefinitionNumber===n.fieldDefinitionNumber&&t.size===n.size&&t.developerDataIndex===n.developerDataIndex)==null)return!1}return!0}#t(e,s){let t=Array.isArray(e)?e:[e];return s.type===r.BaseType.STRING?t.reduce((a,i)=>a+ca.encode(i).length+1,0):s.size*t.length}#e(e,s){try{if(e==null)throw new Error("no developer data field descriptions provided",{cause:{fieldDescriptions:e}});let{developerDataIdMesg:t,fieldDescriptionMesg:n}=e?.[s]??{};if(t==null||n==null)throw new Error(`could not find a developer field description for key ${s}`);let a=[];if(n.fitBaseTypeId==null&&a.push(`fieldDescriptionMesg fitBaseTypeId is ${n.fitBaseTypeId}`),n.fieldDefinitionNumber==null&&a.push(`fieldDescriptionMesg fieldDefinitionNumber is ${n.fieldDefinitionNumber}`),n.developerDataIndex==null&&a.push(`fieldDescriptionMesg developerDataIndex is ${n.developerDataIndex}`),t.developerDataIndex==null&&a.push(`developerDataIdMesg developerDataIndex is ${t.developerDataIndex}`),t.developerDataIndex!==n.developerDataIndex&&a.push(`developerDataIndex values do not match in fieldDescription ${t.developerDataIndex} != ${n.developerDataIndex}`),a.length>0)throw new Error("missing or invalid values in the fieldDescription,",{cause:{developerDataIdMesg:t,fieldDescriptionMesg:n,cause:a}});return{key:s,developerDataIdMesg:t,fieldDescriptionMesg:n}}catch(t){throw new Error(`invalid field description for key ${s}`,{cause:{key:s,cause:{message:t.message,cause:t.cause}}})}}},Zt=js});var en,ba,xt,Ia,Zs,sn,tn=N(()=>{q();en=1048576,ba=en*500,xt=en/2,Ia=ba,Zs=class{#t=null;#e=null;#s=0;#l=0;#n=null;#a=new TextEncoder;constructor({initialByteLength:e=xt,maxByteLength:s=Ia,resizeByBytes:t=xt}={}){this.#t=new ArrayBuffer(e,{maxByteLength:s}),this.#e=new DataView(this.#t),this.#l=t,this.#n={[r.BaseType.ENUM]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255},[r.BaseType.UINT8]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255},[r.BaseType.UINT16]:{setValue:this.#e.setUint16.bind(this.#e),size:2,mask:65535},[r.BaseType.UINT32]:{setValue:this.#e.setUint32.bind(this.#e),size:4,mask:4294967295},[r.BaseType.UINT64]:{setValue:this.#e.setBigUint64.bind(this.#e),size:8,mask:0xFFFFFFFFFFFFFFFFn},[r.BaseType.SINT8]:{setValue:this.#e.setInt8.bind(this.#e),size:1,mask:255},[r.BaseType.SINT16]:{setValue:this.#e.setInt16.bind(this.#e),size:2,mask:65535},[r.BaseType.SINT32]:{setValue:this.#e.setInt32.bind(this.#e),size:4,mask:4294967295},[r.BaseType.SINT64]:{setValue:this.#e.setBigInt64.bind(this.#e),size:8,mask:0xFFFFFFFFFFFFFFFFn},[r.BaseType.FLOAT32]:{setValue:this.#e.setFloat32.bind(this.#e),size:4},[r.BaseType.FLOAT64]:{setValue:this.#e.setFloat64.bind(this.#e),size:8},[r.BaseType.UINT8Z]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255},[r.BaseType.UINT16Z]:{setValue:this.#e.setUint16.bind(this.#e),size:2,mask:65535},[r.BaseType.UINT32Z]:{setValue:this.#e.setUint32.bind(this.#e),size:4,mask:4294967295},[r.BaseType.UINT64Z]:{setValue:this.#e.setBigUint64.bind(this.#e),size:8,mask:0xFFFFFFFFFFFFFFFFn},[r.BaseType.BYTE]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255}}}get length(){return this.#s}get uint8Array(){return new Uint8Array(this.#t.slice(0,this.#s))}writeUInt8(e){return this.write(e,r.BaseType.UINT8)}writeUInt16(e){return this.write(e,r.BaseType.UINT16)}writeUInt32(e){return this.write(e,r.BaseType.UINT32)}writeUInt64(e){return this.write(e,r.BaseType.UINT64)}writeSInt8(e){return this.write(e,r.BaseType.SINT8)}writeSInt16(e){return this.write(e,r.BaseType.SINT16)}writeSInt32(e){return this.write(e,r.BaseType.SINT32)}writeSInt64(e){return this.write(e,r.BaseType.SINT64)}writeFloat32(e){return this.write(e,r.BaseType.FLOAT32)}writeFloat64(e){return this.write(e,r.BaseType.FLOAT64)}writeUInt8z(e){return this.write(e,r.BaseType.UINT8Z)}writeUInt16z(e){return this.write(e,r.BaseType.UINT16Z)}writeUInt32z(e){return this.write(e,r.BaseType.UINT32Z)}writeUInt64z(e){return this.write(e,r.BaseType.UINT64Z)}writeByte(e){return this.write(e,r.BaseType.BYTE)}writeString(e){e=Array.isArray(e)?e.join(r.NULL_TERMINATOR):e;let s=this.#a.encode(e);return this.#f(s.byteLength),new Uint8Array(this.#t,this.#s,s.byteLength).set(s),this.#s+=s.byteLength,this.writeUInt8(r.NULL_TERMINATOR),this}write(e,s){if(s===r.BaseType.STRING)return this.writeString(e);this.#o(s,e)}set(e,s=0){return this.#f(e.byteLength+s),new Uint8Array(this.#t).set(e,s),this.#s=Math.max(this.#s,e.byteLength+s),this}[Symbol.iterator](){let e=0,s=this.#s,t=this.#e;return{next(){return e<s?{value:t.getUint8(e++),done:!1}:{done:!0}}}}#o(e,s){(Array.isArray(s)?s:[s]).forEach(n=>this.#i(e,n))}#i(e,s){let t=this.#n[e];this.#f(t.size);let n=t.mask==null?s:s&t.mask;return t.setValue(this.#s,n,!0),this.#s+=t.size,this}#f(e=1){if(this.#t.byteLength-this.#s>=e)return;let s=this.#t.byteLength+Math.max(this.#l,e);if(s>this.#t.maxByteLength)throw new Error("Can not resize OutputStream. Set a larger initial size.");this.#t.resize(s)}},sn=Zs});var Oe,ya,qs,Fe,nn=N(()=>{Ee();q();qt();tn();ue();re();Oe=14,ya=12,qs=class{constructor({fieldDescriptions:e=null}={}){this.#r={};for(let[s,{developerDataIdMesg:t,fieldDescriptionMesg:n}]of Object.entries(e??{}))this.addDeveloperField(s,t,n);this.#t()}close(){return this.#e(),this.#s(),this.#u.uint8Array}writeMesg(e){return this.onMesg(e.mesgNum,e)}onMesg(e,s){try{let t=this.#i(e,s);this.#p(t),this.#u.writeUInt8(t.localMesgNum),t.fieldDefinitions.forEach(n=>{let a=this.#l(s[n.name],n),i=r.BaseTypeDefinitions[n.baseType];this.#u.write(a,i.type)}),t.developerFieldDefinitions.forEach(n=>{let a=this.#l(s.developerFields[n.key],n),i=r.BaseTypeDefinitions[n.baseType];this.#u.write(a,i.type)})}catch(t){throw new Error("Could not write Message",{cause:{mesg:s,cause:{message:t.message,cause:t.cause}}})}return this}addDeveloperField(e,s,t){if(s.developerDataIndex==null||t.developerDataIndex==null)throw new Error("addDeveloperField() - one or more developerDataIndex values are null.",{cause:{key:e,developerDataIdMesg:s,fieldDescriptionMesg:t}});if(s.developerDataIndex!==t.developerDataIndex)throw new Error("addDeveloperField() - developerDataIndex values do not match.",{cause:{key:e,developerDataIdMesg:s,fieldDescriptionMesg:t}});return this.#r[e]={developerDataIdMesg:s,fieldDescriptionMesg:t},this}#t(){Array(Oe).fill(0).forEach(e=>{this.#u.writeUInt8(e)})}#e(){let e=new ArrayBuffer(Oe),s=new DataView(e);s.setUint8(0,Oe),s.setUint8(1,2),s.setUint16(2,P.version.major*1e3+P.version.minor,!0),s.setUint32(4,this.#u.length-Oe,!0),s.setUint8(8,46),s.setUint8(9,70),s.setUint8(10,73),s.setUint8(11,84);let t=Q.calculateCRC(new Uint8Array(e),0,ya);s.setUint16(12,t,!0),this.#u.set(new Uint8Array(e))}#s(){let e=Q.calculateCRC(this.#u.uint8Array,0,this.#u.length);this.#u.writeUInt16(e)}#l(e,s){return(Array.isArray(e)?e:[e]).map(n=>this.#n(n,s))}#n(e,s){try{if(r.isNotNumberStringDateOrBoolean(e))return r.BaseTypeDefinitions[s.baseType].invalid;if(r.NumericFieldTypes.includes(s.type)){if(!r.isNumeric(e))throw new Error;r.isString(e)&&(e=r.BigIntFieldTypes.includes(s.type)?BigInt(e):Number(e));let a=s.scale!=r.FIELD_DEFAULT_SCALE||s.offset!=r.FIELD_DEFAULT_OFFSET;if(!a&&!this.#a(e,s.type))throw new Error;if(a){let i=this.#o(e,s.scale,s.offset),o=r.FloatingPointFieldTypes.includes(s.type)||r.isBigInt(i)?i:Math.round(i);return r.BigIntFieldTypes.includes(s.type)?BigInt(o):Number(o)}return e}if(s.type==="dateTime"){if(r.isDate(e))return x.convertDateToDateTime(e);if(!r.isNumeric(e))throw new Error;return e}if(s.type==="string"){if(!r.isString(e))throw new Error;return e}if(r.isNumeric(e))return e;let t=P.types[s.type],[n]=Object.entries(t).find(([,a])=>a===e);return n}catch{throw new Error(`Could not convert "${e}" to "${s.type}"`,{cause:{value:e,fieldDefinition:s}})}}#a=(e,s)=>{let t=r.FieldTypeToJsType[s];return typeof e===t};#o(e,s,t){return r.isBigInt(e)?(e+BigInt(t))*BigInt(s):(e+t)*s}#i=(e,s)=>{let t=new Zt(e,s,{fieldDescriptions:this.#r});return t.localMesgNum=this.#f(t),t};#f=e=>{let s=this.#m.findIndex(t=>t?.equals(e)??!1);return(s!==-1?s:this.#A++)&r.LOCAL_MESG_NUM_MASK};#p=e=>{let s=e.localMesgNum;return(this.#m[s]==null||!this.#m[s].equals(e))&&this.#_(e),s};#_(e){return e.write(this.#u),this.#m[e.localMesgNum]=e,this}#m=Array(16).fill(null);#A=0;#u=new sn;#r=null},Fe=qs});var an={};At(an,{CrcCalculator:()=>Q,Decoder:()=>Qt,Encoder:()=>Fe,Profile:()=>P,Stream:()=>Yt,Utils:()=>x});var De=N(()=>{Ee();jt();nn();ue();zs();re()});var za={};At(za,{FIT_SEMICIRCLE_INVALID_SINT32:()=>ot,TRACKSWAP_HEALTH_PARSER_VERSION:()=>me,TrackSwap:()=>ce,TrackSwapError:()=>k,buildHealthDocumentFromMessages:()=>Ps,default:()=>ce,detectFITKinds:()=>Gs,normalizeFitSemicircleToDegrees:()=>Y,semicirclesToDegrees:()=>lt});module.exports=Hn(za);var k=class extends Error{constructor(e,s,t={}){super(s),this.name="TrackSwapError",this.code=e,this.format=t.format,this.cause=t.cause}};function Ie(l,e,s,t){if(l instanceof k)return l;let n=l instanceof Error?l.message:String(l);return new k(e,`${s}: ${n}`,{format:t,cause:l})}var j=class{constructor(){this.version="1.0.0";this.priority=100}async initialize(e){e.metadata.set(`plugin:${this.name}:initialized`,!0)}async destroy(e){e.metadata.delete(`plugin:${this.name}:initialized`)}async validate(e){return!0}};var me="trackswap-health-ir-v1",Us=new Set(["timestampCorrelationMesgs","monitoringInfoMesgs","monitoringMesgs","monitoringHrDataMesgs","stressLevelMesgs","respirationRateMesgs","spo2DataMesgs","hrvStatusSummaryMesgs","hrvValueMesgs","sleepLevelMesgs","sleepAssessmentMesgs","napEventMesgs","hsaStepDataMesgs","hsaSpo2DataMesgs","hsaStressDataMesgs","hsaRespirationDataMesgs","hsaHeartRateDataMesgs","hsaBodyBatteryDataMesgs","hsaWristTemperatureDataMesgs","skinTempOvernightMesgs","sleepDisruptionSeverityPeriodMesgs","sleepDisruptionOvernightSeverityMesgs"]),wn=new Set([...Us].filter(l=>l!=="timestampCorrelationMesgs")),vn=new Set(["fileIdMesgs","fileCreatorMesgs","deviceInfoMesgs","deviceSettingsMesgs","softwareMesgs","ohrSettingsMesgs","eventMesgs","activityMesgs","sessionMesgs","lapMesgs","recordMesgs","lengthMesgs","courseMesgs","coursePointMesgs","workoutMesgs","workoutStepMesgs","trainingFileMesgs"]),Un=[{field:"steps",metric:"steps",unit:"count",rolloverModulus:2**32,rolloverBits:32},{field:"distance",metric:"distance_m",unit:"m",rolloverModulus:2**32/100,rolloverBits:32},{field:"activeTime",metric:"active_time_s",unit:"s",rolloverModulus:2**32/1e3,rolloverBits:32},{field:"activeCalories",metric:"active_energy_kcal",unit:"kcal",rolloverModulus:2**16,rolloverBits:16},{field:"calories",metric:"total_energy_kcal",unit:"kcal",rolloverModulus:2**16,rolloverBits:16}],Bn=[{field:"ascent",metric:"ascent_m",unit:"m",intervalStrategy:"previous_timestamp"},{field:"descent",metric:"descent_m",unit:"m",intervalStrategy:"previous_timestamp"},{field:"moderateActivityMinutes",metric:"moderate_activity_time_s",unit:"s",multiplier:60,intervalStrategy:"value_duration"},{field:"vigorousActivityMinutes",metric:"vigorous_activity_time_s",unit:"s",multiplier:60,intervalStrategy:"value_duration"}],Bs=631065600,ye=2**16,bt=18*60*60,Mn=new Set([65519,65518]),Gn=5;function M(l){return l&&typeof l=="object"?l:{}}function w(l){if(typeof l=="number")return Number.isFinite(l)?l:void 0;if(typeof l!="string"||l.trim()==="")return;let e=Number(l);return Number.isFinite(e)?e:void 0}function G(l){if(l instanceof Date&&Number.isFinite(l.valueOf()))return l;if(typeof l!="string"&&typeof l!="number"||typeof l=="string"&&l.trim()==="")return;let e=new Date(l);return Number.isFinite(e.valueOf())?e:void 0}function ws(l){return yt(l)?.toISOString().replace(/Z$/,"")}function yt(l){if(l instanceof Date&&Number.isFinite(l.valueOf()))return l;if(typeof l=="string"&&!/^\s*[-+]?\d+(?:\.\d+)?\s*$/.test(l))return G(l);let e=w(l);if(!(e===void 0||e<0))return new Date((e+Bs)*1e3)}function v(l,e,s){return{messageName:l,messageIndex:e,fieldName:s}}function vs(l,e){return Object.fromEntries(e.map(s=>[s,l[s]]).filter(([,s])=>typeof s=="number"?Number.isFinite(s):["string","boolean"].includes(typeof s)))}function ht(l){return Object.fromEntries(Object.entries(l).filter(([,e])=>Array.isArray(e)&&e.length>0).map(([e,s])=>[e,s?.length??0]))}function Gs(l){let e=[];return((l.activityMesgs?.length??0)>0||(l.sessionMesgs?.length??0)>0)&&e.push("activity"),[...wn].some(s=>(l[s]?.length??0)>0)&&e.push("health"),((l.workoutMesgs?.length??0)>0||(l.workoutStepMesgs?.length??0)>0)&&e.push("workout"),(l.courseMesgs?.length??0)>0&&e.push("course"),e.length===0&&((l.deviceInfoMesgs?.length??0)>0||(l.fileIdMesgs?.length??0)>0)&&e.push("device"),e.length>0?e:["unknown"]}function Pn(l){let e=String(l??"").trim().toLowerCase().replace(/[_\s-]+/g,"");return e.includes("awake")?"awake":e.includes("deep")?"deep":e.includes("light")?"light":e.includes("rem")?"rem":e.includes("unmeasurable")?"unmeasurable":e.includes("sleep")?"sleeping":`vendor:${e||"unknown"}`}function Wn(l,e=0){return new Date(l.valueOf()+e*1e3).toISOString().slice(0,10)}function It(l,e,s=0){return Wn(new Date(Math.max(l.valueOf(),e.valueOf()-1)),s)}function Ms(l){let e=w(l);return e===void 0?void 0:e*60}function Vn(l,e){let s=[],t=(i,o,u,p,T)=>{let _=G(u.timestamp),R=yt(u.localTimestamp);if(!_||!R)return;let I=Math.round((R.valueOf()-_.valueOf())/1e3),h=v(i,o,"localTimestamp");if(Math.abs(I)>bt){e(h);return}s.push({at:_,offsetSeconds:I,priority:p,strategy:T,source:h})};(l.timestampCorrelationMesgs??[]).forEach((i,o)=>{t("timestampCorrelationMesgs",o,M(i),3,"timestamp_correlation")});for(let i of["monitoringInfoMesgs","monitoringMesgs","skinTempOvernightMesgs"])(l[i]??[]).forEach((o,u)=>{t(i,u,M(o),1,"inferred")});(l.napEventMesgs??[]).forEach((i,o)=>{let u=M(i);for(let[p,T]of[["startTime","startTimezoneOffset"],["endTime","endTimezoneOffset"]]){let _=G(u[p]),R=Ms(u[T]);if(!_||R===void 0)continue;let I=v("napEventMesgs",o,T);if(Math.abs(R)>bt){e(I);continue}s.push({at:_,offsetSeconds:R,priority:2,strategy:"explicit_offset",source:I})}}),s.sort((i,o)=>i.at.valueOf()-o.at.valueOf()||o.priority-i.priority);let n=s.filter((i,o)=>o===0||i.at.valueOf()!==s[o-1].at.valueOf()).map(({at:i,offsetSeconds:o})=>({at:i,offsetSeconds:o})),a=s.find(({strategy:i})=>i==="timestamp_correlation")?.strategy??s.find(({strategy:i})=>i==="explicit_offset")?.strategy??s.find(({strategy:i})=>i==="inferred")?.strategy??"unknown";return{offsets:n,strategy:a}}function Kn(l,e){let s=w(l);if(!e||!Number.isInteger(s)||s<0||s>=ye)return;let t=Math.floor(e.valueOf()/1e3)-Bs,n=Math.floor(t/ye)*ye+s;return n<t&&(n+=ye),new Date((n+Bs)*1e3)}function kn(l){let e,s,t,n,a,i;return(l.monitoringMesgs??[]).map(o=>{let u=M(o),T=G(u.timestamp)??Kn(u.timestamp16,e);T&&(e=T),T&&(!s||T>s)&&(t=s,s=T);let _=t;u.activityType!==void 0&&(n=u.activityType),u.deviceIndex!==void 0&&(i=u.deviceIndex);let R=u.intensity??u.activityLevel;return R!==void 0&&(a=R),{message:u,timestamp:T,intervalStartTime:_,deviceIndex:i,activityType:n,intensity:a}})}function Z(l,e){let s;for(let t of l){if(t.at>e)break;s=t.offsetSeconds}return s??l[0]?.offsetSeconds}function he(l,e){if(e!==void 0)return new Date(l.valueOf()+e*1e3).toISOString().replace(/Z$/,"")}function Nn(l,e,s,t){return e>=l?{value:e-l}:l>=s*.75&&l<s&&e>=0&&e<=s*.25?{value:s-l+e,rolloverBits:t}:null}function Rt(l){return l>=1&&l<=100?"valid":l===-1?"off_wrist":l===-2?"motion":l===-3?"not_enough_data":l===-4?"recovering":l===-5?"unidentified":l===-16?"gap":l===0||l>100?"invalid":"unknown"}function Xn(l){return l>=0&&l<=100?"valid":Rt(l)}function Yn(l){return l===255?"invalid":l===254?"motion":l===253?"off_wrist":l===252?"not_enough_data":l===2.4?"gap":l>=1&&l<=100?"valid":"invalid"}function ne(l,e,s){return new Date(l.valueOf()+e*s*1e3)}function zn(l){let e=new Map,s={};l.warnings.forEach(t=>{s[t.code]=(s[t.code]??0)+1;let n=e.get(t.code)??[];n.length<Gn&&(n.push(t),e.set(t.code,n))}),l.warningCounts=s,l.warnings=[...e.values()].flat()}function Jn(l){return l===-1?"off_wrist":l===-2?"motion":l===-3?"invalid":l>0&&l<=100?"valid":"invalid"}function Ps(l,e={},s={}){let t=ht(l),n=Object.fromEntries(Object.entries(t).filter(([A])=>Us.has(A))),a=Object.fromEntries(Object.entries(t).filter(([A])=>!Us.has(A)&&!vn.has(A))),i={sdkProfileVersion:s.sdkProfileVersion,parserVersion:me,messageCounts:t,recognizedMessageCounts:n,unknownMessageCounts:a,invalidValueCounts:{},warningCounts:{},warnings:[]};e.includeUnknownMessages&&(i.unknownMessages=Object.fromEntries(Object.keys(a).map(A=>[A,l[A]??[]])));let o=[],u=[],p=[],T=[],_=[],R=Vn(l,A=>{i.warnings.push({code:"GARMIN_HEALTH_INVALID_TIMEZONE_OFFSET",message:"Ignored an implausible FIT timezone offset",source:A})}),{offsets:I}=R,h=A=>{let y=A.offsetSeconds??Z(I,A.timestamp);if(A.offsetSeconds=y,A.localTimestamp??=he(A.timestamp,y),o.push(A),_.push(A.timestamp),A.status!=="valid"){let d=`${A.metric}:${A.status}`;i.invalidValueCounts[d]=(i.invalidValueCounts[d]??0)+1}},U=new Map;kn(l).forEach(({message:A,timestamp:y,intervalStartTime:d,deviceIndex:b,activityType:c,intensity:C},E)=>{if(!y){i.warnings.push({code:"GARMIN_HEALTH_NO_TIMESTAMP",message:"Monitoring message has no valid timestamp",source:v("monitoringMesgs",E)});return}_.push(y);let O=w(A.heartRate);if(O!==void 0){let g=O>0?"valid":"gap";h({metric:"heart_rate_bpm",timestamp:y,localTimestamp:ws(A.localTimestamp),value:g==="valid"?O:void 0,unit:"bpm",status:g,aggregation:"instant",source:v("monitoringMesgs",E,"heartRate"),attributes:g==="valid"?void 0:{rawValue:O}})}let S=w(A.temperature);S!==void 0&&h({metric:"temperature_c",timestamp:y,localTimestamp:ws(A.localTimestamp),value:S,unit:"degC",status:"valid",aggregation:"mean",source:v("monitoringMesgs",E,"temperature")});for(let g of Un){let B=w(A[g.field]);if(B===void 0)continue;let V=[b??"device",c??"activity",g.field].join(":"),F=U.get(V);if(F&&y>F.timestamp){let D=Nn(F.value,B,g.rolloverModulus,g.rolloverBits);if(D){D.rolloverBits&&i.warnings.push({code:"GARMIN_HEALTH_ACCUMULATOR_ROLLOVER",message:`${g.field} accumulator rolled over at ${D.rolloverBits} bits`,source:v("monitoringMesgs",E,g.field)});let ie=Z(I,F.timestamp);u.push({metric:g.metric,startTime:F.timestamp,endTime:y,localStartTime:he(F.timestamp,ie),offsetSeconds:ie,value:D.value,unit:g.unit,status:"valid",activityType:c===void 0?void 0:String(c),intensity:C===void 0?void 0:String(C),source:v("monitoringMesgs",E,g.field),attributes:e.health?.retainCumulativeValues===!1?void 0:{rawCumulativeValue:B}})}else i.warnings.push({code:"GARMIN_HEALTH_ACCUMULATOR_RESET",message:`${g.field} accumulator decreased; a new accumulation window was started`,source:v("monitoringMesgs",E,g.field)})}U.set(V,{timestamp:y,value:B})}for(let g of Bn){let B=w(A[g.field]);if(B===void 0||B<0)continue;let V=B*(g.multiplier??1),F=g.intervalStrategy==="value_duration"?new Date(y.valueOf()-V*1e3):d;if(!F||F>=y)continue;let D=Z(I,F);_.push(F),u.push({metric:g.metric,startTime:F,endTime:y,localStartTime:he(F,D),offsetSeconds:D,value:V,unit:g.unit,status:"valid",activityType:c===void 0?void 0:String(c),intensity:C===void 0?void 0:String(C),source:v("monitoringMesgs",E,g.field)})}}),(l.monitoringHrDataMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp);if(!b)return;[{field:"currentDayRestingHeartRate",metric:"resting_heart_rate_bpm"},{field:"restingHeartRate",metric:"resting_heart_rate_7_day_bpm"}].forEach(({field:C,metric:E})=>{let O=w(d[C]);if(O===void 0)return;let S=O>0?"valid":"invalid";h({metric:E,timestamp:b,value:S==="valid"?O:void 0,unit:"bpm",status:S,aggregation:"latest",source:v("monitoringHrDataMesgs",y,C),attributes:S==="valid"?void 0:{rawValue:O}})})}),(l.stressLevelMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.stressLevelTime),c=w(d.stressLevelValue);if(!b||c===void 0)return;let C=Rt(c);h({metric:"stress_level",timestamp:b,value:C==="valid"?c:void 0,unit:"score",status:C,aggregation:"instant",source:v("stressLevelMesgs",y,"stressLevelValue"),attributes:C==="valid"?void 0:{rawValue:c}})}),(l.respirationRateMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp),c=w(d.respirationRate);if(!b||c===void 0)return;let C=Jn(c);h({metric:"respiration_rate_bpm",timestamp:b,value:C==="valid"?c:void 0,unit:"breaths/min",status:C,aggregation:"instant",source:v("respirationRateMesgs",y,"respirationRate"),attributes:C==="valid"?void 0:{rawValue:c}})}),(l.spo2DataMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp),c=w(d.readingSpo2);if(!b||c===void 0)return;let C=w(d.readingConfidence),E=c<=0||c>100?"invalid":C!==void 0&&C<=0?"low_confidence":"valid";h({metric:"spo2_percent",timestamp:b,value:E==="invalid"?void 0:c,unit:"percent",status:E,quality:C,aggregation:"instant",source:v("spo2DataMesgs",y,"readingSpo2"),attributes:{measurementMode:d.mode===void 0?null:String(d.mode),...E==="invalid"?{rawValue:c}:{}}})}),(l.hrvValueMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp),c=w(d.value);if(!b||c===void 0)return;let C=c>0?"valid":"invalid";h({metric:"hrv_rmssd_ms",timestamp:b,value:C==="valid"?c:void 0,unit:"ms",status:C,aggregation:"mean",source:v("hrvValueMesgs",y,"value"),attributes:{windowSeconds:300,...C==="valid"?{}:{rawValue:c}}})}),(l.hrvStatusSummaryMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp);p.push({summaryType:"hrv_status",externalId:`fit:hrv-status:${b?.toISOString()??y}`,startTime:b,metrics:vs(d,["weeklyAverage","lastNightAverage","lastNight5MinHigh","baselineLowUpper","baselineBalancedLower","baselineBalancedUpper","status"]),source:v("hrvStatusSummaryMesgs",y)}),b&&_.push(b)}),(l.monitoringInfoMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp);p.push({summaryType:"device",externalId:`fit:monitoring-info:${b?.toISOString()??y}`,startTime:b,offsetSeconds:b?Z(I,b):void 0,metrics:vs(d,["restingMetabolicRate","activityType","cyclesToDistance","cyclesToCalories"]),source:v("monitoringInfoMesgs",y)}),b&&_.push(b)}),(l.skinTempOvernightMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp);if(!b)return;[{field:"averageDeviation",metric:"skin_temperature_deviation_c"},{field:"average7DayDeviation",metric:"skin_temperature_7_day_deviation_c"},{field:"nightlyValue",metric:"skin_temperature_nightly_c"}].forEach(({field:C,metric:E})=>{let O=w(d[C]);O!==void 0&&h({metric:E,timestamp:b,localTimestamp:ws(d.localTimestamp),value:O,unit:"degC",status:"valid",aggregation:"mean",source:v("skinTempOvernightMesgs",y,C)})})});let H=(l.sleepLevelMesgs??[]).map((A,y)=>({message:M(A),messageIndex:y,timestamp:G(M(A).timestamp)})).filter(A=>A.timestamp!==void 0).sort((A,y)=>A.timestamp.valueOf()-y.timestamp.valueOf());if(H.length>=2){let A=M(l.sleepAssessmentMesgs?.[0]),y=[];for(let C=0;C<H.length-1;C+=1){let E=H[C],O=H[C+1];if(O.timestamp<=E.timestamp)continue;let S={segmentType:Pn(E.message.sleepLevel),startTime:E.timestamp,endTime:O.timestamp,status:"valid",source:v("sleepLevelMesgs",E.messageIndex,"sleepLevel")},g=y.at(-1);g&&g.segmentType===S.segmentType&&g.endTime.valueOf()===S.startTime.valueOf()?g.endTime=S.endTime:y.push(S)}let d=H[0].timestamp,b=H.at(-1).timestamp;_.push(d,b);let c=Z(I,b);T.push({sessionType:"sleep",externalId:`fit:sleep:${d.toISOString()}:${b.toISOString()}`,startTime:d,endTime:b,startOffsetSeconds:Z(I,d),endOffsetSeconds:c,calendarDate:It(d,b,c),segments:y,metrics:vs(A,["combinedAwakeScore","awakeTimeScore","awakeningsCountScore","deepSleepScore","sleepDurationScore","lightSleepScore","overallSleepScore","sleepQualityScore","sleepRecoveryScore","remSleepScore","sleepRestlessnessScore","awakeningsCount","interruptionsScore","averageStressDuringSleep"]),source:v("sleepLevelMesgs",H[0].messageIndex),attributes:{calendarDateStrategy:c===void 0?"sleep_end_utc_fallback_date":"sleep_end_local_date"}})}else H.length>0&&i.warnings.push({code:"GARMIN_HEALTH_SLEEP_BOUNDARY_INCOMPLETE",message:"Sleep level data does not contain enough boundaries",source:v("sleepLevelMesgs",H[0].messageIndex)});for(let A of["sleepDisruptionSeverityPeriodMesgs","sleepDisruptionOvernightSeverityMesgs"])(l[A]??[]).forEach((y,d)=>{let b=M(y),c=G(b.timestamp);!c||b.severity===void 0||(_.push(c),p.push({summaryType:"sleep",externalId:`fit:${A}:${b.messageIndex??d}:${c.toISOString()}`,startTime:c,offsetSeconds:Z(I,c),metrics:{severity:String(b.severity)},source:v(A,d,"severity")}))});return(l.napEventMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.startTime),c=G(d.endTime),C=d.isDeleted===!0;if(!b||!c||c<b||!C&&c.valueOf()===b.valueOf())return;let E=Ms(d.startTimezoneOffset),O=Ms(d.endTimezoneOffset);_.push(b,c),T.push({sessionType:"nap",externalId:`fit:nap:${d.messageIndex??y}:${b.toISOString()}`,startTime:b,endTime:c,startOffsetSeconds:E,endOffsetSeconds:O,calendarDate:It(b,c,O??E),deleted:C,segments:[],metrics:{},source:v("napEventMesgs",y),attributes:{source:d.source===void 0?null:String(d.source),feedback:d.feedback===void 0?null:String(d.feedback),updateTimestamp:G(d.updateTimestamp)?.toISOString()??null}})}),(l.hsaStepDataMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp),c=w(d.processingInterval),C=Array.isArray(d.steps)?d.steps:[];!b||!c||c<=0||Mn.has(c)||C.forEach((E,O)=>{let S=w(E);if(S===void 0||S<0)return;let g=ne(b,c,O),B=new Date(g.valueOf()+c*1e3),V=Z(I,g);_.push(g,B),u.push({metric:"steps",startTime:g,endTime:B,localStartTime:he(g,V),offsetSeconds:V,value:S,unit:"count",status:"valid",source:v("hsaStepDataMesgs",y,"steps"),attributes:{sequenceIndex:O,intervalSeconds:c}})})}),(l.hsaSpo2DataMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp),c=w(d.processingInterval),C=Array.isArray(d.readingSpo2)?d.readingSpo2:[],E=Array.isArray(d.confidence)?d.confidence:[];!b||!c||c<=0||C.forEach((O,S)=>{let g=w(O);if(g===void 0)return;let B=w(E[S]),V=g<70||g>100||g===240?"invalid":B!==void 0&&B<=0?"low_confidence":"valid";h({metric:"spo2_percent",timestamp:ne(b,c,S),value:V==="invalid"?void 0:g,unit:"percent",status:V,quality:B,aggregation:"instant",source:v("hsaSpo2DataMesgs",y,"readingSpo2"),attributes:{sequenceIndex:S,intervalSeconds:c,...V==="invalid"?{rawValue:g}:{}}})})}),(l.hsaStressDataMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp),c=w(d.processingInterval),C=Array.isArray(d.stressLevel)?d.stressLevel:[];!b||!c||c<=0||C.forEach((E,O)=>{let S=w(E);if(S===void 0)return;let g=Xn(S);h({metric:"stress_level",timestamp:ne(b,c,O),value:g==="valid"?S:void 0,unit:"score",status:g,aggregation:"instant",source:v("hsaStressDataMesgs",y,"stressLevel"),attributes:{sequenceIndex:O,intervalSeconds:c,...g==="valid"?{}:{rawValue:S}}})})}),(l.hsaRespirationDataMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp),c=w(d.processingInterval),C=Array.isArray(d.respirationRate)?d.respirationRate:[];!b||!c||c<=0||C.forEach((E,O)=>{let S=w(E);if(S===void 0)return;let g=Yn(S);h({metric:"respiration_rate_bpm",timestamp:ne(b,c,O),value:g==="valid"?S:void 0,unit:"breaths/min",status:g,aggregation:"instant",source:v("hsaRespirationDataMesgs",y,"respirationRate"),attributes:{sequenceIndex:O,intervalSeconds:c,...g==="valid"?{}:{rawValue:S}}})})}),(l.hsaHeartRateDataMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp),c=w(d.processingInterval),C=Array.isArray(d.heartRate)?d.heartRate:[],E=w(d.status);!b||!c||c<=0||C.forEach((O,S)=>{let g=w(O);if(g===void 0)return;let B=g===0?"gap":E===1?"valid":E===0?"low_confidence":"unknown";h({metric:"heart_rate_bpm",timestamp:ne(b,c,S),value:B==="gap"?void 0:g,unit:"bpm",status:B,aggregation:"instant",source:v("hsaHeartRateDataMesgs",y,"heartRate"),attributes:{sequenceIndex:S,intervalSeconds:c,measurementStatus:E??null,...B==="gap"?{rawValue:g}:{}}})})}),(l.hsaWristTemperatureDataMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp),c=w(d.processingInterval),C=Array.isArray(d.value)?d.value:[];!b||!c||c<=0||C.forEach((E,O)=>{let S=w(E);S!==void 0&&h({metric:"wrist_temperature_c",timestamp:ne(b,c,O),value:S,unit:"degC",status:"valid",aggregation:"instant",source:v("hsaWristTemperatureDataMesgs",y,"value"),attributes:{sequenceIndex:O,intervalSeconds:c}})})}),(l.hsaBodyBatteryDataMesgs??[]).forEach((A,y)=>{let d=M(A),b=G(d.timestamp),c=w(d.processingInterval)??0;if(!b||c<=0)return;[{field:"level",metric:"body_battery_level",unit:"score"},{field:"charged",metric:"body_battery_charged",unit:"score"},{field:"uncharged",metric:"body_battery_drained",unit:"score"}].forEach(({field:E,metric:O,unit:S})=>{(Array.isArray(d[E])?d[E]:[]).forEach((B,V)=>{let F=w(B);if(F===void 0)return;let D=E==="level"&&F===-16?"gap":E==="level"&&(F<0||F>100)?"invalid":"valid";h({metric:O,timestamp:ne(b,c,V),value:D==="valid"?F:void 0,unit:S,status:D,aggregation:"instant",source:v("hsaBodyBatteryDataMesgs",y,E),attributes:{sequenceIndex:V,intervalSeconds:c,...D==="valid"?{}:{rawValue:F}}})})})}),o.sort((A,y)=>A.timestamp.valueOf()-y.timestamp.valueOf()),u.sort((A,y)=>A.startTime.valueOf()-y.startTime.valueOf()),T.sort((A,y)=>A.startTime.valueOf()-y.startTime.valueOf()),_.sort((A,y)=>A.valueOf()-y.valueOf()),zn(i),{schemaVersion:"1",observedStart:_[0],observedEnd:_.at(-1),timezone:{strategy:R.strategy,offsets:I},points:o,intervals:e.health?.reconstructIntervals===!1?[]:u,summaries:p,sessions:T,diagnostics:i}}var Re=class extends j{constructor(){super(...arguments);this.name="HealthStructurePlugin";this.priority=20}structureData(s,t){let n=t.userData?.fitDocumentOptions??{},a=Gs(s);return{healthDocument:a.includes("health")?Ps(s,n,{sdkProfileVersion:t.metadata.get("fit-sdk-profile-version")}):void 0,fitDocumentMetadata:{detectedKinds:a,messageCounts:ht(s)}}}};var ge=(m=>(m[m.GENERIC=0]="GENERIC",m[m.RUNNING=1]="RUNNING",m[m.CYCLING=2]="CYCLING",m[m.TRANSITION=3]="TRANSITION",m[m.FITNESS_EQUIPMENT=4]="FITNESS_EQUIPMENT",m[m.SWIMMING=5]="SWIMMING",m[m.BASKETBALL=6]="BASKETBALL",m[m.SOCCER=7]="SOCCER",m[m.TENNIS=8]="TENNIS",m[m.AMERICAN_FOOTBALL=9]="AMERICAN_FOOTBALL",m[m.TRAINING=10]="TRAINING",m[m.WALKING=11]="WALKING",m[m.CROSS_COUNTRY_SKIING=12]="CROSS_COUNTRY_SKIING",m[m.ALPINE_SKIING=13]="ALPINE_SKIING",m[m.SNOWBOARDING=14]="SNOWBOARDING",m[m.ROWING=15]="ROWING",m[m.MOUNTAINEERING=16]="MOUNTAINEERING",m[m.HIKING=17]="HIKING",m[m.MULTISPORT=18]="MULTISPORT",m[m.PADDLING=19]="PADDLING",m[m.FLYING=20]="FLYING",m[m.E_BIKING=21]="E_BIKING",m[m.MOTORCYCLING=22]="MOTORCYCLING",m[m.BOATING=23]="BOATING",m[m.DRIVING=24]="DRIVING",m[m.GOLF=25]="GOLF",m[m.HANG_GLIDING=26]="HANG_GLIDING",m[m.HORSEBACK_RIDING=27]="HORSEBACK_RIDING",m[m.HUNTING=28]="HUNTING",m[m.FISHING=29]="FISHING",m[m.INLINE_SKATING=30]="INLINE_SKATING",m[m.ROCK_CLIMBING=31]="ROCK_CLIMBING",m[m.SAILING=32]="SAILING",m[m.ICE_SKATING=33]="ICE_SKATING",m[m.SKY_DIVING=34]="SKY_DIVING",m[m.SNOWSHOEING=35]="SNOWSHOEING",m[m.SNOWMOBILING=36]="SNOWMOBILING",m[m.STAND_UP_PADDLEBOARDING=37]="STAND_UP_PADDLEBOARDING",m[m.SURFING=38]="SURFING",m[m.WAKEBOARDING=39]="WAKEBOARDING",m[m.WATER_SKIING=40]="WATER_SKIING",m[m.KAYAKING=41]="KAYAKING",m[m.RAFTING=42]="RAFTING",m[m.WINDSURFING=43]="WINDSURFING",m[m.KITESURFING=44]="KITESURFING",m[m.TACTICAL=45]="TACTICAL",m[m.JUMPMASTER=46]="JUMPMASTER",m[m.BOXING=47]="BOXING",m[m.FLOOR_CLIMBING=48]="FLOOR_CLIMBING",m[m.BASEBALL=49]="BASEBALL",m[m.DIVING=53]="DIVING",m[m.HIIT=62]="HIIT",m[m.RACKET=64]="RACKET",m[m.WHEELCHAIR_PUSH_WALK=65]="WHEELCHAIR_PUSH_WALK",m[m.WHEELCHAIR_PUSH_RUN=66]="WHEELCHAIR_PUSH_RUN",m[m.MEDITATION=67]="MEDITATION",m[m.DISC_GOLF=69]="DISC_GOLF",m[m.CRICKET=71]="CRICKET",m[m.RUGBY=72]="RUGBY",m[m.HOCKEY=73]="HOCKEY",m[m.LACROSSE=74]="LACROSSE",m[m.VOLLEYBALL=75]="VOLLEYBALL",m[m.WATER_TUBING=76]="WATER_TUBING",m[m.WAKESURFING=77]="WAKESURFING",m[m.MIXED_MARTIAL_ARTS=80]="MIXED_MARTIAL_ARTS",m[m.SNORKELING=82]="SNORKELING",m[m.DANCE=83]="DANCE",m[m.JUMP_ROPE=84]="JUMP_ROPE",m[m.ALL=254]="ALL",m))(ge||{});var Le=(f=>(f[f.GENERIC=0]="GENERIC",f[f.TREADMILL=1]="TREADMILL",f[f.STREET=2]="STREET",f[f.TRAIL=3]="TRAIL",f[f.TRACK=4]="TRACK",f[f.SPIN=5]="SPIN",f[f.INDOOR_CYCLING=6]="INDOOR_CYCLING",f[f.ROAD=7]="ROAD",f[f.MOUNTAIN=8]="MOUNTAIN",f[f.DOWNHILL=9]="DOWNHILL",f[f.RECUMBENT=10]="RECUMBENT",f[f.CYCLOCROSS=11]="CYCLOCROSS",f[f.HAND_CYCLING=12]="HAND_CYCLING",f[f.TRACK_CYCLING=13]="TRACK_CYCLING",f[f.INDOOR_ROWING=14]="INDOOR_ROWING",f[f.ELLIPTICAL=15]="ELLIPTICAL",f[f.STAIR_CLIMBING=16]="STAIR_CLIMBING",f[f.LAP_SWIMMING=17]="LAP_SWIMMING",f[f.OPEN_WATER=18]="OPEN_WATER",f[f.FLEXIBILITY_TRAINING=19]="FLEXIBILITY_TRAINING",f[f.STRENGTH_TRAINING=20]="STRENGTH_TRAINING",f[f.WARM_UP=21]="WARM_UP",f[f.MATCH=22]="MATCH",f[f.EXERCISE=23]="EXERCISE",f[f.CHALLENGE=24]="CHALLENGE",f[f.INDOOR_SKIING=25]="INDOOR_SKIING",f[f.CARDIO_TRAINING=26]="CARDIO_TRAINING",f[f.INDOOR_WALKING=27]="INDOOR_WALKING",f[f.E_BIKE_FITNESS=28]="E_BIKE_FITNESS",f[f.BMX=29]="BMX",f[f.CASUAL_WALKING=30]="CASUAL_WALKING",f[f.SPEED_WALKING=31]="SPEED_WALKING",f[f.BIKE_TO_RUN_TRANSITION=32]="BIKE_TO_RUN_TRANSITION",f[f.RUN_TO_BIKE_TRANSITION=33]="RUN_TO_BIKE_TRANSITION",f[f.SWIM_TO_BIKE_TRANSITION=34]="SWIM_TO_BIKE_TRANSITION",f[f.ATV=35]="ATV",f[f.MOTOCROSS=36]="MOTOCROSS",f[f.BACKCOUNTRY=37]="BACKCOUNTRY",f[f.RESORT=38]="RESORT",f[f.RC_DRONE=39]="RC_DRONE",f[f.WINGSUIT=40]="WINGSUIT",f[f.WHITEWATER=41]="WHITEWATER",f[f.SKATE_SKIING=42]="SKATE_SKIING",f[f.YOGA=43]="YOGA",f[f.PILATES=44]="PILATES",f[f.INDOOR_RUNNING=45]="INDOOR_RUNNING",f[f.GRAVEL_CYCLING=46]="GRAVEL_CYCLING",f[f.E_BIKE_MOUNTAIN=47]="E_BIKE_MOUNTAIN",f[f.COMMUTING=48]="COMMUTING",f[f.MIXED_SURFACE=49]="MIXED_SURFACE",f[f.NAVIGATE=50]="NAVIGATE",f[f.TRACK_ME=51]="TRACK_ME",f[f.MAP=52]="MAP",f[f.SINGLE_GAS_DIVING=53]="SINGLE_GAS_DIVING",f[f.MULTI_GAS_DIVING=54]="MULTI_GAS_DIVING",f[f.GAUGE_DIVING=55]="GAUGE_DIVING",f[f.APNEA_DIVING=56]="APNEA_DIVING",f[f.APNEA_HUNTING=57]="APNEA_HUNTING",f[f.VIRTUAL_ACTIVITY=58]="VIRTUAL_ACTIVITY",f[f.OBSTACLE=59]="OBSTACLE",f[f.BREATHING=62]="BREATHING",f[f.SAIL_RACE=65]="SAIL_RACE",f[f.ULTRA=67]="ULTRA",f[f.INDOOR_CLIMBING=68]="INDOOR_CLIMBING",f[f.BOULDERING=69]="BOULDERING",f[f.HIIT=70]="HIIT",f[f.AMRAP=73]="AMRAP",f[f.EMOM=74]="EMOM",f[f.TABATA=75]="TABATA",f[f.PICKLEBALL=84]="PICKLEBALL",f[f.PADEL=85]="PADEL",f[f.INDOOR_WHEELCHAIR_WALK=86]="INDOOR_WHEELCHAIR_WALK",f[f.INDOOR_WHEELCHAIR_RUN=87]="INDOOR_WHEELCHAIR_RUN",f[f.INDOOR_HAND_CYCLING=88]="INDOOR_HAND_CYCLING",f[f.SQUASH=94]="SQUASH",f[f.BADMINTON=95]="BADMINTON",f[f.RACQUETBALL=96]="RACQUETBALL",f[f.TABLE_TENNIS=97]="TABLE_TENNIS",f[f.FLY_CANOPY=110]="FLY_CANOPY",f[f.FLY_PARAGLIDE=111]="FLY_PARAGLIDE",f[f.FLY_PARAMOTOR=112]="FLY_PARAMOTOR",f[f.FLY_PRESSURIZED=113]="FLY_PRESSURIZED",f[f.FLY_NAVIGATE=114]="FLY_NAVIGATE",f[f.FLY_TIMER=115]="FLY_TIMER",f[f.FLY_ALTIMETER=116]="FLY_ALTIMETER",f[f.FLY_WX=117]="FLY_WX",f[f.FLY_VFR=118]="FLY_VFR",f[f.FLY_IFR=119]="FLY_IFR",f[f.ALL=254]="ALL",f))(Le||{});function gt(l,e){if(!e)return;let s=e.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,"").toUpperCase();for(let t of Object.keys(l)){if(!Number.isNaN(Number(t))||t.toUpperCase()!==s)continue;let n=l[t];return typeof n=="number"?n:void 0}}function $n(l){let e=l.metadata?.fileName?.trim();if(e)return e;let s=l.metadata?.originType;return s?`${s.toLowerCase()}-course`:"course"}function Lt(l){let e=l.activities?.[0],t=[...(l.activities?.flatMap(n=>n.laps??[])??[]).flatMap(n=>n.records??[]),...l.routes?.flatMap(n=>n.records??[])??[],...l.points??[]].filter(n=>n.timestamp!=null&&n.positionLat!=null&&n.positionLong!=null).sort((n,a)=>new Date(n.timestamp).getTime()-new Date(a.timestamp).getTime()).map(n=>({timestamp:n.timestamp,latitude:n.positionLat,longitude:n.positionLong,distance:n.distance,altitude:n.enhancedAltitude??n.altitude,speed:n.enhancedSpeed??n.speed}));if(t.length===0)throw new Error("Cannot build a FIT course without timestamped coordinates");return{name:$n(l),sport:gt(ge,e?.sport)??2,subSport:gt(Le,e?.subSport)??0,records:t,timeCreated:t[0].timestamp}}function Ct(){return process.env.TRACKSWAP_FIT_DEBUG==="1"||process.env.TRACKSWAP_DEBUG==="1"}function W(...l){Ct()}function oe(...l){Ct()}var He=class{constructor(){this.stage="parse"}async process(e){let s=Date.now();if(!e.rawData)throw new Error("FIT data cannot be empty");try{let t=await this.parseWithFitSDK(e.rawData,e);return e.rawMessages=t,W("\u{1F389} FIT parsing raw messages:",t),e.performance.parseTime=Date.now()-s,W(`\u{1F527} FIT parsing completed, contains message types: ${Object.keys(t).join(", ")}`),e}catch(t){throw new Error(`FIT parsing failed: ${t.message}`)}}async parseWithFitSDK(e,s){let{Decoder:t,Profile:n,Stream:a}=await Promise.resolve().then(()=>(De(),an)),i=[n.version?.major,n.version?.minor,n.version?.patch].filter(_=>_!==void 0);i.length>0&&s.metadata.set("fit-sdk-profile-version",i.join("."));let o=a.fromBuffer(e);if(!t.isFIT(o))throw new Error("Not a valid FIT file");let u=new t(o),{messages:p,errors:T}=u.read();return T&&T.length>0&&oe("FIT parsing warnings:",T),p}};function ha(l){let e={...l};return e.position_lat!=null&&e.positionLat==null&&(e.positionLat=e.position_lat),e.position_long!=null&&e.positionLong==null&&(e.positionLong=e.position_long),e}var we=class{constructor(e){this.getConverters=e;this.stage="extract"}async process(e){let s=Date.now();if(!e.rawMessages)throw new Error("Raw messages cannot be empty");let t={};for(let[n,a]of Object.entries(e.rawMessages)){if(!Array.isArray(a)||a.length===0){t[n]=a;continue}let i=this.getConverters(n);if(i.length===0)t[n]=n==="recordMesgs"?a.map(o=>ha(o)):a,W(`\u{1F4CB} Message type "${n}" has no converter, using raw data`);else{let o=i[0];try{let u=o.convertMessages(a,e);t[n]=u,W(`\u2705 Message type "${n}" using converter ${o.name}`)}catch(u){e.errors.push(u),t[n]=a,oe(`FIT converter "${o.name}" failed for ${n}; raw messages were retained`,u)}}}return e.rawMessages=t,e.performance.extractTime=Date.now()-s,e}},ve=class{constructor(e){this.getStructurePlugins=e;this.stage="structure"}async process(e){let s=Date.now();if(!e.rawMessages)throw new Error("Message data cannot be empty");let t={...e.rawMessages},n=this.getStructurePlugins();for(let a of n)try{let i=a.structureData(e.rawMessages,e);t={...t,...i},W(`\u{1F527} Structure plugin ${a.name} processing completed`)}catch(i){throw e.errors.push(i),new Error(`FIT structure plugin "${a.name}" failed: ${i.message}`)}return e.result=t,e.performance.structureTime=Date.now()-s,e}},Ue=class{constructor(){this.stage="complete"}async process(e){e.performance.endTime=Date.now();let s=e.performance.endTime-e.performance.startTime;return e.metadata.set("performance",{totalTime:s,parseTime:e.performance.parseTime,extractTime:e.performance.extractTime,structureTime:e.performance.structureTime}),e.stats&&(e.stats.endTime=Date.now(),e.rawMessages&&(e.stats.processedTokens=this.countTotalMessages(e.rawMessages))),W(`\u2705 FIT processing completed, total time: ${s}ms`),e}countTotalMessages(e){let s=0;return Object.values(e).forEach(t=>{Array.isArray(t)&&(s+=t.length)}),s}};var K=J(require("dayjs"),1);var Be=class extends j{constructor(){super(...arguments);this.name="SessionStructurePlugin";this.priority=10}structureData(s,t){let{sessionMesgs:n,lapMesgs:a,recordMesgs:i,lengthMesgs:o,setMesgs:u}=s;if(!n?.length)return oe("No structured session found, data structure is incomplete"),{};let p=n.map((R,I)=>{let h=(0,K.default)(R.startTime).valueOf(),U=h+(R.totalElapsedTime??0)*1e3,H=(0,K.default)(R.timestamp).valueOf(),A=Math.max(Number.isFinite(U)?U:Number.NEGATIVE_INFINITY,Number.isFinite(H)?H:Number.NEGATIVE_INFINITY),y=n[I+1],d=y?(0,K.default)(y.startTime).valueOf():Number.NaN,b=Number.isFinite(d)&&d>=h,c=R.firstLapIndex,C=R.numLaps,E=typeof c=="number"&&typeof C=="number"?(a??[]).filter(F=>{let D=F.messageIndex;return typeof D=="number"&&D>=c&&D<c+C}):[],O=(E.length===C&&E.length>0?E:(a??[]).filter(F=>{let D=(0,K.default)(F.startTime).valueOf();return Number.isFinite(D)&&D>=h&&D<=A+2e3})).sort((F,D)=>(0,K.default)(F.startTime).valueOf()-(0,K.default)(D.startTime).valueOf()),S=n.length===1?[...i??[]]:(i??[]).filter(F=>{let D=(0,K.default)(F.timestamp).valueOf();return Number.isFinite(D)?(I===0||D>=h)&&(!b||D<d):I===0}),g=(u??[]).filter(F=>{let D=(0,K.default)(F.startTime??F.timestamp).valueOf();return Number.isFinite(D)?D<h?!1:b?D<d:D<=A+2e3:n.length===1}),B=O.length>0?O:S.length>0?[{...R,messageIndex:typeof R.firstLapIndex=="number"?R.firstLapIndex:I,recordMesgs:S}]:[];if(O.length===0&&B.length===1){let F=Number(t.metadata.get("fit-synthetic-lap-count")??0);t.metadata.set("fit-synthetic-lap-count",F+1)}let V=B.map((F,D)=>{let ie=(0,K.default)(F.startTime).valueOf(),rt=B[D+1]?.startTime,Fs=rt==null?Number.NaN:(0,K.default)(rt).valueOf(),gn=ie+(F.totalElapsedTime??0)*1e3,dt=Number.isFinite(Fs)&&Fs>=ie,Ln=dt?Fs:Math.max(gn,A),Cn=O.length===0?S:S.filter(Hs=>{let le=(0,K.default)(Hs.timestamp).valueOf();return Number.isFinite(le)?(D===0||le>=ie)&&(!dt||le<Ln):D===0}),Ds=F.firstLengthIndex??void 0,Tt=F.numLengths??void 0,_t=[];if(Ds!==void 0&&Tt!==void 0){let Hs=Ds+Tt;_t=o?.filter(le=>le.messageIndex>=Ds&&le.messageIndex<Hs)||[]}return{...F,recordMesgs:Cn,lengthMesgs:_t,messageIndex:F.messageIndex!==void 0?F.messageIndex:0}});return{...R,lapMesgs:V,setMesgs:g}}),T=new Set;for(let R of p)for(let I of R.lapMesgs??[])for(let h of I.recordMesgs??[])h?.timestamp!=null&&T.add((0,K.default)(h.timestamp).valueOf());let _=0;for(let R of i??[]){if(R?.timestamp==null)continue;let I=(0,K.default)(R.timestamp).valueOf();T.has(I)||_++}return _>0&&(t.metadata.set("fit-unassigned-record-count",_),oe(`SessionStructurePlugin: ${_} record(s) did not fall into any lap time window`)),{sessionMesgs:p}}},Me=class extends j{constructor(){super(...arguments);this.name="CourseStructurePlugin";this.priority=10}structureData(s,t){let{courseMesgs:n,lapMesgs:a,recordMesgs:i}=s;if(!n?.length)return{};let o=2e3;return{courseMesgs:n.map(p=>{let T=a?.map(_=>{let R=(0,K.default)(_.startTime).valueOf(),I=(0,K.default)(_.timestamp).valueOf(),h=i?.filter(U=>{let H=(0,K.default)(U.timestamp).valueOf();return H>=R-o&&H<=I+o})||[];return{..._,recordMesgs:h}})||[];return{...p,lapMesgs:T}})}}},Ge=class extends j{constructor(){super(...arguments);this.name="FileHeaderPlugin";this.priority=1}structureData(s,t){let{fileIdMesgs:n,fileCreatorMesgs:a,deviceInfoMesgs:i}=s;if(n?.length&&n[0]){let o=n[0];t.fileHeader={type:o.type,manufacturer:o.manufacturer,product:o.product}}return{fileIdMesgs:n,fileCreatorMesgs:a,deviceInfoMesgs:i}}};var Pe=class{constructor(){this.converterPlugins=new Map;this.registeredPlugins=new Set;this.structurePlugins=[];this.middlewarePlugins=[];this.processors=[];this.initialized=!1;this.defaultPluginsRegistered=!1;this.initializePipeline()}initializePipeline(){this.processors=[new He,new we(e=>this.getConverters(e)),new ve(()=>this.structurePlugins),new Ue],W("\u{1F527} FIT core pipeline processors initialized (fixed and not modifiable)")}async registerDefaultPlugins(){if(this.defaultPluginsRegistered)return;let e=[new Ge,new Be,new Me,new Re];for(let s of e)this.addStructurePlugin(s),this.registeredPlugins.add(s.name);this.defaultPluginsRegistered=!0,W("\u2705 Default FIT structure plugins auto-registered (FileHeader, Session, Course, etc.)")}addConverterForMessageType(e,s){this.converterPlugins.has(e)||this.converterPlugins.set(e,[]);let t=this.converterPlugins.get(e);t.push(s),t.sort((n,a)=>(n.priority||100)-(a.priority||100))}addStructurePlugin(e){this.structurePlugins.push(e),this.structurePlugins.sort((s,t)=>(s.priority||100)-(t.priority||100))}async registerMessageConverter(e){if(this.registeredPlugins.has(e.name))throw new Error(`Message converter plugin ${e.name} already exists`);e.supportedMessageTypes.forEach(t=>{this.addConverterForMessageType(t,e)}),this.registeredPlugins.add(e.name);let s=e.priority!==void 0?` (priority: ${e.priority})`:"";W(`\u{1F4E6} Registered FIT message converter: ${e.name}${s}, supported message types: ${e.supportedMessageTypes.join(", ")}`),e.supportedMessageTypes.forEach(t=>{let a=(this.converterPlugins.get(t)||[]).map(i=>`${i.name}(${i.priority||100})`);W(` \u{1F4CB} Message type "${t}" converter priority: ${a.join(" > ")}`)})}async registerStructurePlugin(e){if(this.registeredPlugins.has(e.name))throw new Error(`Structure plugin ${e.name} already exists`);this.addStructurePlugin(e),this.registeredPlugins.add(e.name);let s=e.priority!==void 0?` (priority: ${e.priority})`:"";W(`\u{1F3D7}\uFE0F Registered FIT structure plugin: ${e.name}${s}`)}async registerMiddleware(e){let s=this.middlewarePlugins.findIndex(n=>n.name===e.name);s!==-1?(this.middlewarePlugins[s]=e,W(`\u{1F504} Updated FIT middleware: ${e.name}`)):(this.middlewarePlugins.push(e),this.middlewarePlugins.sort((n,a)=>(n.priority||100)-(a.priority||100)),W(`\u{1F50C} Registered FIT middleware: ${e.name}`));let t=[];e.onParse&&t.push("onParse"),e.onExtractMessages&&t.push("onExtractMessages"),e.onStructure&&t.push("onStructure"),e.onComplete&&t.push("onComplete"),e.onError&&t.push("onError"),t.length>0&&W(` \u{1F3A3} Supported hooks: ${t.join(", ")}`)}getConverter(e){let s=this.converterPlugins.get(e);return s&&s.length>0?s[0]:void 0}getConverters(e){return this.converterPlugins.get(e)||[]}unregisterPlugin(e){if(!this.registeredPlugins.has(e))return!1;for(let[n,a]of this.converterPlugins){let i=a.findIndex(o=>o.name===e);i!==-1&&(a.splice(i,1),a.length===0&&this.converterPlugins.delete(n))}let s=this.structurePlugins.findIndex(n=>n.name===e);s!==-1&&this.structurePlugins.splice(s,1);let t=this.middlewarePlugins.findIndex(n=>n.name===e);return t!==-1&&this.middlewarePlugins.splice(t,1),this.registeredPlugins.delete(e),W(`\u{1F5D1}\uFE0F Removed FIT plugin: ${e}`),!0}async initialize(){if(this.initialized)return;await this.registerDefaultPlugins();let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.structurePlugins,...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.initialize?.(e);this.initialized=!0}async destroy(){if(!this.initialized)return;let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.structurePlugins,...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.destroy?.(e);this.initialized=!1}createContext(){return{metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},performance:{startTime:Date.now()}}}async executeMiddlewareHook(e,s,t){let n=s;for(let a of this.middlewarePlugins){let i=a[e];if(i)try{n=await i.call(a,n,t)||n}catch(o){t.errors.push(o),await a.onError?.(o,t)}}return n}async parseByBuffer(e,s={}){await this.initialize();let t=this.createContext();t.rawData=e,t.userData=s.userData,t.metadata.set("decoder",this);try{for(let n of this.processors)try{switch(n.stage==="parse"&&t.rawData&&(t.rawData=await this.executeMiddlewareHook("onParse",t.rawData,t)),t=await n.process(t),n.stage){case"parse":break;case"extract":t.rawMessages&&(t.rawMessages=await this.executeMiddlewareHook("onExtractMessages",t.rawMessages,t));break;case"structure":t.result&&(t.result=await this.executeMiddlewareHook("onStructure",t.result,t));break;case"complete":t.result&&(t.result=await this.executeMiddlewareHook("onComplete",t.result,t));break}}catch(a){t.errors.push(a);for(let i of this.middlewarePlugins)await i.onError?.(a,t);throw new Error(`FIT pipeline stage "${n.stage}" failed: ${a.message}`)}return W("\u{1F389} FIT parsing completed",t.result),t.result}catch(n){throw n}}};var Ra={file:{course:6,device:1,settings:2,sport:3,activity:4,workout:5,schedules:7,weight:9,totals:10,goals:11,blood_pressure:14,monitoring_a:15,activity_summary:20,monitoring_daily:28,monitoring_b:32,segment_list:35,exd_configuration:40,invalid:0},sport:{generic:0,running:1,cycling:2,transition:3,fitness_equipment:4,swimming:5,basketball:6,soccer:7,tennis:8,american_football:9,training:10,walking:11,cross_country_skiing:12,alpine_skiing:13,snowboarding:14,rowing:15,mountaineering:16,hiking:17,multisport:18,paddling:19,invalid:254},event:{timer:0,workout:3,workout_step:4,power_down:5,power_up:6,off_course:7,session:8,lap:9,course_point:10,battery:11,virtual_partner_pace:12,hr_high_alert:13,hr_low_alert:14,speed_high_alert:15,speed_low_alert:16,cad_high_alert:17,cad_low_alert:18,power_high_alert:19,power_low_alert:20,recovery_hr:21,battery_low:22,time_duration_alert:23,distance_duration_alert:24,calorie_duration_alert:25,activity:26,fitness_equipment:27,length:28,user_marker:32,sport_point:33,calibration:36,front_gear_change:42,rear_gear_change:43,rider_position_change:44,elev_high_alert:45,elev_low_alert:46,comm_timeout:47,invalid:255},event_type:{start:0,stop:1,consecutive_depreciated:2,marker:3,stop_all:4,begin_depreciated:5,end_depreciated:6,end_all_depreciated:7,stop_disable:8,stop_disable_all:9,invalid:255},course_point:{generic:0,summit:1,valley:2,water:3,food:4,danger:5,left:6,right:7,straight:8,first_aid:9,fourth_category:10,third_category:11,second_category:12,first_category:13,hors_category:14,sprint:15,left_fork:16,right_fork:17,middle_fork:18,slight_left:19,sharp_left:20,slight_right:21,sharp_right:22,u_turn:23,segment_start:24,segment_end:25,invalid:255}},ae=l=>{let e=Ra[l];return{size:1,baseType:0,mapValue:s=>typeof s=="string"?e[s]??255:s,setValue:function(s,t){this.setUint8(s,t)}}},xs={enum_file:ae("file"),enum_activity:ae("sport"),enum_sport:ae("sport"),enum_sub_sport:ae("sport"),enum_event:ae("event"),enum_event_type:ae("event_type"),enum_course_point:ae("course_point"),uint8:{size:1,baseType:2,setValue:DataView.prototype.setUint8},sint8:{size:1,baseType:1,setValue:DataView.prototype.setInt8},uint16:{size:2,baseType:132,setValue:DataView.prototype.setUint16},sint16:{size:2,baseType:131,setValue:DataView.prototype.setInt16},uint32:{size:4,baseType:134,setValue:DataView.prototype.setUint32},sint32:{size:4,baseType:133,setValue:DataView.prototype.setInt32},string:{size:0,baseType:7,mapValue:l=>Array.from(on(l)),setValue:La},distance:{size:4,baseType:134,setValue:DataView.prototype.setUint32,mapValue:l=>Math.round(l*1e3)},speed:{size:2,baseType:132,setValue:DataView.prototype.setUint16,mapValue:l=>Math.round(l*100)},altitude:{size:2,baseType:132,setValue:DataView.prototype.setUint16,mapValue:l=>Math.round((l+500)*5)},seconds:{size:4,baseType:134,setValue:DataView.prototype.setUint32,mapValue:l=>Math.round(l*1e3)},date_time:{size:4,baseType:134,setValue:DataView.prototype.setUint32,mapValue:l=>{let e;return l instanceof Date?(e=Math.floor(l.getTime()/1e3),e-631065600):typeof l=="string"?(e=Math.floor(new Date(l).getTime()/1e3),e-631065600):l<631065600?Math.floor(l):(l>9999999999?e=Math.floor(l/1e3):e=Math.floor(l),e-631065600)}},semicircles:{size:4,baseType:133,setValue:DataView.prototype.setInt32,mapValue:l=>Math.round(l/180*2147483648)}};function ln(l){return Array.from(on(l)).length+1}function*on(l){for(let e of ga(l))e<128?yield e:e<2048?(yield 192|e>>6,yield 128|e&63):e<65536?(yield 224|e>>12,yield 128|e>>6&63,yield 128|e&63):(yield 240|e>>18,yield 128|e>>12&63,yield 128|e>>6&63,yield 128|e&63);yield 0}function*ga(l){for(let e=0;e<l.length;){let s=l.codePointAt(e);if(s===void 0)break;yield s,e+=s>65535?2:1}}function La(l,e){for(let s=0;s<e.length;s++)this.setUint8(l+s,e[s])}var Ea={file_id:{mesgNum:0,fieldDefns:[{name:"type",number:0,type:"enum_file"},{name:"time_created",number:4,type:"date_time"}]},session:{mesgNum:18,fieldDefns:[{name:"message_index",number:254,type:"uint16"},{name:"timestamp",number:253,type:"date_time"},{name:"start_time",number:2,type:"date_time"},{name:"total_elapsed_time",number:7,type:"seconds"},{name:"total_timer_time",number:8,type:"seconds"},{name:"total_calories",number:11,type:"uint16"},{name:"avg_heart_rate",number:16,type:"uint8"},{name:"max_heart_rate",number:17,type:"uint8"},{name:"start_position_lat",number:3,type:"semicircles"},{name:"start_position_long",number:4,type:"semicircles"},{name:"total_distance",number:9,type:"distance"},{name:"total_ascent",number:21,type:"uint16"},{name:"total_descent",number:22,type:"uint16"},{name:"sport",number:5,type:"enum_sport"},{name:"sub_sport",number:6,type:"enum_sub_sport"},{name:"first_lap_index",number:25,type:"uint16"},{name:"num_laps",number:26,type:"uint16"}]},lap:{mesgNum:19,fieldDefns:[{name:"message_index",number:254,type:"uint16"},{name:"timestamp",number:253,type:"date_time"},{name:"start_time",number:2,type:"date_time"},{name:"start_position_lat",number:3,type:"semicircles"},{name:"start_position_long",number:4,type:"semicircles"},{name:"end_position_lat",number:5,type:"semicircles"},{name:"end_position_long",number:6,type:"semicircles"},{name:"total_elapsed_time",number:7,type:"seconds"},{name:"total_timer_time",number:8,type:"seconds"},{name:"total_calories",number:11,type:"uint16"},{name:"avg_heart_rate",number:15,type:"uint8"},{name:"max_heart_rate",number:16,type:"uint8"},{name:"total_distance",number:9,type:"distance"},{name:"total_ascent",number:21,type:"uint16"},{name:"total_descent",number:22,type:"uint16"}]},record:{mesgNum:20,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"position_lat",number:0,type:"semicircles"},{name:"position_long",number:1,type:"semicircles"},{name:"altitude",number:2,type:"altitude"},{name:"distance",number:5,type:"distance"},{name:"heart_rate",number:3,type:"uint8"},{name:"cadence",number:4,type:"uint8"},{name:"speed",number:6,type:"speed"},{name:"power",number:7,type:"uint16"}]},event:{mesgNum:21,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"event",number:0,type:"enum_event"},{name:"event_type",number:1,type:"enum_event_type"},{name:"event_group",number:4,type:"uint8"}]},course:{mesgNum:31,fieldDefns:[{name:"name",number:5,type:"string"},{name:"sport",number:4,type:"enum_sport"},{name:"sub_sport",number:7,type:"enum_sub_sport"}]},activity:{mesgNum:34,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"total_timer_time",number:0,type:"seconds"},{name:"num_sessions",number:1,type:"uint16"},{name:"type",number:2,type:"enum_activity"},{name:"event",number:3,type:"enum_event"},{name:"event_type",number:4,type:"enum_event_type"},{name:"local_timestamp",number:5,type:"date_time"},{name:"event_group",number:6,type:"uint8"}]},course_point:{mesgNum:32,fieldDefns:[{name:"timestamp",number:1,type:"date_time"},{name:"position_lat",number:2,type:"semicircles"},{name:"position_long",number:3,type:"semicircles"},{name:"distance",number:4,type:"distance"},{name:"type",number:5,type:"enum_course_point"}]}},Sa=(l,e)=>l.map(s=>({...s,value:e[s.name]})).filter(({value:s})=>s!==void 0),We=class l{static check(e,s,t,n){if(s===void 0)throw new Error(`Message '${e}' not known`);if(t===void 0)throw new Error(`Message '${e}' has no field definitions`);let a=t.map(o=>o.name),i=Object.keys(n).filter(o=>!a.includes(o));if(i.length)throw new Error(`Message '${e}' has no field definitions named '${i}'`)}constructor(e,s,t){let n=Ea[s];if(!n)throw new Error(`Unknown message type: ${s}`);let{mesgNum:a,fieldDefns:i}=n;l.check(s,a,i,t),this.localNum=e,this.mesgNum=a,this.fields=Sa(i,t)}get mesgDefn(){let e=this.fields.map(({number:s,type:t,value:n})=>{let a=xs[t];if(!a)throw new Error(`Unknown type: ${t}`);let{size:i,baseType:o}=a;return t==="string"?{number:s,size:ln(n),baseType:o}:{number:s,size:i,baseType:o}});return{localNum:this.localNum,mesgNum:this.mesgNum,fieldDefns:e}}isSameDefn(e){let s=(o,u)=>o.number===u.number&&o.size===u.size&&o.baseType===u.baseType,t=(o,u)=>o.length===u.length&&o.every((p,T)=>s(p,u[T])),{localNum:n,mesgNum:a,fieldDefns:i}=this.mesgDefn;return a===e.mesgNum&&n===e.localNum&&t(i,e.fieldDefns)}get defnRecord(){let{localNum:e,mesgNum:s,fieldDefns:t}=this.mesgDefn,n=6+3*t.length,a=new DataView(new ArrayBuffer(n));a.setUint8(0,64|e),a.setUint8(2,1),a.setUint16(3,s),a.setUint8(5,t.length);let i=6;for(let o of t)a.setUint8(i++,o.number),a.setUint8(i++,o.size),a.setUint8(i++,o.baseType);return a.buffer}get dataRecord(){let{fieldDefns:e}=this.mesgDefn,s=1+e.reduce((a,{size:i})=>a+i,0),t=new DataView(new ArrayBuffer(s));t.setUint8(0,this.localNum);let n=1;for(let{number:a,type:i,value:o}of this.fields){let u=xs[i];if(!u)throw new Error(`Unknown type: ${i}`);let{size:p,setValue:T}=u,_;"mapValue"in u?_=u.mapValue(o):_=o,T&&T.call(t,n,_),n+=p}return t.buffer}};var Oa=[0,52225,55297,5120,61441,15360,10240,58369,40961,27648,30720,46081,20480,39937,34817,17408],un=(l,e)=>(l>>>4^Oa[l&15^e])&65535,Fa=(l,e,s)=>un(un(l,e),s),Da=(l,e)=>Fa(l,e&15,e>>>4);function et(l,e=0){let s=e,t=l instanceof ArrayBuffer?new Uint8Array(l):l;for(let n=0;n<t.length;n++)s=Da(s,t[n]);return s}var pn=J(require("dayjs"),1),fn=14,Ha=16,wa=2078,va=776358228,Ve=class{constructor(e={}){this.localNum={};this.mesgDefn=[];this.messages=[];this.options={compact:e.compact??!0,defaultActivity:e.defaultActivity??"cycling",defaultSubActivity:e.defaultSubActivity??"generic"}}async encode(e){return this.reset(),this.buildFITContent(e,"activity"),Buffer.from(await this.blob.arrayBuffer())}async encodeCourse(e){return this.reset(),this.buildFITContent(e,"course"),Buffer.from(await this.blob.arrayBuffer())}async encodeToBlob(e,s="activity"){return this.reset(),this.buildFITContent(e,s),this.blob}reset(){this.localNum={},this.mesgDefn=[],this.messages=[]}buildFITContent(e,s){this.buildFileId(e,s),s==="course"?this.buildCourseContent(e):this.buildActivityContent(e)}buildActivityContent(e){let s=e.sessionMesgs||[];if(s.length===0)throw new Error("Activity file must contain at least one Session");let t=[],n=[],a=0;for(let[i,o]of s.entries()){let u=(o.lapMesgs??[]).map((T,_)=>({...T,messageIndex:a+_})),p={...o,messageIndex:i,firstLapIndex:a,numLaps:u.length,lapMesgs:u};u.length>0&&this.buildEventsFromLaps(u,t);for(let T of u)T.recordMesgs&&this.buildRecords(T.recordMesgs);u.length>0&&this.buildLaps(u),this.buildSession(p),this.buildActivityFromSession(p,n),a+=u.length}t.forEach(i=>this.buildEvent(i)),n.forEach(i=>this.buildActivity(i))}buildCourseContent(e){let s=e.sessionMesgs||[];if(s.length===0)throw new Error("Course file must contain track data");let t=s[0];if(this.buildCourse({name:"course",sport:this.options.defaultActivity}),t.lapMesgs){let n=[];for(let o of t.lapMesgs)o.recordMesgs&&n.push(...o.recordMesgs);n.sort((o,u)=>o.timestamp&&u.timestamp?new Date(o.timestamp).getTime()-new Date(u.timestamp).getTime():(o.distance||0)-(u.distance||0));let a=n[0],i=n[n.length-1];if(t.startTime&&this.buildEvent({timestamp:t.startTime,event:"timer",eventType:"start",eventGroup:0}),n.forEach(o=>this.buildRecord(o)),i.timestamp&&this.buildEvent({timestamp:i.timestamp,event:"timer",eventType:"stop_all",eventGroup:0}),t.lapMesgs)for(let o=0;o<t.lapMesgs.length;o++)this.buildLap(t.lapMesgs[o])}}buildFileId(e,s){let t=e.fileIdMesgs?.[0]||{};this.writeMesg("file_id",{type:s,time_created:t.timeCreated?this.parseTimestamp(t.timeCreated):Date.now(),manufacturer:t.manufacturer,product:t.product,serial_number:t.serialNumber})}buildSession(e){this.writeMesg("session",{message_index:e.messageIndex,timestamp:e.timestamp?e.timestamp:void 0,start_time:e.startTime?e.startTime:void 0,total_elapsed_time:e.totalElapsedTime,total_timer_time:e.totalTimerTime,total_calories:e.totalCalories,avg_heart_rate:e.avgHeartRate,max_heart_rate:e.maxHeartRate,start_position_lat:e.startPositionLat!=null&&Number.isFinite(e.startPositionLat)?e.startPositionLat:void 0,start_position_long:e.startPositionLong!=null&&Number.isFinite(e.startPositionLong)?e.startPositionLong:void 0,total_distance:e.totalDistance,total_ascent:e.totalAscent,total_descent:e.totalDescent,sport:e.sport||this.options.defaultActivity,sub_sport:e.subSport||this.options.defaultSubActivity,first_lap_index:e.firstLapIndex??0,num_laps:e.numLaps??e.lapMesgs?.length??0})}buildLaps(e){e.forEach(s=>this.buildLap(s))}buildLap(e){this.writeMesg("lap",{message_index:e.messageIndex,timestamp:e?.timestamp?e.timestamp:void 0,start_time:e?.startTime?e.startTime:void 0,start_position_lat:e?.startPositionLat!=null&&Number.isFinite(e.startPositionLat)?e.startPositionLat:void 0,start_position_long:e?.startPositionLong!=null&&Number.isFinite(e.startPositionLong)?e.startPositionLong:void 0,end_position_lat:e?.endPositionLat!=null&&Number.isFinite(e.endPositionLat)?e.endPositionLat:void 0,end_position_long:e?.endPositionLong!=null&&Number.isFinite(e.endPositionLong)?e.endPositionLong:void 0,total_elapsed_time:e?.totalElapsedTime,total_timer_time:e?.totalTimerTime,total_calories:e?.totalCalories,avg_heart_rate:e?.avgHeartRate,max_heart_rate:e?.maxHeartRate,total_distance:e?.totalDistance,total_ascent:e?.totalAscent,total_descent:e?.totalDescent})}buildRecords(e){e.forEach(s=>this.buildRecord(s))}buildRecord(e){this.writeMesg("record",{timestamp:e.timestamp,position_lat:e?.positionLat!=null&&Number.isFinite(e.positionLat)?e.positionLat:void 0,position_long:e?.positionLong!=null&&Number.isFinite(e.positionLong)?e.positionLong:void 0,altitude:e?.altitude,enhancedAltitude:e?.enhancedAltitude,distance:e?.distance,heart_rate:e?.heartRate,cadence:e?.cadence,speed:e?.speed,enhancedSpeed:e?.enhancedSpeed,power:e?.power})}buildEvent(e){this.writeMesg("event",{timestamp:e.timestamp?e.timestamp:void 0,event:e.event,event_type:e.eventType,event_group:e.eventGroup})}buildActivity(e){this.writeMesg("activity",{timestamp:e.timestamp?e.timestamp:void 0,total_timer_time:e.totalTimerTime,num_sessions:e.numSessions,type:e.type,event:e.event,event_type:e.eventType,local_timestamp:e.localTimestamp?this.parseTimestamp(e.localTimestamp):void 0,event_group:e.eventGroup})}buildCourse(e){this.writeMesg("course",{name:e.name,sport:e.sport})}buildEventsFromLaps(e,s){e.forEach((t,n)=>{t.startTime&&s.push({timestamp:t.startTime,event:"timer",eventType:"start",eventGroup:n}),t.timestamp&&s.push({timestamp:t.timestamp,event:"timer",eventType:n===e.length-1?"stop_all":"stop",eventGroup:n})})}buildActivityFromSession(e,s){s.push({timestamp:e.timestamp,totalTimerTime:e.totalTimerTime,numSessions:1,type:e.sport||this.options.defaultActivity,event:"activity",eventType:"stop",eventGroup:0})}parseTimestamp(e){return typeof e=="number"?e:(0,pn.default)(e).valueOf()}validateRequiredFields(e){if(!e.sessionMesgs||e.sessionMesgs.length===0)throw new Error("FIT file must contain at least one Session")}writeMesg(e,s){let t=Object.fromEntries(Object.entries(s).filter(([o,u])=>u!==void 0));if(Object.keys(t).length===0)return;let n=this.localNum[e];n===void 0&&(n=this.localNum[e]=Object.keys(this.localNum).length);let a=new We(n,e,t),i=this.mesgDefn[n];(!i||!a.isSameDefn(i))&&(this.messages.push(a.defnRecord),this.mesgDefn[n]=a.mesgDefn),this.messages.push(a.dataRecord)}get blob(){let e=[this.header,...this.messages,this.trailer];return new Blob(e,{type:"application/octet-stream"})}get dataLen(){return this.messages.reduce((e,s)=>e+s.byteLength,0)}get dataCrc(){return this.messages.reduce((e,s)=>et(s,e),0)}get header(){let e=new DataView(new ArrayBuffer(fn));return e.setUint8(0,fn),e.setUint8(1,Ha),e.setUint16(2,wa,!0),e.setUint32(4,this.dataLen,!0),e.setUint32(8,va),e.setUint16(12,et(e.buffer.slice(0,12)),!0),e.buffer}get trailer(){let e=new DataView(new ArrayBuffer(2));return e.setUint16(0,this.dataCrc,!0),e.buffer}async encoder(e){return this.encode(e)}};De();var Ua="development",Ba=1,Ma=1;function Ga(l,e){if(!Number.isFinite(l))throw new Error(`${e} must be a finite number.`)}function Ke(l,e){return Ga(l,e),Math.abs(l)<=180?Math.round(l*2147483648/180):Math.round(l)}function Pa(l){if(!l.name||l.name.trim().length===0)throw new Error("Course name is required.");if(!Array.isArray(l.records)||l.records.length===0)throw new Error("Course must contain at least one record point.");let e=l.records.map((t,n)=>{if(t==null)throw new Error(`Course record #${n+1} is missing.`);if(t.timestamp==null)throw new Error(`Course record #${n+1} is missing timestamp.`);return{...t,positionLat:Ke(t.latitude,`records[${n}].latitude`),positionLong:Ke(t.longitude,`records[${n}].longitude`)}}),s=(l.coursePoints??[]).map((t,n)=>{if(t==null)throw new Error(`Course point #${n+1} is missing.`);if(t.timestamp==null)throw new Error(`Course point #${n+1} is missing timestamp.`);return{...t,type:t.type??0,positionLat:Ke(t.latitude,`coursePoints[${n}].latitude`),positionLong:Ke(t.longitude,`coursePoints[${n}].longitude`)}});return{...l,sport:l.sport??2,subSport:l.subSport??0,records:e,coursePoints:s,manufacturer:l.manufacturer??Ua,product:l.product??Ba,serialNumber:l.serialNumber??Ma,timeCreated:l.timeCreated??e[0].timestamp}}function Wa(l){let e=Pa(l),s=e.records[0],t=e.records[e.records.length-1],n=s.timestamp,a=t.timestamp,i=[{mesgNum:0,data:{type:6,manufacturer:e.manufacturer,product:e.product,serialNumber:e.serialNumber,timeCreated:e.timeCreated}},{mesgNum:31,data:{name:e.name,sport:e.sport,subSport:e.subSport}},{mesgNum:19,data:{startTime:n,timestamp:a,startPositionLat:s.positionLat,startPositionLong:s.positionLong,endPositionLat:t.positionLat,endPositionLong:t.positionLong,totalDistance:t.distance}},{mesgNum:21,data:{timestamp:n,event:0,eventType:0}}];return e.records.forEach(o=>{i.push({mesgNum:20,data:{timestamp:o.timestamp,positionLat:o.positionLat,positionLong:o.positionLong,distance:o.distance,altitude:o.altitude,speed:o.speed}})}),e.coursePoints.forEach((o,u)=>{i.push({mesgNum:32,data:{messageIndex:u,timestamp:o.timestamp,positionLat:o.positionLat,positionLong:o.positionLong,distance:o.distance,type:o.type,name:o.name,favorite:o.favorite}})}),i.push({mesgNum:21,data:{timestamp:a,event:0,eventType:4}}),i}function mn(l){let e=new Fe;return Wa(l).forEach(t=>{e.onMesg(t.mesgNum,t.data)}),e.close()}var se=class{constructor(){this.version="1.0.0";this.priority=100}supports(e){return this.supportedTags.includes(e)}async initialize(e){e.metadata.set(`plugin:${this.name}:initialized`,!0)}async destroy(e){e.metadata.delete(`plugin:${this.name}:initialized`)}async validate(e){return!0}parseFloat(e){if(!(typeof e>"u"))return typeof e=="number"?e:typeof e=="string"&&parseFloat(e)||0}parseInt(e){return typeof e=="number"?Math.floor(e):typeof e=="string"&&parseInt(e,10)||0}parseString(e){return String(e||"")}parseBoolean(e){return typeof e=="boolean"?e:typeof e=="string"?e.toLowerCase()==="true":!1}parseDate(e){if(!e)return;let s=new Date(e);return isNaN(s.getTime())?void 0:s}hasRequiredAttributes(e,s){return s.every(t=>e.attributes?.[t])}extractAttributes(e,s,t){e.attributes&&Object.entries(e.attributes).forEach(([n,a])=>{let i=t[n];i&&(s[i]=String(a??""))})}processChildren(e,s,t){e.children?.forEach(n=>{let a=t[n.tag];a&&a(n,s)})}getChildValue(e,s){let t=e.children?.find(n=>n.tag===s);return t?.value?String(t.value):void 0}getChildByTag(e,s){return e.children?.find(t=>t.tag===s)}getChildrenByTag(e,s){return e.children?.filter(t=>t.tag===s)||[]}convertExtensions(e){let s={};return e.children?.forEach(t=>{s[t.tag]=this.convertExtensionContent(t)}),s}convertExtensionContent(e){if(e.children?.length){let s={};return e.children.forEach(t=>{s[t.tag]=this.convertExtensionContent(t)}),s}else return e.value}};var X=class extends se{parseCoordinate(e){let s=this.parseFloat(e);return s===0?void 0:s}parseGPXTime(e){if(!e)return;let s=new Date(e);return isNaN(s.getTime())?void 0:s}extractNumericAttributes(e,s,t){e.attributes&&Object.entries(e.attributes).forEach(([n,a])=>{let i=t[n];i&&i in s&&typeof a<"u"&&(s[i]=this.parseFloat(a))})}};var ke=class extends X{constructor(){super(...arguments);this.name="wpt-converter";this.supportedTags=["wpt","trkpt","rtept"];this.version="1.0.0"}convert(s,t){if(!this.hasRequiredAttributes(s,["lat","lon"])){t.warnings.push(`${this.name}: point without latitude or longitude was ignored`);return}let n={lat:this.parseFloat(s.attributes?.lat),lon:this.parseFloat(s.attributes?.lon)};return this.processChildren(s,n,{ele:(a,i)=>i.ele=this.parseFloat(a.value),time:(a,i)=>i.time=new Date(this.parseString(a.value)),speed:(a,i)=>i.speed=this.parseFloat(a.value),power:(a,i)=>i.power=this.parseFloat(a.value),cadence:(a,i)=>i.cadence=this.parseFloat(a.value),heartRate:(a,i)=>i.heartRate=this.parseFloat(a.value),course:(a,i)=>i.course=this.parseFloat(a.value),name:(a,i)=>i.name=this.parseString(a.value),cmt:(a,i)=>i.cmt=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),src:(a,i)=>i.src=this.parseString(a.value),sym:(a,i)=>i.sym=this.parseString(a.value),type:(a,i)=>i.type=this.parseString(a.value),fix:(a,i)=>i.fix=this.parseString(a.value),sat:(a,i)=>i.sat=this.parseFloat(a.value),hdop:(a,i)=>i.hdop=this.parseFloat(a.value),vdop:(a,i)=>i.vdop=this.parseFloat(a.value),pdop:(a,i)=>i.pdop=this.parseFloat(a.value),ageofdgpsdata:(a,i)=>i.ageofdgpsdata=this.parseFloat(a.value),geoidheight:(a,i)=>i.geoidheight=this.parseFloat(a.value),magvar:(a,i)=>i.magvar=this.parseFloat(a.value),dgpsid:(a,i)=>i.dgpsid=this.parseFloat(a.value),extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");if(u){let p=u.convert(a,t);p&&(this.mapExtensionsToPoint(p,i),i.extensions=p)}},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}mapExtensionsToPoint(s,t){Object.entries(s).forEach(([n,a])=>{if(a!==void 0&&(typeof a=="string"||typeof a=="number")){let i=o=>(Array.isArray(o)?o:[o]).some(p=>{let T=n.toLowerCase(),_=p.toLowerCase();return T===_||T.endsWith(`:${_}`)});i("speed")?t.speed=this.parseFloat(a):i("hr")?t.heartRate=this.parseFloat(a):i(["cad","cadence"])?t.cadence=this.parseFloat(a):i(["PowerInWatts","power"])&&(t.power=this.parseFloat(a))}})}},Ne=class extends X{constructor(){super(...arguments);this.name="rte-converter";this.supportedTags=["rte"]}convert(s,t){let n={rtept:[]};return this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),cmt:(a,i)=>i.cmt=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),src:(a,i)=>i.src=this.parseString(a.value),number:(a,i)=>i.number=this.parseFloat(a.value),type:(a,i)=>i.type=this.parseString(a.value),rtept:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("wpt")?.convert(a,t);u&&i.rtept&&i.rtept.push(u)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}},Xe=class extends X{constructor(){super(...arguments);this.name="trk-converter";this.supportedTags=["trk"]}convert(s,t){let n={trkseg:[]};return this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),cmt:(a,i)=>i.cmt=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),src:(a,i)=>i.src=this.parseString(a.value),number:(a,i)=>i.number=this.parseFloat(a.value),type:(a,i)=>i.type=this.parseString(a.value),trkseg:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("trkseg")?.convert(a,t);u&&i.trkseg&&i.trkseg.push(u)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}},Ye=class extends X{constructor(){super(...arguments);this.name="trkseg-converter";this.supportedTags=["trkseg"]}convert(s,t){let n={trkpt:[]};return this.processChildren(s,n,{trkpt:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("wpt")?.convert(a,t);u&&i.trkpt&&i.trkpt.push(u)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))}}),n}},ze=class extends X{constructor(){super(...arguments);this.name="link-converter";this.supportedTags=["link"]}convert(s,t){let n={};return s.attributes?.href&&(n.href=s.attributes.href),this.processChildren(s,n,{text:(a,i)=>i.text=this.parseString(a.value),type:(a,i)=>i.type=this.parseString(a.value)}),n}},Je=class extends X{constructor(){super(...arguments);this.name="metadata-converter";this.supportedTags=["metadata"]}convert(s,t){let n={};return this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),keywords:(a,i)=>i.keywords=this.parseString(a.value),time:(a,i)=>i.time=new Date(this.parseString(a.value)),author:(a,i)=>{let o=t.metadata.get("decoder");i.author=o?.getConverter("author")?.convert(a,t)},copyright:(a,i)=>{let o=t.metadata.get("decoder");i.copyright=o?.getConverter("copyright")?.convert(a,t)},bounds:(a,i)=>{let o=t.metadata.get("decoder");i.bounds=o?.getConverter("bounds")?.convert(a,t)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}},$e=class extends X{constructor(){super(...arguments);this.name="person-converter";this.supportedTags=["author"]}convert(s,t){let n={};return s.value&&!s.children?.length?(n.name=this.parseString(s.value),n):(this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),email:(a,i)=>{let o=t.metadata.get("decoder");i.email=o?.getConverter("email")?.convert(a,t)},link:(a,i)=>{let o=t.metadata.get("decoder");i.link=o?.getConverter("link")?.convert(a,t)}}),n)}},Qe=class extends X{constructor(){super(...arguments);this.name="email-converter";this.supportedTags=["email"]}convert(s,t){return{id:s.attributes?.id,domain:s.attributes?.domain}}},je=class extends X{constructor(){super(...arguments);this.name="copyright-converter";this.supportedTags=["copyright"]}convert(s,t){let n={};return s.attributes?.author&&(n.author=s.attributes.author),this.processChildren(s,n,{year:(a,i)=>i.year=this.parseString(a.value),license:(a,i)=>i.license=this.parseString(a.value)}),n}},Ze=class extends X{constructor(){super(...arguments);this.name="bounds-converter";this.supportedTags=["bounds"]}convert(s,t){let n={};return this.extractAttributes(s,n,{minlat:"minlat",minlon:"minlon",maxlat:"maxlat",maxlon:"maxlon"}),n}},qe=class extends X{constructor(){super(...arguments);this.name="extensions-converter";this.supportedTags=["extensions"]}convert(s,t){let n={};return s.children?.forEach(a=>{this.flattenExtensionElement(a,n)}),n}flattenExtensionElement(s,t){if(!s.children?.length&&s.value!==void 0){t[s.tag]=this.parseExtensionValue(s.value);return}s.children?.length&&s.children.forEach(n=>{this.flattenExtensionElement(n,t)})}parseExtensionValue(s){if(s===void 0)return;let t=String(s),n=parseFloat(t);return!isNaN(n)&&isFinite(n)?n:t}};var dn=require("htmlparser2");var xe=class{constructor(){this.stage="tokenize"}async process(e){let s=Date.now();if(!e.xmlContent)throw new Error("XML content cannot be empty");let t=[],n=new dn.Parser({onopentag(a,i){t.push({type:"open",tag:a,attributes:i})},ontext(a){let i=a.replace(/\n/g,"").trim();i&&t.push({type:"text",tag:"text",value:i})},onclosetag(a){t.push({type:"close",tag:a})}},{xmlMode:!0});return n.write(e.xmlContent),n.end(),e.tokens=t,e.performance.tokenizeTime=Date.now()-s,e}},es=class{constructor(){this.stage="ast_generate"}async process(e){let s=Date.now();if(!e.tokens)throw new Error("Tokens cannot be empty");let t=[],n,a=null;for(let i of e.tokens)if(i.type==="open"){let o={tag:i.tag,attributes:i.attributes||{},children:[]};n?a&&a.children?.push(o):n=o,t.push(o),a=o}else i.type==="text"&&a?a.value=i.value:i.type==="close"&&(t.pop(),a=t[t.length-1]||null);return e.ast=n,e.performance.astTime=Date.now()-s,e}},ss=class{constructor(e){this.getConverter=e;this.stage="convert"}async process(e){let s=Date.now();if(!e.ast)throw new Error("AST cannot be empty");if(e.ast.tag!=="gpx")throw new Error(`Not a valid GPX document: expected <gpx>, received <${e.ast.tag}>`);let t={};return e.ast.attributes&&Object.entries(e.ast.attributes).forEach(([n,a])=>{n.startsWith("xmlns:")?t[n]=a.replace(/&#39;/g,"'"):n==="xsi:schemaLocation"?t[n]=a.replace(/&#39;/g,"'"):t[n]=a}),e.ast.children?.forEach(n=>{let a=this.getConverter(n.tag);if(!a){e.warnings.push(`Unsupported GPX element "${n.tag}" was ignored`);return}try{let i=a.convert(n,e);i&&this.assignResult(t,n.tag,i)}catch(i){throw e.errors.push(i),new Error(`GPX converter "${a.name}" failed for ${n.tag}: ${i.message}`)}}),e.result=t,e.performance.convertTime=Date.now()-s,e}assignResult(e,s,t){switch(s){case"metadata":e.metadata=t;break;case"wpt":e.wpt||(e.wpt=[]),e.wpt.push(t);break;case"rte":e.rte||(e.rte=[]),e.rte.push(t);break;case"trk":e.trk||(e.trk=[]),e.trk.push(t);break;case"extensions":e.extensions=t;break}}},ts=class{constructor(){this.stage="complete"}async process(e){e.performance.endTime=Date.now();let s=e.performance.endTime-e.performance.startTime;return e.metadata.set("performance",{totalTime:s,tokenizeTime:e.performance.tokenizeTime,astTime:e.performance.astTime,convertTime:e.performance.convertTime}),e}};var ns=class{constructor(){this.converterPlugins=new Map;this.registeredPlugins=new Set;this.middlewarePlugins=[];this.processors=[];this.initialized=!1;this.defaultConvertersRegistered=!1;this.initializePipeline()}initializePipeline(){this.processors=[new xe,new es,new ss(e=>this.getConverter(e)),new ts]}async registerDefaultConverters(){if(this.defaultConvertersRegistered)return;let e=[new ke,new Ne,new Xe,new Ye,new ze,new Je,new $e,new Qe,new je,new Ze,new qe];for(let s of e)s.supportedTags?.forEach(t=>{this.addConverterForTag(t,s)}),this.registeredPlugins.add(s.name);this.defaultConvertersRegistered=!0}addConverterForTag(e,s){this.converterPlugins.has(e)||this.converterPlugins.set(e,[]);let t=this.converterPlugins.get(e);t.push(s),t.sort((n,a)=>(n.priority||100)-(a.priority||100))}async registerConverter(e){if(this.registeredPlugins.has(e.name))throw new Error(`Converter plugin ${e.name} already exists`);e.supportedTags?.forEach(s=>{this.addConverterForTag(s,e)}),this.registeredPlugins.add(e.name)}async registerMiddleware(e){let s=this.middlewarePlugins.findIndex(t=>t.name===e.name);s!==-1?this.middlewarePlugins[s]=e:this.middlewarePlugins.push(e)}getConverter(e){let s=this.converterPlugins.get(e);return s&&s.length>0?s[0]:void 0}getAllConverters(e){return this.converterPlugins.get(e)||[]}unregisterConverter(e){let s;for(let[t,n]of this.converterPlugins){let a=n.findIndex(i=>i.name===e);a!==-1&&(s=n[a],n.splice(a,1),n.length===0&&this.converterPlugins.delete(t))}s&&this.registeredPlugins.delete(e)}unregisterMiddleware(e){let s=this.middlewarePlugins.findIndex(t=>t.name===e);s!==-1&&this.middlewarePlugins.splice(s,1)}listConverters(){return Array.from(this.converterPlugins.keys())}listConverterPlugins(){return Array.from(this.registeredPlugins)}listMiddlewares(){return this.middlewarePlugins.map(e=>e.name)}listProcessors(){return this.processors.map(e=>e.constructor.name)}getConverterDetails(e){let s={};if(e){let t=this.converterPlugins.get(e);t&&(s[e]=t.map(n=>({name:n.name,priority:n.priority||100})))}else for(let[t,n]of this.converterPlugins)s[t]=n.map(a=>({name:a.name,priority:a.priority||100}));return s}getMiddlewareDetails(){return this.middlewarePlugins.map(e=>{let s=[];return e.onTokenize&&s.push("onTokenize"),e.onAstGenerate&&s.push("onAstGenerate"),e.onConvert&&s.push("onConvert"),e.onComplete&&s.push("onComplete"),e.onError&&s.push("onError"),{name:e.name,hooks:s}})}async initialize(){if(this.initialized)return;await this.registerDefaultConverters();let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.initialize?.(e);this.initialized=!0}async destroy(){if(!this.initialized)return;let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.destroy?.(e);this.initialized=!1}createContext(){return{metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},performance:{startTime:Date.now()}}}async executeMiddlewareHook(e,s,t){let n=s;for(let a of this.middlewarePlugins){let i=a[e];if(i)try{n=await i.call(a,n,t)||n}catch(o){t.errors.push(o),await a.onError?.(o,t)}}return n}async parserByBuffer(e){await this.initialize();let s=this.createContext();s.rawData=e,s.xmlContent=e.toString("utf-8"),s.metadata.set("decoder",this);for(let t of this.processors)try{switch(s=await t.process(s),t.stage){case"tokenize":s.tokens&&(s.tokens=await this.executeMiddlewareHook("onTokenize",s.tokens,s));break;case"ast_generate":s.ast&&(s.ast=await this.executeMiddlewareHook("onAstGenerate",s.ast,s));break;case"convert":s.result&&(s.result=await this.executeMiddlewareHook("onConvert",s.result,s));break;case"complete":s.result&&(s.result=await this.executeMiddlewareHook("onComplete",s.result,s));break}}catch(n){s.errors.push(n);for(let a of this.middlewarePlugins)await a.onError?.(n,s);throw new Error(`GPX pipeline stage "${t.stage}" failed: ${n.message}`)}return s.result}convertExtensions(e){let s={},{attributes:t,tag:n,value:a}=e;if(t&&Object.entries(t).forEach(([i,o])=>{s[i]=o}),e?.children?.length)e.children?.forEach(i=>{s[i.tag]=this.convertExtensions(i)});else if(a!==void 0)return a;return s}};var nt=J(require("dayjs"),1),Tn=J(require("dayjs/plugin/utc.js"),1);var st={temperature:"atemp",wtemp:"wtemp",heartRate:"hr",cadence:"cad"};var tt={temperature:"Temperature",Depth:"Depth"};nt.default.extend(Tn.default);var as=class{constructor(e={}){this.formatElevation=e=>{let s=parseFloat(e);return isNaN(s)?e:this.roundTo(s,2).toString()};this.compact=e.compact??!0}async encode(e){let s=this.buildGPXXML(e);return Buffer.from(s,"utf-8")}encodeToString(e){return this.buildGPXXML(e)}buildGPXXML(e){let s=this.buildXMLHeader(e),t=this.buildGPXContent(e),a=`${s}${t}
2
2
  </gpx>`;return this.compact?this.compressXML(a):a}compressXML(e){return e.replace(/>\s+</g,"><").replace(/^\s+|\s+$/gm,"").replace(/\s+/g," ").trim()}buildXMLHeader(e){let s=this.escapeXMLAttribute(e.creator||"TrackSwap"),t=this.escapeXMLAttribute(e.version||"1.1");return['<?xml version="1.0" encoding="UTF-8"?>',`<gpx creator="${s}" version="${t}"`,' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"',' xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd'," http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd"," http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd"," http://www.garmin.com/xmlschemas/PowerExtension/v1 http://www.garmin.com/xmlschemas/PowerExtensionv1.xsd",' http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"',' xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"',' xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"',' xmlns:gpxpx="http://www.garmin.com/xmlschemas/PowerExtension/v1"',' xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2"',' xmlns="http://www.topografix.com/GPX/1/1">'].join(`
3
3
  `)}buildGPXContent(e){let{metadata:s,wpt:t=[],rte:n=[],trk:a=[],extensions:i}=e,o=[];return s&&o.push(this.buildMetadata(s)),t.forEach(u=>{o.push(this.buildWaypoint(u,"wpt"))}),n.forEach(u=>{o.push(this.buildRoute(u))}),a.forEach(u=>{o.push(this.buildTrack(u))}),i&&o.push(this.buildExtensions(i)),o.join(`
4
4
  `)}buildMetadata(e){let s=["<metadata>"];return this.addOptionalElement(s,"name",e.name),this.addOptionalElement(s,"desc",e.desc),e.author&&s.push(this.buildAuthor(e.author)),e.copyright&&s.push(this.buildCopyright(e.copyright)),e.link&&this.addLinks(s,e.link),e.time&&s.push(this.buildTimeElement(e.time)),this.addOptionalElement(s,"keywords",e.keywords),e.bounds&&s.push(this.buildBounds(e.bounds)),e.extensions&&s.push(this.buildExtensions(e.extensions)),s.push("</metadata>"),s.join(`
@@ -8,7 +8,7 @@
8
8
  `)}addStandardWaypointElements(e,s){this.addOptionalElement(e,"magvar",s.magvar?.toString()),this.addOptionalElement(e,"geoidheight",s.geoidheight?.toString()),this.addOptionalElement(e,"name",s.name),this.addOptionalElement(e,"cmt",s.cmt),this.addOptionalElement(e,"desc",s.desc),this.addOptionalElement(e,"src",s.src),s.link&&this.addLinks(e,s.link),this.addOptionalElement(e,"sym",s.sym),this.addOptionalElement(e,"type",s.type),this.addOptionalElement(e,"fix",s.fix),this.addOptionalElement(e,"sat",s.sat?.toString()),this.addOptionalElement(e,"hdop",s.hdop?.toString()),this.addOptionalElement(e,"vdop",s.vdop?.toString()),this.addOptionalElement(e,"pdop",s.pdop?.toString()),this.addOptionalElement(e,"ageofdgpsdata",s.ageofdgpsdata?.toString()),this.addOptionalElement(e,"dgpsid",s.dgpsid?.toString())}buildRoute(e){let s=["<rte>"];return this.addRouteTrackCommonElements(s,e),e.extensions&&s.push(this.buildExtensions(e.extensions)),e.rtept&&e.rtept?.forEach(t=>{s.push(this.buildWaypoint(t,"rtept"))}),s.push("</rte>"),s.join(`
9
9
  `)}buildTrack(e){let s=["<trk>"];return this.addRouteTrackCommonElements(s,e),e.extensions&&s.push(this.buildExtensions(e.extensions)),e.trkseg&&e.trkseg.forEach(t=>{s.push(this.buildTrackSegment(t))}),s.push("</trk>"),s.join(`
10
10
  `)}buildTrackSegment(e){let s=["<trkseg>"];return e.trkpt&&e.trkpt.forEach(t=>{s.push(this.buildWaypoint(t,"trkpt"))}),e.extensions&&s.push(this.buildExtensions(e.extensions)),s.push("</trkseg>"),s.join(`
11
- `)}addRouteTrackCommonElements(e,s){this.addOptionalElement(e,"name",s.name),this.addOptionalElement(e,"cmt",s.cmt),this.addOptionalElement(e,"desc",s.desc),this.addOptionalElement(e,"src",s.src),s.link&&this.addLinks(e,s.link),this.addOptionalElement(e,"number",s.number?.toString()),this.addOptionalElement(e,"type",s.type)}processPointExtensions(e,s){let t={};return Object.entries({"gpxtpx:TrackPointExtension":{"gpxtpx:hr":"heartRate","gpxtpx:cad":"cadence","gpxtpx:speed":"speed","gpxtpx:atemp":"temperature","gpxtpx:wtemp":"wtemp","gpxtpx:temp":"temperature"},"gpxpx:PowerExtension":{"gpxpx:PowerInWatts":"power"},"gpxx:GpxExtensions":{"gpxx:Temperature":"temperature","gpxx:Depth":"depth"}}).forEach(([a,i])=>{let o={},u=!1;Object.entries(i).forEach(([p,d])=>{let _;if(e[d]!==void 0)_=e[d];else if(s)if(s[p]!==void 0)_=s[p];else{let R=p.split(":").pop();Object.entries(s).forEach(([b,y])=>{b.endsWith(`:${R}`)&&y!==void 0&&(_=y)})}_!==void 0&&(o[p]=_,u=!0)}),u&&(t[a]=o)}),t}buildTrackPointExtension(e,s){let t=this.deepClone(s["gpxtpx:TrackPointExtension"]||{}),n=Object.keys(st);return Object.keys(e).filter(a=>n.includes(a)).forEach(a=>{let i=st[a];i&&e[a]!==void 0&&(t[`gpxtpx:${i}`]=e[a])}),t}buildPowerExtension(e,s){return this.deepClone(s["gpxpx:PowerExtension"]||{})}buildGpxExtensions(e,s){let t=this.deepClone(s["gpxx:GpxExtensions"]||{}),n=Object.keys(tt);return Object.keys(e).filter(a=>n.includes(a)).forEach(a=>{let i=tt[a];i&&e[a]!==void 0&&(t[`gpxx:${i}`]=e[a])}),t}buildExtensions(e){let s=this.buildExtensionContent(e);return s?`<extensions>${s}</extensions>`:""}buildExtensionContent(e){return Object.entries(e).filter(([s])=>!s.startsWith("xmlns")).map(([s,t])=>{if(t&&typeof t=="object"){let n=this.buildExtensionContent(t);return`<${s}>${n}</${s}>`}else if(t!=null)return`<${s}>${this.escapeXML(String(t))}</${s}>`;return""}).filter(s=>s).join("")}buildLink(e){let s=[`<link href="${this.escapeXMLAttribute(e.href||"")}">`];return this.addOptionalElement(s,"text",e.text),this.addOptionalElement(s,"type",e.type),s.push("</link>"),s.join("")}addLinks(e,s){(Array.isArray(s)?s:[s]).forEach(n=>{e.push(this.buildLink(n))})}buildTimeElement(e){return typeof e=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z?$/.test(e)?`<time>${e}</time>`:`<time>${(0,nt.default)(e).utc().format("YYYY-MM-DDTHH:mm:ss[Z]")}</time>`}addOptionalElement(e,s,t,n){if(t!=null&&t!==""){let a=n?n(t):this.escapeXML(t);e.push(`<${s}>${a}</${s}>`)}}isValidCoordinate(e,s){return e!=null&&s!==void 0&&s!==null&&!isNaN(e)&&!isNaN(s)}formatCoordinate(e){return this.roundTo(e,6).toString()}roundTo(e,s){let t=Math.pow(10,s);return Math.round(e*t)/t}escapeXML(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}escapeXMLAttribute(e){return typeof e!="string"?String(e||""):e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\r/g,"&#13;").replace(/\n/g,"&#10;").replace(/\t/g,"&#9;")}deepClone(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(t=>this.deepClone(t));let s={};for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(s[t]=this.deepClone(e[t]));return s}encoder(e){return this.encode(e)}};var z=class extends se{parseHeartRate(e){let s=this.parseFloat(e);if(!(typeof s>"u"))return s>0&&s<300?s:void 0}parseTCXTime(e){if(!e)return;let s=new Date(e);return isNaN(s.getTime())?void 0:s}parseDistance(e){let s=this.parseFloat(e);if(!(typeof s>"u"))return s>0?s:void 0}parseSpeed(e){let s=this.parseFloat(e);if(!(typeof s>"u"))return s>=0?s:void 0}parseAltitude(e){return this.parseFloat(e)}parseCoordinate(e){let s=this.parseFloat(e);return s!==0?s:void 0}};var is=class extends z{constructor(){super(...arguments);this.name="PositionConverter";this.supportedTags=["Position"]}convert(s,t){let n={};return this.processChildren(s,n,{LatitudeDegrees:(a,i)=>i.LatitudeDegrees=this.parseString(a.value),LongitudeDegrees:(a,i)=>i.LongitudeDegrees=this.parseString(a.value)}),n}},ls=class extends z{constructor(){super(...arguments);this.name="TrackpointConverter";this.supportedTags=["Trackpoint"]}convert(s,t){let n={};return this.processChildren(s,n,{Time:(a,i)=>i.Time=this.parseString(a.value),Position:(a,i)=>{let o=t.metadata.get("decoder");i.Position=o?.getConverter("Position")?.convert(a,t)},AltitudeMeters:(a,i)=>i.AltitudeMeters=this.parseFloat(a.value),DistanceMeters:(a,i)=>i.DistanceMeters=this.parseFloat(a.value),HeartRateBpm:(a,i)=>{if(a.value)i.HeartRateBpm=this.parseFloat(a.value);else{let o=this.getChildByTag(a,"Value");o?.value&&(i.HeartRateBpm=this.parseFloat(o.value))}},Cadence:(a,i)=>{let o={Low:0,High:0};this.processChildren(a,o,{Low:(u,p)=>p.Low=this.parseFloat(u.value)||0,High:(u,p)=>p.High=this.parseFloat(u.value)||0}),i.Cadence=o},SensorState:(a,i)=>i.SensorState=a.value,Extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Extensions");u&&(i.Extensions=u.convert(a,t))}}),n}},os=class extends z{constructor(){super(...arguments);this.name="TrackConverter";this.supportedTags=["Track"]}convert(s,t){let n={Trackpoint:[]};return this.processChildren(s,n,{Trackpoint:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Trackpoint")?.convert(a,t);u&&i.Trackpoint&&i.Trackpoint.push(u)}}),n}},us=class extends z{constructor(){super(...arguments);this.name="ActivityLapConverter";this.supportedTags=["Lap"]}convert(s,t){let n={};return this.extractAttributes(s,n,{StartTime:"StartTime"}),this.processChildren(s,n,{TotalTimeSeconds:(a,i)=>i.TotalTimeSeconds=this.parseFloat(a.value),DistanceMeters:(a,i)=>i.DistanceMeters=this.parseFloat(a.value),MaximumSpeed:(a,i)=>i.MaximumSpeed=this.parseFloat(a.value),Calories:(a,i)=>i.Calories=this.parseFloat(a.value),AverageHeartRateBpm:(a,i)=>i.AverageHeartRateBpm=this.parseFloat(a.value),MaximumHeartRateBpm:(a,i)=>i.MaximumHeartRateBpm=this.parseFloat(a.value),Intensity:(a,i)=>i.Intensity=a.value,TriggerMethod:(a,i)=>i.TriggerMethod=a.value,Track:(a,i)=>{i.Track||(i.Track=[]);let u=t.metadata.get("decoder")?.getConverter("Track")?.convert(a,t);u&&i.Track.push(u)},Notes:(a,i)=>i.Notes=this.parseString(a.value),Extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Extensions");u&&(i.Extensions=u.convert(a,t))}}),n}},fs=class extends z{constructor(){super(...arguments);this.name="ActivityConverter";this.supportedTags=["Activity"]}convert(s,t){let n={Id:"",Lap:[]};return this.extractAttributes(s,n,{Sport:"Sport"}),this.processChildren(s,n,{Id:(a,i)=>i.Id=this.parseString(a.value),Lap:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Lap")?.convert(a,t);u&&i.Lap.push(u)},Notes:(a,i)=>i.Notes=this.parseString(a.value),Training:(a,i)=>i.Training=this.convertTraining(a),Creator:(a,i)=>i.Creator=this.convertCreator(a),Extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Extensions");u&&(i.Extensions=u.convert(a,t))}}),n}convertTraining(s){let t={};return s.attributes&&Object.entries(s.attributes).forEach(([n,a])=>{t[n]=a}),s.children?.forEach(n=>{t[n.tag]=this.convertExtensionContent(n)}),t}convertCreator(s){let t={};return s.children?.forEach(n=>{t[n.tag]=this.convertExtensionContent(n)}),t}},ps=class extends z{constructor(){super(...arguments);this.name="ActivityListConverter";this.supportedTags=["Activities"]}convert(s,t){let n={Activity:[],MultiActivitySession:[]};return this.processChildren(s,n,{Activity:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Activity")?.convert(a,t);u&&i.Activity&&i.Activity.push(u)},MultiActivitySession:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("MultiActivitySession")?.convert(a,t);u&&i.MultiActivitySession&&i.MultiActivitySession.push(u)}}),n}},ms=class extends z{constructor(){super(...arguments);this.name="MultiActivitySessionConverter";this.supportedTags=["MultiActivitySession"]}convert(s,t){let n={};return this.processChildren(s,n,{Id:(a,i)=>i.Id=this.parseString(a.value),FirstActivity:(a,i)=>{let o=t.metadata.get("decoder");i.FirstActivity=o?.getConverter("FirstActivity")?.convert(a,t)},NextActivity:(a,i)=>{i.NextActivity||(i.NextActivity=[]);let u=t.metadata.get("decoder")?.getConverter("NextActivity")?.convert(a,t);u&&i.NextActivity.push(u)},Notes:(a,i)=>i.Notes=this.parseString(a.value)}),n}},rs=class extends z{constructor(){super(...arguments);this.name="AbstractSourceConverter";this.supportedTags=["Author","Creator"]}convert(s,t){let n={};return this.processChildren(s,n,{Name:(a,i)=>i.Name=this.parseString(a.value)}),n}},ds=class extends z{constructor(){super(...arguments);this.name="extensions-converter";this.supportedTags=["Extensions"]}convert(s,t){let n={};return this.flattenExtensionElement(s,n),n}flattenExtensionElement(s,t){if(!s.children?.length&&s.value!==void 0){t[s.tag]=this.parseExtensionValue(s.value);return}s.children?.length&&s.children.forEach(n=>{this.flattenExtensionElement(n,t)})}parseExtensionValue(s){if(s===void 0)return;let t=String(s),n=parseFloat(t);return!isNaN(n)&&isFinite(n)?n:t}};var at=require("htmlparser2"),Ts=class{static tokenizeXML(e){let s=[],t=new at.Parser({onopentag(n,a){s.push({type:"open",tag:n,attributes:a})},ontext(n){let a=n.replace(/\n/g,"").trim();a&&s.push({type:"text",tag:"text",value:a})},onclosetag(n){s.push({type:"close",tag:n})}},{xmlMode:!0});return t.write(e),t.end(),s}static compressXML(e){return e.replace(/>\s+</g,"><").replace(/\s+/g," ").trim()}static formatXML(e,s=2){let t=" ".repeat(s),n="",a=0,i=!1;for(let o=0;o<e.length;o++){let u=e[o],p=e[o+1];u==="<"?(p==="/"?(a--,i||(n+=`
11
+ `)}addRouteTrackCommonElements(e,s){this.addOptionalElement(e,"name",s.name),this.addOptionalElement(e,"cmt",s.cmt),this.addOptionalElement(e,"desc",s.desc),this.addOptionalElement(e,"src",s.src),s.link&&this.addLinks(e,s.link),this.addOptionalElement(e,"number",s.number?.toString()),this.addOptionalElement(e,"type",s.type)}processPointExtensions(e,s){let t={};return Object.entries({"gpxtpx:TrackPointExtension":{"gpxtpx:hr":"heartRate","gpxtpx:cad":"cadence","gpxtpx:speed":"speed","gpxtpx:atemp":"temperature","gpxtpx:wtemp":"wtemp","gpxtpx:temp":"temperature"},"gpxpx:PowerExtension":{"gpxpx:PowerInWatts":"power"},"gpxx:GpxExtensions":{"gpxx:Temperature":"temperature","gpxx:Depth":"depth"}}).forEach(([a,i])=>{let o={},u=!1;Object.entries(i).forEach(([p,T])=>{let _;if(e[T]!==void 0)_=e[T];else if(s)if(s[p]!==void 0)_=s[p];else{let R=p.split(":").pop();Object.entries(s).forEach(([I,h])=>{I.endsWith(`:${R}`)&&h!==void 0&&(_=h)})}_!==void 0&&(o[p]=_,u=!0)}),u&&(t[a]=o)}),t}buildTrackPointExtension(e,s){let t=this.deepClone(s["gpxtpx:TrackPointExtension"]||{}),n=Object.keys(st);return Object.keys(e).filter(a=>n.includes(a)).forEach(a=>{let i=st[a];i&&e[a]!==void 0&&(t[`gpxtpx:${i}`]=e[a])}),t}buildPowerExtension(e,s){return this.deepClone(s["gpxpx:PowerExtension"]||{})}buildGpxExtensions(e,s){let t=this.deepClone(s["gpxx:GpxExtensions"]||{}),n=Object.keys(tt);return Object.keys(e).filter(a=>n.includes(a)).forEach(a=>{let i=tt[a];i&&e[a]!==void 0&&(t[`gpxx:${i}`]=e[a])}),t}buildExtensions(e){let s=this.buildExtensionContent(e);return s?`<extensions>${s}</extensions>`:""}buildExtensionContent(e){return Object.entries(e).filter(([s])=>!s.startsWith("xmlns")).map(([s,t])=>{if(t&&typeof t=="object"){let n=this.buildExtensionContent(t);return`<${s}>${n}</${s}>`}else if(t!=null)return`<${s}>${this.escapeXML(String(t))}</${s}>`;return""}).filter(s=>s).join("")}buildLink(e){let s=[`<link href="${this.escapeXMLAttribute(e.href||"")}">`];return this.addOptionalElement(s,"text",e.text),this.addOptionalElement(s,"type",e.type),s.push("</link>"),s.join("")}addLinks(e,s){(Array.isArray(s)?s:[s]).forEach(n=>{e.push(this.buildLink(n))})}buildTimeElement(e){return typeof e=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z?$/.test(e)?`<time>${e}</time>`:`<time>${(0,nt.default)(e).utc().format("YYYY-MM-DDTHH:mm:ss[Z]")}</time>`}addOptionalElement(e,s,t,n){if(t!=null&&t!==""){let a=n?n(t):this.escapeXML(t);e.push(`<${s}>${a}</${s}>`)}}isValidCoordinate(e,s){return e!=null&&s!==void 0&&s!==null&&!isNaN(e)&&!isNaN(s)}formatCoordinate(e){return this.roundTo(e,6).toString()}roundTo(e,s){let t=Math.pow(10,s);return Math.round(e*t)/t}escapeXML(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}escapeXMLAttribute(e){return typeof e!="string"?String(e||""):e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\r/g,"&#13;").replace(/\n/g,"&#10;").replace(/\t/g,"&#9;")}deepClone(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(t=>this.deepClone(t));let s={};for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(s[t]=this.deepClone(e[t]));return s}encoder(e){return this.encode(e)}};var z=class extends se{parseHeartRate(e){let s=this.parseFloat(e);if(!(typeof s>"u"))return s>0&&s<300?s:void 0}parseTCXTime(e){if(!e)return;let s=new Date(e);return isNaN(s.getTime())?void 0:s}parseDistance(e){let s=this.parseFloat(e);if(!(typeof s>"u"))return s>0?s:void 0}parseSpeed(e){let s=this.parseFloat(e);if(!(typeof s>"u"))return s>=0?s:void 0}parseAltitude(e){return this.parseFloat(e)}parseCoordinate(e){let s=this.parseFloat(e);return s!==0?s:void 0}};var is=class extends z{constructor(){super(...arguments);this.name="PositionConverter";this.supportedTags=["Position"]}convert(s,t){let n={};return this.processChildren(s,n,{LatitudeDegrees:(a,i)=>i.LatitudeDegrees=this.parseString(a.value),LongitudeDegrees:(a,i)=>i.LongitudeDegrees=this.parseString(a.value)}),n}},ls=class extends z{constructor(){super(...arguments);this.name="TrackpointConverter";this.supportedTags=["Trackpoint"]}convert(s,t){let n={};return this.processChildren(s,n,{Time:(a,i)=>i.Time=this.parseString(a.value),Position:(a,i)=>{let o=t.metadata.get("decoder");i.Position=o?.getConverter("Position")?.convert(a,t)},AltitudeMeters:(a,i)=>i.AltitudeMeters=this.parseFloat(a.value),DistanceMeters:(a,i)=>i.DistanceMeters=this.parseFloat(a.value),HeartRateBpm:(a,i)=>{if(a.value)i.HeartRateBpm=this.parseFloat(a.value);else{let o=this.getChildByTag(a,"Value");o?.value&&(i.HeartRateBpm=this.parseFloat(o.value))}},Cadence:(a,i)=>{let o={Low:0,High:0};this.processChildren(a,o,{Low:(u,p)=>p.Low=this.parseFloat(u.value)||0,High:(u,p)=>p.High=this.parseFloat(u.value)||0}),i.Cadence=o},SensorState:(a,i)=>i.SensorState=a.value,Extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Extensions");u&&(i.Extensions=u.convert(a,t))}}),n}},os=class extends z{constructor(){super(...arguments);this.name="TrackConverter";this.supportedTags=["Track"]}convert(s,t){let n={Trackpoint:[]};return this.processChildren(s,n,{Trackpoint:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Trackpoint")?.convert(a,t);u&&i.Trackpoint&&i.Trackpoint.push(u)}}),n}},us=class extends z{constructor(){super(...arguments);this.name="ActivityLapConverter";this.supportedTags=["Lap"]}convert(s,t){let n={};return this.extractAttributes(s,n,{StartTime:"StartTime"}),this.processChildren(s,n,{TotalTimeSeconds:(a,i)=>i.TotalTimeSeconds=this.parseFloat(a.value),DistanceMeters:(a,i)=>i.DistanceMeters=this.parseFloat(a.value),MaximumSpeed:(a,i)=>i.MaximumSpeed=this.parseFloat(a.value),Calories:(a,i)=>i.Calories=this.parseFloat(a.value),AverageHeartRateBpm:(a,i)=>i.AverageHeartRateBpm=this.parseHeartRate(this.getChildByTag(a,"Value")?.value??a.value),MaximumHeartRateBpm:(a,i)=>i.MaximumHeartRateBpm=this.parseHeartRate(this.getChildByTag(a,"Value")?.value??a.value),Intensity:(a,i)=>i.Intensity=a.value,TriggerMethod:(a,i)=>i.TriggerMethod=a.value,Track:(a,i)=>{i.Track||(i.Track=[]);let u=t.metadata.get("decoder")?.getConverter("Track")?.convert(a,t);u&&i.Track.push(u)},Notes:(a,i)=>i.Notes=this.parseString(a.value),Extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Extensions");u&&(i.Extensions=u.convert(a,t))}}),n}},fs=class extends z{constructor(){super(...arguments);this.name="ActivityConverter";this.supportedTags=["Activity"]}convert(s,t){let n={Id:"",Lap:[]};return this.extractAttributes(s,n,{Sport:"Sport"}),this.processChildren(s,n,{Id:(a,i)=>i.Id=this.parseString(a.value),Lap:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Lap")?.convert(a,t);u&&i.Lap.push(u)},Notes:(a,i)=>i.Notes=this.parseString(a.value),Training:(a,i)=>i.Training=this.convertTraining(a),Creator:(a,i)=>i.Creator=this.convertCreator(a),Extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Extensions");u&&(i.Extensions=u.convert(a,t))}}),n}convertTraining(s){let t={};return s.attributes&&Object.entries(s.attributes).forEach(([n,a])=>{t[n]=a}),s.children?.forEach(n=>{t[n.tag]=this.convertExtensionContent(n)}),t}convertCreator(s){let t={};return s.children?.forEach(n=>{t[n.tag]=this.convertExtensionContent(n)}),t}},ps=class extends z{constructor(){super(...arguments);this.name="ActivityListConverter";this.supportedTags=["Activities"]}convert(s,t){let n={Activity:[],MultiActivitySession:[]};return this.processChildren(s,n,{Activity:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Activity")?.convert(a,t);u&&i.Activity&&i.Activity.push(u)},MultiActivitySession:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("MultiActivitySession")?.convert(a,t);u&&i.MultiActivitySession&&i.MultiActivitySession.push(u)}}),n}},ms=class extends z{constructor(){super(...arguments);this.name="MultiActivitySessionConverter";this.supportedTags=["MultiActivitySession"]}convert(s,t){let n={};return this.processChildren(s,n,{Id:(a,i)=>i.Id=this.parseString(a.value),FirstActivity:(a,i)=>{let o=t.metadata.get("decoder");i.FirstActivity=o?.getConverter("FirstActivity")?.convert(a,t)},NextActivity:(a,i)=>{i.NextActivity||(i.NextActivity=[]);let u=t.metadata.get("decoder")?.getConverter("NextActivity")?.convert(a,t);u&&i.NextActivity.push(u)},Notes:(a,i)=>i.Notes=this.parseString(a.value)}),n}},rs=class extends z{constructor(){super(...arguments);this.name="AbstractSourceConverter";this.supportedTags=["Author","Creator"]}convert(s,t){let n={};return this.processChildren(s,n,{Name:(a,i)=>i.Name=this.parseString(a.value)}),n}},ds=class extends z{constructor(){super(...arguments);this.name="extensions-converter";this.supportedTags=["Extensions"]}convert(s,t){let n={};return this.flattenExtensionElement(s,n),n}flattenExtensionElement(s,t){if(!s.children?.length&&s.value!==void 0){t[s.tag]=this.parseExtensionValue(s.value);return}s.children?.length&&s.children.forEach(n=>{this.flattenExtensionElement(n,t)})}parseExtensionValue(s){if(s===void 0)return;let t=String(s),n=parseFloat(t);return!isNaN(n)&&isFinite(n)?n:t}};var at=require("htmlparser2"),Ts=class{static tokenizeXML(e){let s=[],t=new at.Parser({onopentag(n,a){s.push({type:"open",tag:n,attributes:a})},ontext(n){let a=n.replace(/\n/g,"").trim();a&&s.push({type:"text",tag:"text",value:a})},onclosetag(n){s.push({type:"close",tag:n})}},{xmlMode:!0});return t.write(e),t.end(),s}static compressXML(e){return e.replace(/>\s+</g,"><").replace(/\s+/g," ").trim()}static formatXML(e,s=2){let t=" ".repeat(s),n="",a=0,i=!1;for(let o=0;o<e.length;o++){let u=e[o],p=e[o+1];u==="<"?(p==="/"?(a--,i||(n+=`
12
12
  `+t.repeat(a))):p!=="?"&&p!=="!"&&(i||(n+=`
13
13
  `+t.repeat(a)),a++),i=!0):u===">"&&(i=!1,p==="<"&&e[o+2]==="/"&&a--),n+=u}return n.trim()}static validateXML(e){try{let s=new at.Parser({},{xmlMode:!0});return s.write(e),s.end(),{isValid:!0}}catch(s){return{isValid:!1,error:s.message}}}static extractXMLDeclaration(e){let s=e.match(/<\?xml\s+([^>]+)\?>/);if(!s)return{};let t=s[1],n={},a=t.match(/version=["']([^"']+)["']/);a&&(n.version=a[1]);let i=t.match(/encoding=["']([^"']+)["']/);i&&(n.encoding=i[1]);let o=t.match(/standalone=["']([^"']+)["']/);return o&&(n.standalone=o[1]),n}static escapeXML(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}static unescapeXML(e){return e.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&amp;/g,"&")}};var _s=class{constructor(){this.stage="tokenize";this.name="tokenize-processor"}async process(e){if(!e.xmlContent)throw new Error("TCX data cannot be empty");let s=Ts.tokenizeXML(e.xmlContent);if(s.length===0)throw new Error("Not a valid TCX file");return e.tokens=s,e.stats.processedTokens=s.length,e}},As=class{constructor(){this.stage="ast-generate";this.name="ast-generate-processor"}async process(e){let s=Date.now();if(!e.tokens)throw new Error("Tokens cannot be empty");let t=[],n,a=null;for(let i of e.tokens)if(i.type==="open"){let o={tag:i.tag,attributes:i.attributes||{},children:[]};n?a&&a.children?.push(o):n=o,t.push(o),a=o}else i.type==="text"&&a?a.value=i.value:i.type==="close"&&(t.pop(),a=t[t.length-1]||null);return e.ast=n,e.performance.astTime=Date.now()-s,e}},cs=class{constructor(e){this.getConverter=e;this.stage="convert";this.name="convert-processor"}async process(e){if(!e.ast)throw new Error("AST is empty, cannot convert");let s=this.findTCXRoot(e.ast);if(!s)throw new Error("Not a valid TCX file: TrainingCenterDatabase element not found");let t=this.convertAST(s,e);return e.result=t,e.stats.convertedElements=this.countElements(e.ast),e}findTCXRoot(e){if(e.tag==="TrainingCenterDatabase")return e;if(e.children)for(let s of e.children){let t=this.findTCXRoot(s);if(t)return t}}convertAST(e,s){let t=this.getConverter(e.tag);return t?t.convert(e,s):this.genericConvert(e,s)}genericConvert(e,s){let t={};if(e.attributes&&Object.entries(e.attributes).forEach(([n,a])=>{t[n]=a}),e.value!==void 0)if(e.children&&e.children.length>0)t._value=e.value;else return e.value;return e.children&&e.children.forEach(n=>{let a=this.convertAST(n,s);t[n.tag]?(Array.isArray(t[n.tag])||(t[n.tag]=[t[n.tag]]),t[n.tag].push(a)):t[n.tag]=a}),t}countElements(e){let s=1;if(e.children)for(let t of e.children)s+=this.countElements(t);return s}},bs=class{constructor(){this.stage="complete";this.name="complete-processor"}async process(e){if(!e.result)throw new Error("No conversion result found");let s=Date.now(),t=s-e.performance.startTime;return e.performance.endTime=s,e.performance.processingTime=t,e.metadata.set("performance",{processingTime:t,processedTokens:e.stats.processedTokens,convertedElements:e.stats.convertedElements}),e}};var Is=class{constructor(){this.converterPlugins=new Map;this.registeredPlugins=new Set;this.middlewarePlugins=[];this.processors=[];this.initialized=!1;this.defaultConvertersRegistered=!1;this.initializePipeline()}initializePipeline(){this.processors=[new _s,new As,new cs(e=>this.getConverter(e)),new bs]}async registerDefaultConverters(){if(this.defaultConvertersRegistered)return;let e=[new is,new ls,new os,new us,new fs,new ps,new ms,new rs,new ds];for(let s of e)s.supportedTags?.forEach(t=>{this.addConverterForTag(t,s)}),this.registeredPlugins.add(s.name);this.defaultConvertersRegistered=!0}addConverterForTag(e,s){this.converterPlugins.has(e)||this.converterPlugins.set(e,[]);let t=this.converterPlugins.get(e);t.push(s),t.sort((n,a)=>(n.priority||100)-(a.priority||100))}async registerConverter(e){if(this.registeredPlugins.has(e.name))throw new Error(`Converter plugin ${e.name} already exists`);e.supportedTags?.forEach(s=>{this.addConverterForTag(s,e)}),this.registeredPlugins.add(e.name)}async registerMiddleware(e){let s=this.middlewarePlugins.findIndex(t=>t.name===e.name);s!==-1?this.middlewarePlugins[s]=e:this.middlewarePlugins.push(e)}getConverter(e){let s=this.converterPlugins.get(e);return s&&s.length>0?s[0]:void 0}getAllConverters(e){return this.converterPlugins.get(e)||[]}unregisterConverter(e){let s;for(let[t,n]of this.converterPlugins){let a=n.findIndex(i=>i.name===e);a!==-1&&(s=n[a],n.splice(a,1),n.length===0&&this.converterPlugins.delete(t))}s&&this.registeredPlugins.delete(e)}unregisterMiddleware(e){let s=this.middlewarePlugins.findIndex(t=>t.name===e);s!==-1&&this.middlewarePlugins.splice(s,1)}async initialize(){if(this.initialized)return;await this.registerDefaultConverters();let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.initialize?.(e);this.initialized=!0}async destroy(){if(!this.initialized)return;let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.destroy?.(e);this.initialized=!1}createContext(){return{metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},performance:{startTime:Date.now()}}}async executeMiddlewareHook(e,s,t){let n=s;for(let a of this.middlewarePlugins){let i=a[e];if(i)try{n=await i.call(a,n,t)||n}catch(o){t.errors.push(o),await a.onError?.(o,t)}}return n}async parseByBuffer(e){await this.initialize();let s=this.createContext();s.rawData=e,s.xmlContent=e.toString("utf-8"),s.metadata.set("decoder",this);for(let t of this.processors)try{switch(s=await t.process(s),t.stage){case"tokenize":s.tokens&&(s.tokens=await this.executeMiddlewareHook("onTokenize",s.tokens,s));break;case"ast-generate":s.ast&&(s.ast=await this.executeMiddlewareHook("onAstGenerate",s.ast,s));break;case"convert":s.result&&(s.result=await this.executeMiddlewareHook("onConvert",s.result,s));break;case"complete":s.result&&(s.result=await this.executeMiddlewareHook("onComplete",s.result,s));break}}catch(n){s.errors.push(n);for(let a of this.middlewarePlugins)await a.onError?.(n,s);throw new Error(`TCX pipeline stage "${t.stage}" failed: ${n.message}`)}return s.result}convertExtensions(e){let s={},{attributes:t,tag:n,value:a}=e;if(t&&Object.entries(t).forEach(([i,o])=>{s[i]=o}),e?.children?.length)e.children?.forEach(i=>{s[i.tag]=this.convertExtensions(i)});else if(a!==void 0)return a;return s}async parserByBuffer(e){return this.parseByBuffer(e)}async parseByString(e){let s=Buffer.from(e,"utf-8");return this.parseByBuffer(s)}};var it=J(require("dayjs"),1),_n=J(require("dayjs/plugin/utc.js"),1);it.default.extend(_n.default);var ys=class{constructor(e={}){this.compact=e.compact??!0}async encode(e){let s=this.buildTCXXML(e);return Buffer.from(s,"utf-8")}encodeToString(e){return this.buildTCXXML(e)}buildTCXXML(e){let s=this.buildXMLHeader(e),t=this.buildTCXContent(e),a=`${s}${t}
14
14
  </TrainingCenterDatabase>`;return this.compact?this.compressXML(a):a}compressXML(e){return e.replace(/>\s+</g,"><").replace(/^\s+|\s+$/gm,"").replace(/\s+/g," ").trim()}buildXMLHeader(e){let s=e.version||"1.0",t=e.creator||"trackswap",n=e.xmlns||"http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2",a=e["xmlns:xsi"]||"http://www.w3.org/2001/XMLSchema-instance",i=e["xsi:schemaLocation"]||"http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www8.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd";return['<?xml version="1.0" encoding="UTF-8"?>',`<TrainingCenterDatabase version="${this.escapeXMLAttribute(s)}"`,` creator="${this.escapeXMLAttribute(t)}"`,` xmlns="${this.escapeXMLAttribute(n)}"`,` xmlns:xsi="${this.escapeXMLAttribute(a)}"`,` xsi:schemaLocation="${this.escapeXMLAttribute(i)}">`].join(`
@@ -26,4 +26,4 @@
26
26
  `)}buildWorkouts(e){return"<Workouts></Workouts>"}buildCourses(e){let s=["<Courses>"];return e.Course?.length&&e.Course.forEach(t=>{s.push(this.buildCourseElement(t))}),s.push("</Courses>"),s.join(`
27
27
  `)}buildCourseElement(e){let s=["<Course>"];return this.addOptionalElement(s,"Name",e.Name),this.addOptionalElement(s,"Notes",e.Notes),e.Lap?.length&&e.Lap.forEach(t=>{s.push(this.buildCourseLap(t))}),e.Track?.length&&e.Track.forEach(t=>{s.push(this.buildTrack(t))}),e.CoursePoint?.length&&e.CoursePoint.forEach(t=>{s.push(this.buildCoursePoint(t))}),e.Extensions&&s.push(this.buildExtensions(e.Extensions)),s.push("</Course>"),s.join(`
28
28
  `)}buildCourseLap(e){let s=["<Lap>"];this.addOptionalNumericElement(s,"TotalTimeSeconds",e.TotalTimeSeconds),this.addOptionalNumericElement(s,"DistanceMeters",e.DistanceMeters),s.push(this.wrapGeoTag("BeginPosition",e.BeginPosition)),s.push(this.wrapGeoTag("EndPosition",e.EndPosition)),this.addOptionalNumericElement(s,"BeginAltitudeMeters",e.BeginAltitudeMeters),this.addOptionalNumericElement(s,"EndAltitudeMeters",e.EndAltitudeMeters);let t=e;return t.Track?.length&&t.Track.forEach(n=>{s.push(this.buildTrack(n))}),e.Extensions&&s.push(this.buildExtensions(e.Extensions)),s.push("</Lap>"),s.join(`
29
- `)}buildCoursePoint(e){let s=["<CoursePoint>"];return this.addOptionalElement(s,"Name",e.Name),e.Time!==void 0&&e.Time!==null&&s.push(`<Time>${e.Time}</Time>`),e.Position&&s.push(this.buildPosition(e.Position)),this.addOptionalNumericElement(s,"AltitudeMeters",e.AltitudeMeters),this.addOptionalElement(s,"PointType",e.PointType),this.addOptionalElement(s,"Notes",e.Notes),e.Extensions&&s.push(this.buildExtensions(e.Extensions)),s.push("</CoursePoint>"),s.join("")}buildAuthor(e){let s=["<Author>"];return this.addOptionalElement(s,"Name",e.Name),s.push("</Author>"),s.join("")}buildExtensions(e){let s=this.buildExtensionContent(e);return s?`<Extensions>${s}</Extensions>`:""}buildExtensionContent(e){return Object.entries(e).filter(([s])=>!s.startsWith("xmlns")).map(([s,t])=>{if(t&&typeof t=="object"){let n=this.buildExtensionContent(t);return`<${s}>${n}</${s}>`}else if(t!=null)return`<${s}>${this.escapeXML(String(t))}</${s}>`;return""}).filter(s=>s).join("")}formatTime(e){let s=(0,it.default)(e);if(!s.isValid())throw new Error(`Cannot encode invalid TCX timestamp: ${String(e)}`);return s.toISOString()}addOptionalElement(e,s,t,n){if(t!=null&&t!==""){let a=n?n(t):this.escapeXML(t);e.push(`<${s}>${a}</${s}>`)}}addOptionalNumericElement(e,s,t){t!=null&&!isNaN(t)&&e.push(`<${s}>${t}</${s}>`)}isValidCoordinate(e,s){return e!=null&&s!==void 0&&s!==null&&!isNaN(e)&&!isNaN(s)}formatCoordinate(e){return this.roundTo(e,6).toString()}roundTo(e,s){let t=Math.pow(10,s);return Math.round(e*t)/t}escapeXML(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}escapeXMLAttribute(e){return typeof e!="string"?String(e||""):e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\r/g,"&#13;").replace(/\n/g,"&#10;").replace(/\t/g,"&#9;")}deepClone(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(t=>this.deepClone(t));let s={};for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(s[t]=this.deepClone(e[t]));return s}encoder(e){return this.encode(e)}};var An=J(require("dayjs"),1),fe=class extends se{convertPoints(e){return e.map(s=>this.convertPoint(s)).filter(s=>s!==void 0)}convertTime(e){if(!e)return;if(typeof e=="number")return e;let s=(0,An.default)(e);return s.isValid()?s.valueOf():void 0}},pe=class{constructor(){this.version="1.0.0";this.priority=100}supports(e){return this.supportedTags.includes(e)}async initialize(e){e.metadata.set(`plugin:${this.name}:initialized`,!0)}async destroy(e){e.metadata.delete(`plugin:${this.name}:initialized`)}async validate(e){return!0}convertTimeToDate(e){return e?new Date(e):new Date}convertTimeToString(e){return this.convertTimeToDate(e).toISOString()}ensureValidCoordinates(e,s){return e>=-90&&e<=90&&s>=-180&&s<=180}round(e,s=6){let t=Math.pow(10,s);return Math.round(e*t)/t}};var cn={heartrate:"heartRate","gpxtpx:hr":"heartRate","ns3:hr":"heartRate","gpxdata:hr":"heartRate","gpxdata:cadence":"cadence","gpxtpx:cad":"cadence","ns3:cad":"cadence",cadence:"cadence","gpxtpx:speed":"speed","ns3:speed":"speed",speed:"speed",power:"power","gpxdata:power":"power","gpxpx:PowerInWatts":"power",PowerInWatts:"power","gpxtpx:temp":"temperature","gpxtpx:wtemp":"wtemp","gpxtpx:atemp":"atemp","gpxx:Temperature":"temperature","gpxx:Depth":"depth"},lt=l=>l*(180/Math.pow(2,31)),ot=2147483647;function Y(l,e=6){if(l==null)return;let s=typeof l=="number"?l:Number(l);if(!Number.isFinite(s)||s===ot)return;let t=lt(s),n=Math.pow(10,e);return Math.round(t*n)/n}var _e=J(require("dayjs"),1);De();var Te=J(require("dayjs"),1),bn=require("geolib"),te=class{calculateRecordsAggMetrics(e){if(!e||e.length===0)return;let s={records:this.preprocessRecords(e)};for(let t=0;t<s.records.length;t++){let n=s.records[t];if(!(n.positionLat==null||n.positionLong==null||!Number.isFinite(n.positionLat)||!Number.isFinite(n.positionLong))){if(s.startPositionLat==null&&(s.startPositionLat=n.positionLat),s.startPositionLong==null&&(s.startPositionLong=n.positionLong),s.endPositionLat=n.positionLat,s.endPositionLong=n.positionLong,s.timestamp=n.timestamp,s?.startTime||(s.startTime=n.timestamp),s.endTime=n.timestamp,s.totalDistance=n.distance,s.totalElapsedTime=(0,Te.default)(n.timestamp).diff((0,Te.default)(s.startTime),"second"),n?.speed&&(s.avgSpeed=s.avgSpeed?(s.avgSpeed+n.speed)/2:n.speed,s.maxSpeed=Math.max(s.maxSpeed||0,n.speed)),n?.heartRate&&(s.maxHeartRate=Math.max(s.maxHeartRate||0,n.heartRate),s.minHeartRate=Math.min(s.minHeartRate||n.heartRate,n.heartRate),s.avgHeartRate?s.avgHeartRate=(s.avgHeartRate+n.heartRate)/2:s.avgHeartRate=n.heartRate),n?.altitude&&(s.maxAltitude=Math.max(s.maxAltitude||0,n.altitude),s.minAltitude=Math.min(s.minAltitude||n.altitude,n.altitude),s.avgAltitude=s.avgAltitude?(s.avgAltitude+n.altitude)/2:n.altitude,t>0&&e[t-1].altitude)){let a=this.calculateElevationChanges(e[t-1],n);s.totalAscent=(s.totalAscent||0)+a.ascent,s.totalDescent=(s.totalDescent||0)+a.descent}if(n?.cadence&&(s.maxCadence=Math.max(s.maxCadence||0,n.cadence),s.avgCadence?s.avgCadence=(s.avgCadence+n.cadence)/2:s.avgCadence=n.cadence),n?.power){s.maxPower=Math.max(s.maxPower||0,n.power),s.avgPower?s.avgPower=(s.avgPower+n.power)/2:s.avgPower=n.power;let a=this.calculateAccumulatedPower(t>0?e[t-1]:n,n,s.totalWork||0);s.totalWork=a.newAccumulatedWork,s.normalizedPower=void 0}n?.temperature&&(s.avgTemperature?s.avgTemperature=(s.avgTemperature+n.temperature)/2:s.avgTemperature=n.temperature,s.maxTemperature=Math.max(s.maxTemperature||0,n.temperature),s.minTemperature=Math.min(s.minTemperature||n.temperature,n.temperature))}}return s}calculateLapAggMetrics(e){if(!e||e.length===0)return;let s={laps:e,timestamp:e[0]?.timestamp||new Date};for(let t=0;t<e.length;t++){let n=e[t];n.startPositionLat&&n.startPositionLong&&!s?.startPositionLat&&!s?.startPositionLong&&(s.startPositionLat=n.startPositionLat,s.startPositionLong=n.startPositionLong),n.endPositionLat&&n.endPositionLong&&(s.endPositionLat=n.endPositionLat,s.endPositionLong=n.endPositionLong),n.startTime&&!s?.startTime&&(s.startTime=n.startTime),n.endTime&&(s.endTime=n.endTime),s.timestamp=n.timestamp||n.endTime||s.timestamp,n.totalDistance&&(s.totalDistance=(s.totalDistance||0)+n.totalDistance),n.totalElapsedTime&&(s.totalElapsedTime=(s.totalElapsedTime||0)+n.totalElapsedTime),n.totalMovingTime&&(s.totalMovingTime=(s.totalMovingTime||0)+n.totalMovingTime),n.totalTimerTime&&(s.totalTimerTime=(s.totalTimerTime||0)+n.totalTimerTime),n.maxSpeed&&(s.maxSpeed=Math.max(s.maxSpeed||0,n.maxSpeed)),n.avgSpeed&&(s.avgSpeed?s.avgSpeed=(s.avgSpeed+n.avgSpeed)/2:s.avgSpeed=n.avgSpeed),n.maxHeartRate&&(s.maxHeartRate=Math.max(s.maxHeartRate||0,n.maxHeartRate)),n.minHeartRate&&(s.minHeartRate=s.minHeartRate?Math.min(s.minHeartRate,n.minHeartRate):n.minHeartRate),n.avgHeartRate&&(s.avgHeartRate?s.avgHeartRate=(s.avgHeartRate+n.avgHeartRate)/2:s.avgHeartRate=n.avgHeartRate),n.maxAltitude&&(s.maxAltitude=Math.max(s.maxAltitude||0,n.maxAltitude)),n.minAltitude&&(s.minAltitude=s.minAltitude?Math.min(s.minAltitude,n.minAltitude):n.minAltitude),n.avgAltitude&&(s.avgAltitude?s.avgAltitude=(s.avgAltitude+n.avgAltitude)/2:s.avgAltitude=n.avgAltitude),n.totalAscent&&(s.totalAscent=(s.totalAscent||0)+n.totalAscent),n.totalDescent&&(s.totalDescent=(s.totalDescent||0)+n.totalDescent),n.maxCadence&&(s.maxCadence=Math.max(s.maxCadence||0,n.maxCadence)),n.avgCadence&&(s.avgCadence?s.avgCadence=(s.avgCadence+n.avgCadence)/2:s.avgCadence=n.avgCadence),n.maxPower&&(s.maxPower=Math.max(s.maxPower||0,n.maxPower)),n.avgPower&&(s.avgPower?s.avgPower=(s.avgPower+n.avgPower)/2:s.avgPower=n.avgPower),n.totalWork&&(s.totalWork=(s.totalWork||0)+n.totalWork),n.maxTemperature&&(s.maxTemperature=Math.max(s.maxTemperature||0,n.maxTemperature)),n.minTemperature&&(s.minTemperature=s.minTemperature?Math.min(s.minTemperature,n.minTemperature):n.minTemperature),n.avgTemperature&&(s.avgTemperature?s.avgTemperature=(s.avgTemperature+n.avgTemperature)/2:s.avgTemperature=n.avgTemperature)}return s}preprocessRecords(e){if(!e||e.length===0)return e;let s=e.filter(i=>i.timestamp).sort((i,o)=>i.timestamp.valueOf()-o.timestamp.valueOf()),t=0,n=0,a=[];for(let i=0;i<s.length;i++){let o=s[i],u={...o};if(i>0){let p=this.calculatePointDistanceByPosition(s[i-1],u)||0;if(u.distance||(n+=p,u.distance=n),o.speed||(u.speed=this.calculateInstantSpeed(s[i-1],u,p)),o.power){let d=this.calculateAccumulatedPower(s[i-1],u,t);u.accumulatedPower=d.accumulatedPower,t=d.newAccumulatedWork}}a.push(u)}return a}calculatePointDistanceByPosition(e,s){if(!(e.positionLat==null||e.positionLong==null||s.positionLat==null||s.positionLong==null||!Number.isFinite(e.positionLat)||!Number.isFinite(e.positionLong)||!Number.isFinite(s.positionLat)||!Number.isFinite(s.positionLong)))try{return(0,bn.getPreciseDistance)({latitude:e.positionLat,longitude:e.positionLong},{latitude:s.positionLat,longitude:s.positionLong})}catch{return}}calculateInstantSpeed(e,s,t){if(!e.timestamp||!s.timestamp||!t)return;let n=((0,Te.default)(s.timestamp).valueOf()-(0,Te.default)(e.timestamp).valueOf())/1e3;if(!(n<=0))return t/n}calculateAccumulatedPower(e,s,t){if(e.power===void 0||s.power===void 0||!e.timestamp||!s.timestamp)return{accumulatedPower:t,newAccumulatedWork:t};let n=s.timestamp?.valueOf()-e.timestamp?.valueOf();if(n<=0)return{accumulatedPower:t,newAccumulatedWork:t};let i=(e.power+s.power)/2*n,o=t+i;return{accumulatedPower:o,newAccumulatedWork:o}}calculateElevationChanges(e,s){let t=0,n=0;return s.altitude!==void 0&&e.altitude!==void 0&&(s.altitude>e.altitude?t=s.altitude-e.altitude:s.altitude<=e.altitude&&(n=e.altitude-s.altitude)),{ascent:t,descent:n}}};var hs=class extends fe{constructor(){super(...arguments);this.name="gpx-to-activity-converter";this.supportedTags=["gpx"];this.convertGPXExtensions=s=>{let t={};return Object.entries(s).forEach(([n,a])=>{if(typeof a<"u"&&a!=="undefined"){let i=cn[n]||n;t[i]=this.autoNumber(a)}}),t}}convert(s,t){if(t.sourceFormat!=="gpx")return;let n=t.sourceData;return this.convertGPX(n)}convertGPX(s){let t={metadata:{originType:"GPX",fileType:"gpx"},activities:[]};return s.wpt&&(t.points=this.convertWpts2Points(s.wpt)),s.trk&&(t.activities=s.trk.map((n,a)=>this.convertTrk2Activity(n,a))),s.rte&&(t.routes=s.rte.map((n,a)=>this.convertRoute2Lap(n,a))),t}convertPoint(s,t,n){let{extensions:a}=s,i=a?this.convertGPXExtensions(a):{};return{lapIndex:n||0,index:t||0,positionLat:s?.lat,positionLong:s?.lon,altitude:s?.ele,heartRate:s?.heartRate,speed:s?.speed,power:s?.power,cadence:s?.cadence,course:s?.course,magvar:s?.magvar,geoidheight:s?.geoidheight,pointName:s?.name,comment:s?.cmt,description:s?.desc,source:s?.src,links:s?.link,symbol:s?.sym,pointType:s?.type,fix:s?.fix,sat:s?.sat,hdop:s?.hdop,vdop:s?.vdop,pdop:s?.pdop,ageofdgpsdata:s?.ageofdgpsdata,dgpsid:s?.dgpsid,gpxExtensions:s?.extensions,timestamp:s.time?(0,_e.default)(s.time).toDate():void 0,...i}}convertTrk2Activity(s,t){let n=s.trkseg?.map((i,o)=>this.convertTrackSeg2Lap(i,o))||[],a=new te().calculateLapAggMetrics(n);return{index:t,messageIndex:t,activityName:s.name,comment:s.cmt,description:s.desc,source:s.src,links:s.link,activityNumber:s.number,sport:s.type,gpxExtensions:s.extensions,laps:n,...a}}convertTrackSeg2Lap(s,t){return{...this.convertPoints2Lap(s.trkpt??[],t),gpxExtensions:s.extensions}}convertRoute2Lap(s,t){return{...this.convertPoints2Lap(s.rtept??[],t,s.name),comment:s.cmt,description:s.desc,source:s.src,links:s.link,routeNumber:s.number,routeType:s.type,gpxExtensions:s.extensions}}convertPoints2Lap(s,t,n){let a=s.map((d,_)=>this.convertPoint(d,_,t)),o=new te().calculateRecordsAggMetrics(a),u=new Map((o?.records??[]).map(d=>[d.index,d])),p=a.map(d=>u.get(d.index)??d);return{index:t,messageIndex:t,routeName:n,...o,records:p,lengths:[]}}convertWpts2Points(s){let t=[];for(let n=0;n<s.length;n++){let a=this.convertPoint(s[n],n);a&&t.push(a)}return t}autoNumber(s){return typeof s=="string"&&s.trim()!==""&&!isNaN(s)?Number(s):s}},Rs=class extends fe{constructor(){super(...arguments);this.name="fit-to-activity-converter";this.supportedTags=["fit"]}convert(s,t){if(t.sourceFormat!=="fit")return;let n=t.sourceData;return this.convertFIT(n)}convertFIT(s){let t={metadata:{originType:"FIT",fileType:"fit"},activities:[]};return s.sessionMesgs?.length?t.activities=s.sessionMesgs.map((n,a)=>({index:a,...n,startPositionLat:Y(n?.startPositionLat),startPositionLong:Y(n?.startPositionLong),endPositionLat:Y(n?.endPositionLat),endPositionLong:Y(n?.endPositionLong),laps:this.convertFITLap2Trackseg(n?.lapMesgs),strengthSets:this.convertFITStrengthSets(n?.setMesgs)})):s.courseMesgs?.length&&(t.routes=s.courseMesgs.map((n,a)=>({index:a,...n,records:this.convertLap2Points(n?.lapMesgs)}))),t}convertFITStrengthSets(s){return(s??[]).map((t,n)=>{let a=Array.isArray(t.category)?t.category:t.category==null?[]:[t.category],i=Array.isArray(t.categorySubtype)?t.categorySubtype:t.categorySubtype==null?[]:[t.categorySubtype],o=a.map((u,p)=>{let d=i[p],_=typeof d=="number"&&Number.isFinite(d)?d:void 0,b=`${String(u)}ExerciseName`,y=G.types?.[b];return{category:u,..._===void 0?{}:{categorySubtype:_},..._===void 0||!y?.[_]?{}:{name:y[_]}}});return{...t,index:n,exercises:o}})}convertPoint(s,t,n){let{positionLong:a,positionLat:i,altitude:o,enhancedAltitude:u,enhancedSpeed:p,speed:d,..._}=s,R=i??s.position_lat,b=a??s.position_long;return{lapIndex:n||0,index:t||0,positionLat:Y(R),positionLong:Y(b),altitude:o,enhancedAltitude:u,speed:d,enhancedSpeed:p,..._}}convertFITLap2Trackseg(s){let t=[];if(!s?.length)return[];for(let n=0;n<s.length;n++){let a=s[n],i=a?.recordMesgs?.map((u,p)=>this.convertPoint(u,p,n)).filter(u=>u!==void 0)||[],o=a?.lengthMesgs?.map((u,p)=>({...u,index:p}))||[];t.push({index:n,...a,startPositionLat:Y(a?.startPositionLat),startPositionLong:Y(a?.startPositionLong),endPositionLat:Y(a?.endPositionLat),endPositionLong:Y(a?.endPositionLong),records:i,lengths:o})}return t}convertLap2Points(s){let t=[];if(!s?.length)return[];for(let n=0;n<s.length;n++){let i=s[n].recordMesgs?.map((o,u)=>this.convertPoint(o,u,n)).filter(o=>o!==void 0)||[];i.length&&(t=[...t,...i])}return t}},gs=class extends fe{constructor(){super(...arguments);this.name="tcx-to-activity-converter";this.supportedTags=["tcx"]}convert(s,t){if(t.sourceFormat!=="tcx")return;let n=t.sourceData;return this.convertTCX(n)}convertTCX(s){let t={metadata:{originType:"TCX",fileType:"tcx"},activities:[]};s.Activities?.Activity?.length&&(t.activities=s.Activities.Activity.map((i,o)=>this.convertTCXActivityToActivity(i,o)));let n=s.Courses?.Course,a=n==null?[]:Array.isArray(n)?n:[n];return a.length&&(t.routes=a.map((i,o)=>this.convertTCXCourseToRoute(i,o))),t}convertTCXCourseToRoute(s,t){let n=[],a=0,i=y=>y==null?[]:Array.isArray(y)?y:[y],o=y=>{for(let P of y??[])for(let v of P.Trackpoint??[])v==null||v.Time===void 0||n.push(this.convertPoint(v,a++,t))};o(i(s.Track));let u=s.Lap==null?[]:Array.isArray(s.Lap)?s.Lap:[s.Lap];for(let y of u)o(i(y.Track));let p=n.length,d=n[0]?.timestamp!=null?(0,_e.default)(n[0].timestamp):(0,_e.default)("2000-01-01T00:00:00Z"),_=s.CoursePoint==null?[]:Array.isArray(s.CoursePoint)?s.CoursePoint:[s.CoursePoint];for(let y of _){let P=this.convertTCXCoursePointToRecord(y,p++,t,d);P&&n.push(P)}let R=new te,b=n.length>0?R.calculateRecordsAggMetrics(n):{records:n};return{index:t,messageIndex:t,routeName:s.Name,...b,records:b?.records??n,lengths:[]}}convertTCXCoursePointToRecord(s,t,n,a){let i=s.Position?.LatitudeDegrees?Number(s.Position.LatitudeDegrees):void 0,o=s.Position?.LongitudeDegrees?Number(s.Position.LongitudeDegrees):void 0;if(i==null&&o==null&&s.AltitudeMeters==null)return;let u=typeof s.Time=="number"&&Number.isFinite(s.Time)?a.add(s.Time,"second").toDate():a.add(t,"second").toDate();return{lapIndex:n,index:t,positionLat:i,positionLong:o,altitude:s.AltitudeMeters,timestamp:u}}convertTCXActivityToActivity(s,t){let n=s.Lap?.map((i,o)=>this.convertTCXLap2Lap(i,o))||[],a=new te().calculateLapAggMetrics(n);return{index:t,messageIndex:t,sport:s.Sport?.toLowerCase(),laps:n,...a}}convertTCXLap2Lap(s,t){let a=(s?.Track?.flatMap(u=>u.Trackpoint)||[])?.filter(u=>u!==void 0&&u.Time!==void 0).map((u,p)=>this.convertPoint(u,p))||[],o=new te().calculateRecordsAggMetrics(a);return{index:t,messageIndex:t,...o,records:o?.records||[],lengths:[]}}convertPoint(s,t,n){let{Position:a,Time:i,DistanceMeters:o,AltitudeMeters:u}=s;return{lapIndex:n||0,index:t||0,positionLat:a?.LatitudeDegrees?Number(a.LatitudeDegrees):void 0,positionLong:a?.LongitudeDegrees?Number(a.LongitudeDegrees):void 0,timestamp:(0,_e.default)(i).toDate(),distance:o,altitude:u}}};var In=J(require("dayjs"),1);var Ls=class extends pe{constructor(){super(...arguments);this.name="activity-to-gpx-encoder";this.supportedTags=["gpx"]}encode(s,t){if(t.targetFormat!=="gpx"||!s?.activities?.length&&!s?.routes?.length&&!s?.points?.length)return;let n=s.activities?.[0]?.timestamp??s.routes?.[0]?.records?.[0]?.timestamp??s.points?.[0]?.timestamp??new Date,a=this.countRecordsMissingGpxCoordinates(s),i={version:"1.1",creator:"TrackSwap",metadata:{time:n,...a>0?{desc:`TrackSwap: omitted ${a} trackpoint(s) without valid latitude/longitude.`}:{}}};return s.points?.length&&(i.wpt=this.convertRecords2Wpts(s.points)),s.routes?.length&&(i.rte=s.routes.map(o=>this.convertRoute2GPXRoute(o))),s.activities?.length&&(i.trk=s.activities.map(o=>this.convertActivity2GPXTrack(o))),i}hasValidGpxCoordinates(s){let t=s.positionLat,n=s.positionLong;return typeof t=="number"&&typeof n=="number"&&Number.isFinite(t)&&Number.isFinite(n)&&t>=-90&&t<=90&&n>=-180&&n<=180}countRecordsMissingGpxCoordinates(s){let t=0,n=a=>{for(let i of a??[])this.hasValidGpxCoordinates(i)||t++};n(s.points);for(let a of s.activities??[])for(let i of a.laps??[])n(i.records);for(let a of s.routes??[])n(a.records);return t}convertRecords2Wpts(s){return s?.filter(t=>this.hasValidGpxCoordinates(t)).map(t=>({lat:t?.positionLat,lon:t?.positionLong,ele:t?.altitude,time:t?.timestamp,speed:t?.speed,course:t?.course,magvar:t?.magvar,geoidheight:t?.geoidheight,name:t?.pointName,cmt:t?.comment,desc:t?.description,src:t?.source,link:t?.links,sym:t?.symbol,type:t?.pointType,fix:t?.fix,sat:t?.sat,hdop:t?.hdop,vdop:t?.vdop,pdop:t?.pdop,ageofdgpsdata:t?.ageofdgpsdata,dgpsid:t?.dgpsid,extensions:this.extractGPXExtensions(t)}))??[]}convertRoute2GPXRoute(s){return{name:s.routeName,cmt:s.comment,desc:s.description,src:s.source,link:s.links,number:s.routeNumber,type:s.routeType,extensions:s.gpxExtensions,rtept:s.records?this.convertRecords2Wpts(s.records):[]}}convertActivity2GPXTrack(s){return{name:s.activityName,cmt:s.comment,desc:s.description,src:s.source,link:s.links,number:s.activityNumber,type:s.sport,extensions:s.gpxExtensions,trkseg:s.laps?.map(t=>({trkpt:t.records?this.convertRecords2Wpts(t.records):[],extensions:t.gpxExtensions}))||[]}}extractGPXExtensions(s){let t={...s.gpxExtensions??{}},n={...t["gpxtpx:TrackPointExtension"]??{}};return typeof s?.heartRate<"u"&&(n["gpxtpx:hr"]=s.heartRate),typeof s?.cadence<"u"&&(n["gpxtpx:cad"]=s.cadence),typeof s?.speed<"u"&&(n["gpxtpx:speed"]=s.speed),typeof s?.temperature<"u"&&(n["gpxtpx:atemp"]=s.temperature),Object.keys(n).length>0&&(t["gpxtpx:TrackPointExtension"]=n),typeof s?.power<"u"&&(t["gpxpx:PowerExtension"]={"gpxpx:PowerInWatts":s.power}),Object.keys(t).length>0?t:void 0}},Cs=class extends pe{constructor(){super(...arguments);this.name="activity-to-fit-encoder";this.supportedTags=["fit"]}encode(s,t){if(t.targetFormat==="fit"){if(s?.activities?.length){let n={};return n.sessionMesgs=s.activities.map(a=>this.convertActivity2FITSession(a)),n}if(s?.routes?.length){let n={};return n.sessionMesgs=[this.convertRoutesToSyntheticSession(s.routes)],n}}}convertRoutesToSyntheticSession(s){let t=s.map(p=>this.convertLap2FITLap(p)),a=s.flatMap(p=>p.records??[]).filter(p=>p.timestamp!=null).sort((p,d)=>new Date(p.timestamp).getTime()-new Date(d.timestamp).getTime()),i=a[0]?.timestamp??new Date,o=a[a.length-1]?.timestamp??i,u=a.find(p=>p.positionLat!=null&&p.positionLong!=null&&Number.isFinite(p.positionLat)&&Number.isFinite(p.positionLong));return{messageIndex:0,timestamp:o,event:"session",eventType:"stop",startTime:i,startPositionLat:u?.positionLat,startPositionLong:u?.positionLong,sport:"generic",subSport:"generic",lapMesgs:t}}convertActivity2FITSession(s){return{...s,event:s?.event||"session",sport:s?.sport||"generic",lapMesgs:s.laps?.map(n=>this.convertLap2FITLap(n))||[]}}convertLap2FITLap(s){return{startTime:s.startTime,...s,recordMesgs:s.records?.map(n=>this.convertPoint2FITRecord(n))||[]}}convertPoint2FITRecord(s){return s}},Es=class extends pe{constructor(){super(...arguments);this.name="sport-to-tcx-encoder";this.supportedTags=["tcx"]}encode(s,t){if(t.targetFormat!=="tcx")return;let n=!!s?.activities?.length,a=!!s?.routes?.length;if(!n&&!a)return;let i={version:"1.0",Author:{Name:"TrackSwap"}};return n&&(i.Activities={Activity:s.activities.map(o=>this.convertActivity2TCXActivity(o))}),a&&(i.Courses={Course:s.routes.map((o,u)=>this.convertRouteToTCXCourse(o,u))}),i}convertActivity2TCXActivity(s){if(!s.laps?.length)throw new Error("Cannot encode a TCX activity without laps");let t="Other",n=s.sport?.toLowerCase();return n==="running"&&(t="Running"),(n==="biking"||n==="cycling")&&(t="Biking"),{Id:this.validTimestamp(s.startTime??s.laps[0]?.startTime??s.laps[0]?.records?.[0]?.timestamp),Sport:t,Lap:s.laps.map(i=>this.convertLap2TCXLap(i))}}convertLap2TCXLap(s){let n={StartTime:this.validTimestamp(s.startTime??s.records?.[0]?.timestamp),TotalTimeSeconds:s.totalElapsedTime,DistanceMeters:s.totalDistance,MaximumSpeed:s.maxSpeed,Calories:s.totalCalories,AverageHeartRateBpm:s.avgHeartRate,MaximumHeartRateBpm:s.maxHeartRate,Intensity:"Active",TriggerMethod:"Manual",Track:s.records?[this.convertRecords2TCXTrack(s.records)]:[]};return(s.avgCadence!==void 0||s.maxCadence!==void 0)&&(n.Cadence={Low:s.avgCadence||0,High:s.maxCadence||0}),n}convertRecords2TCXTrack(s){return{Trackpoint:s.map(t=>this.convertPoint2TCXTrackpoint(t))}}convertPoint2TCXTrackpoint(s){let t={Time:this.validTimestamp(s.timestamp),Position:{LatitudeDegrees:s?.positionLat?.toString(),LongitudeDegrees:s?.positionLong?.toString()},AltitudeMeters:s.altitude,DistanceMeters:s.distance};return s.heartRate&&(t.HeartRateBpm=s.heartRate),s.cadence&&(t.Cadence={Low:s.cadence,High:s.cadence256||s.cadence}),s.power&&(t.Extensions={"ns3:TPX":{"ns3:Watts":s.power}}),t}validTimestamp(s){let t=(0,In.default)(s);if(!s||!t.isValid())throw new Error("Cannot encode TCX data without valid timestamps");return t.toISOString()}convertRouteToTCXCourse(s,t){return{Name:s.routeName??`Course_${t}`,Track:s.records?[this.convertRecords2TCXTrack(s.records)]:[]}}};var Ss=class{constructor(){this.converters=new Map;this.encoders=new Map;this.registerDefaultConverters(),this.registerDefaultEncoders()}registerDefaultConverters(){this.registerConverter(new hs),this.registerConverter(new Rs),this.registerConverter(new gs)}registerDefaultEncoders(){this.registerEncoder(new Ls),this.registerEncoder(new Cs),this.registerEncoder(new Es)}registerConverter(e){this.converters.set(e.name,e)}registerEncoder(e){this.encoders.set(e.name,e)}async convertToActivity(e,s){let t={metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},sourceFormat:s,sourceData:e,performance:{startTime:Date.now()}};try{let n=this.findConverter(s);if(!n)throw new Error(`No converter found for format "${s}"`);let a=Date.now(),i=n.convert(e,t);if(t.performance.convertTime=Date.now()-a,!i)throw new Error(`Converter "${n.name}" returned empty result`);let o=i;return t.result=o,t.performance.endTime=Date.now(),t.stats.endTime=Date.now(),o}catch(n){throw t.errors.push(n),n}}async encodeActivity(e,s){let t={metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},targetFormat:s,performance:{startTime:Date.now()}};try{let n=this.findEncoder(s);if(!n)throw new Error(`No encoder found for format "${s}"`);let a=Date.now(),i=n.encode(e,t);if(t.performance.encodeTime=Date.now()-a,!i)throw new Error(`Encoder "${n.name}" returned empty result`);return t.result=i,t.performance.endTime=Date.now(),t.stats.endTime=Date.now(),i}catch(n){throw t.errors.push(n),n}}findConverter(e){return Array.from(this.converters.values()).find(s=>s.supportedTags?.includes(e))}findEncoder(e){return Array.from(this.encoders.values()).find(s=>s.supportedTags?.includes(e))}async destroy(){this.converters.clear(),this.encoders.clear()}};var yn=8,Va=".FIT";function Ka(l){return(l?.activities??[]).reduce((e,s)=>e+(s.laps??[]).reduce((t,n)=>t+(n.records?.length??0),0),0)}function ka(l,e){let s=l.recordMesgs?.length??0,t=Ka(e);if(s!==t)throw new k("FIT_ACTIVITY_DATA_LOSS",`FIT activity record count mismatch: decoded ${s}, canonicalized ${t}`,{format:"fit"})}function Na(l){return l.toString("utf8",0,Math.min(l.length,4096)).replace(/^\uFEFF/,"")}function Xa(l){if(l.length>=12&&l.toString("ascii",yn,yn+4)===Va)return"fit";let e=Na(l);if(/<gpx\b/i.test(e))return"gpx";if(/<TrainingCenterDatabase\b/i.test(e))return"tcx"}var Ae=class{constructor(e){this.activities=e}matches(e){return Xa(e)===this.format}},ut=class extends Ae{constructor(){super(...arguments);this.format="fit"}getDecoder(){return this.decoder??=new Pe}getEncoder(){return this.encoder??=new Ve}async decode(s,t){let n=await this.getDecoder().parseByBuffer(s,{userData:{fitDocumentOptions:t.fit??{}}});if(!n)throw new Error("FIT decoder returned an empty result");let a=n.fitDocumentMetadata?.detectedKinds??["unknown"],i=a.includes("activity")?await this.activities.convertToActivity(n,"fit"):void 0;a.includes("activity")&&ka(n,i);let o=n.healthDocument?.diagnostics??{parserVersion:me,messageCounts:n.fitDocumentMetadata?.messageCounts??{},recognizedMessageCounts:{},unknownMessageCounts:{},invalidValueCounts:{},warningCounts:{},warnings:[]},u=n.fileIdMesgs?.[0],p=u,d=n.fileCreatorMesgs?.[0];return{kinds:[...a],facets:{activity:i,health:n.healthDocument},native:n,metadata:{fileType:u?.type,manufacturer:u?.manufacturer,product:u?.garminProduct??u?.product,productName:typeof p?.productName=="string"?p.productName:void 0,serialNumber:u?.serialNumber===void 0?void 0:String(u.serialNumber),createdAt:u?.timeCreated?new Date(u.timeCreated):void 0,softwareVersion:d?.softwareVersion},fitDiagnostics:o,warnings:o.warnings.map(_=>_.message)}}async encodeActivity(s){let t=await this.activities.encodeActivity(s,"fit");return this.getEncoder().encode(t)}async encodeCourse(s){return Buffer.from(mn(Lt(s)))}async dispose(){await this.decoder?.destroy()}},ft=class extends Ae{constructor(){super(...arguments);this.format="gpx"}getDecoder(){return this.decoder??=new ns}getEncoder(){return this.encoder??=new as}async decode(s){let t=await this.getDecoder().parserByBuffer(s);if(!t)throw new Error("GPX decoder returned an empty result");let n=await this.activities.convertToActivity(t,"gpx"),a=[];return n.activities?.length&&a.push("activity"),n.routes?.length&&a.push("route"),n.points?.length&&a.push("waypoint"),a.length===0&&a.push("unknown"),{kinds:a,facets:{activity:n},native:t,metadata:{title:t.metadata?.name,creator:t.creator,createdAt:t.metadata?.time}}}async encodeActivity(s){let t=await this.activities.encodeActivity(s,"gpx");return this.getEncoder().encode(t)}async dispose(){await this.decoder?.destroy()}},pt=class extends Ae{constructor(){super(...arguments);this.format="tcx"}getDecoder(){return this.decoder??=new Is}getEncoder(){return this.encoder??=new ys}async decode(s){let t=await this.getDecoder().parseByBuffer(s);if(!t)throw new Error("TCX decoder returned an empty result");let n=await this.activities.convertToActivity(t,"tcx");return{kinds:n.activities?.length?["activity"]:n.routes?.length?["course"]:["unknown"],facets:{activity:n},native:t,metadata:{creator:t.Author?.Name??t.creator}}}async encodeActivity(s){let t=await this.activities.encodeActivity(s,"tcx");return this.getEncoder().encode(t)}async dispose(){await this.decoder?.destroy()}};function hn(){let l=new Ss;return{adapters:[new ut(l),new ft(l),new pt(l)],activities:l}}function Rn(l){return l.format==="fit"&&"encodeCourse"in l}var Os=class{constructor(e){this.adapters=new Map;for(let s of e){if(this.adapters.has(s.format))throw new k("ADAPTER_CONFLICT",`Multiple adapters registered for format "${s.format}"`,{format:s.format});this.adapters.set(s.format,s)}}get(e){let s=this.adapters.get(e);if(!s)throw new k("FORMAT_UNSUPPORTED",`No adapter registered for format "${e}"`,{format:e});return s}detect(e){for(let s of this.adapters.values())if(s.matches(e))return s.format;throw new k("FORMAT_UNKNOWN","Unable to detect input format")}async dispose(){await Promise.all([...this.adapters.values()].map(e=>e.dispose?.()))}};function mt(l){return typeof l=="string"?Buffer.from(l,"utf8"):Buffer.isBuffer(l)?l:Buffer.from(l.buffer,l.byteOffset,l.byteLength)}function Ya(l){return typeof l=="string"||Buffer.isBuffer(l)||l instanceof Uint8Array}var ce=class{constructor(e={}){this.disposed=!1;let t=[...e.includeBuiltInAdapters===!1?[]:hn().adapters,...e.adapters??[]];this.registry=new Os(t)}detect(e){return this.assertActive(),this.registry.detect(mt(e))}async decode(e,s={}){this.assertActive();let t=mt(e),n=s.format??this.registry.detect(t),a=this.registry.get(n),i=Date.now();try{let o=await a.decode(t,s);return{schemaVersion:"2",format:n,kinds:[...new Set(o.kinds)],source:{byteLength:t.byteLength},metadata:o.metadata??{},facets:o.facets,...s.includeNative?{native:o.native}:{},diagnostics:{durationMs:Date.now()-i,warnings:o.warnings??[],fit:o.fitDiagnostics}}}catch(o){throw Ie(o,"DECODE_FAILED",`Failed to decode ${n.toUpperCase()}`,n)}}async decodeActivity(e,s={}){let t=await this.decode(e,s);if(!t.facets.activity)throw new k("ACTIVITY_NOT_FOUND",`The ${t.format.toUpperCase()} document has no activity facet`,{format:t.format});return t.facets.activity}async encodeActivity(e,s){this.assertActive();try{return await this.registry.get(s.format).encodeActivity(e)}catch(t){throw Ie(t,"ENCODE_FAILED",`Failed to encode ${s.format.toUpperCase()}`,s.format)}}async transcode(e,s){this.assertActive();let t=mt(e),n=s.sourceFormat??this.registry.detect(t);if(n===s.format)return Buffer.from(t);let a=await this.decodeActivity(t,{format:n});return this.encodeActivity(a,{format:s.format})}async encodeCourse(e,s={}){this.assertActive();let t=Ya(e)?await this.decodeActivity(e,{format:s.sourceFormat}):e,n=this.registry.get("fit");if(!Rn(n))throw new k("FORMAT_UNSUPPORTED","The registered FIT adapter does not support course encoding",{format:"fit"});try{return await n.encodeCourse(t)}catch(a){throw Ie(a,"ENCODE_FAILED","Failed to encode FIT course","fit")}}async dispose(){this.disposed||(this.disposed=!0,await this.registry.dispose())}assertActive(){if(this.disposed)throw new k("DISPOSED","TrackSwap instance is disposed")}};0&&(module.exports={FIT_SEMICIRCLE_INVALID_SINT32,TRACKSWAP_HEALTH_PARSER_VERSION,TrackSwap,TrackSwapError,buildHealthDocumentFromMessages,detectFITKinds,normalizeFitSemicircleToDegrees,semicirclesToDegrees});
29
+ `)}buildCoursePoint(e){let s=["<CoursePoint>"];return this.addOptionalElement(s,"Name",e.Name),e.Time!==void 0&&e.Time!==null&&s.push(`<Time>${e.Time}</Time>`),e.Position&&s.push(this.buildPosition(e.Position)),this.addOptionalNumericElement(s,"AltitudeMeters",e.AltitudeMeters),this.addOptionalElement(s,"PointType",e.PointType),this.addOptionalElement(s,"Notes",e.Notes),e.Extensions&&s.push(this.buildExtensions(e.Extensions)),s.push("</CoursePoint>"),s.join("")}buildAuthor(e){let s=["<Author>"];return this.addOptionalElement(s,"Name",e.Name),s.push("</Author>"),s.join("")}buildExtensions(e){let s=this.buildExtensionContent(e);return s?`<Extensions>${s}</Extensions>`:""}buildExtensionContent(e){return Object.entries(e).filter(([s])=>!s.startsWith("xmlns")).map(([s,t])=>{if(t&&typeof t=="object"){let n=this.buildExtensionContent(t);return`<${s}>${n}</${s}>`}else if(t!=null)return`<${s}>${this.escapeXML(String(t))}</${s}>`;return""}).filter(s=>s).join("")}formatTime(e){let s=(0,it.default)(e);if(!s.isValid())throw new Error(`Cannot encode invalid TCX timestamp: ${String(e)}`);return s.toISOString()}addOptionalElement(e,s,t,n){if(t!=null&&t!==""){let a=n?n(t):this.escapeXML(t);e.push(`<${s}>${a}</${s}>`)}}addOptionalNumericElement(e,s,t){t!=null&&!isNaN(t)&&e.push(`<${s}>${t}</${s}>`)}isValidCoordinate(e,s){return e!=null&&s!==void 0&&s!==null&&!isNaN(e)&&!isNaN(s)}formatCoordinate(e){return this.roundTo(e,6).toString()}roundTo(e,s){let t=Math.pow(10,s);return Math.round(e*t)/t}escapeXML(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}escapeXMLAttribute(e){return typeof e!="string"?String(e||""):e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\r/g,"&#13;").replace(/\n/g,"&#10;").replace(/\t/g,"&#9;")}deepClone(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(t=>this.deepClone(t));let s={};for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(s[t]=this.deepClone(e[t]));return s}encoder(e){return this.encode(e)}};var An=J(require("dayjs"),1),fe=class extends se{convertPoints(e){return e.map(s=>this.convertPoint(s)).filter(s=>s!==void 0)}convertTime(e){if(!e)return;if(typeof e=="number")return e;let s=(0,An.default)(e);return s.isValid()?s.valueOf():void 0}},pe=class{constructor(){this.version="1.0.0";this.priority=100}supports(e){return this.supportedTags.includes(e)}async initialize(e){e.metadata.set(`plugin:${this.name}:initialized`,!0)}async destroy(e){e.metadata.delete(`plugin:${this.name}:initialized`)}async validate(e){return!0}convertTimeToDate(e){return e?new Date(e):new Date}convertTimeToString(e){return this.convertTimeToDate(e).toISOString()}ensureValidCoordinates(e,s){return e>=-90&&e<=90&&s>=-180&&s<=180}round(e,s=6){let t=Math.pow(10,s);return Math.round(e*t)/t}};var cn={heartrate:"heartRate","gpxtpx:hr":"heartRate","ns3:hr":"heartRate","gpxdata:hr":"heartRate","gpxdata:cadence":"cadence","gpxtpx:cad":"cadence","ns3:cad":"cadence",cadence:"cadence","gpxtpx:speed":"speed","ns3:speed":"speed",speed:"speed",power:"power","gpxdata:power":"power","gpxpx:PowerInWatts":"power",PowerInWatts:"power","gpxtpx:temp":"temperature","gpxtpx:wtemp":"wtemp","gpxtpx:atemp":"atemp","gpxx:Temperature":"temperature","gpxx:Depth":"depth"},lt=l=>l*(180/Math.pow(2,31)),ot=2147483647;function Y(l,e=6){if(l==null)return;let s=typeof l=="number"?l:Number(l);if(!Number.isFinite(s)||s===ot)return;let t=lt(s),n=Math.pow(10,e);return Math.round(t*n)/n}var _e=J(require("dayjs"),1);De();var Te=J(require("dayjs"),1),bn=require("geolib"),te=class{calculateRecordsAggMetrics(e){if(!e||e.length===0)return;let s={records:this.preprocessRecords(e)};for(let t=0;t<s.records.length;t++){let n=s.records[t];if(!(n.positionLat==null||n.positionLong==null||!Number.isFinite(n.positionLat)||!Number.isFinite(n.positionLong))){if(s.startPositionLat==null&&(s.startPositionLat=n.positionLat),s.startPositionLong==null&&(s.startPositionLong=n.positionLong),s.endPositionLat=n.positionLat,s.endPositionLong=n.positionLong,s.timestamp=n.timestamp,s?.startTime||(s.startTime=n.timestamp),s.endTime=n.timestamp,s.totalDistance=n.distance,s.totalElapsedTime=(0,Te.default)(n.timestamp).diff((0,Te.default)(s.startTime),"second"),n?.speed&&(s.avgSpeed=s.avgSpeed?(s.avgSpeed+n.speed)/2:n.speed,s.maxSpeed=Math.max(s.maxSpeed||0,n.speed)),n?.heartRate&&(s.maxHeartRate=Math.max(s.maxHeartRate||0,n.heartRate),s.minHeartRate=Math.min(s.minHeartRate||n.heartRate,n.heartRate),s.avgHeartRate?s.avgHeartRate=(s.avgHeartRate+n.heartRate)/2:s.avgHeartRate=n.heartRate),n?.altitude&&(s.maxAltitude=Math.max(s.maxAltitude||0,n.altitude),s.minAltitude=Math.min(s.minAltitude||n.altitude,n.altitude),s.avgAltitude=s.avgAltitude?(s.avgAltitude+n.altitude)/2:n.altitude,t>0&&e[t-1].altitude)){let a=this.calculateElevationChanges(e[t-1],n);s.totalAscent=(s.totalAscent||0)+a.ascent,s.totalDescent=(s.totalDescent||0)+a.descent}if(n?.cadence&&(s.maxCadence=Math.max(s.maxCadence||0,n.cadence),s.avgCadence?s.avgCadence=(s.avgCadence+n.cadence)/2:s.avgCadence=n.cadence),n?.power){s.maxPower=Math.max(s.maxPower||0,n.power),s.avgPower?s.avgPower=(s.avgPower+n.power)/2:s.avgPower=n.power;let a=this.calculateAccumulatedPower(t>0?e[t-1]:n,n,s.totalWork||0);s.totalWork=a.newAccumulatedWork,s.normalizedPower=void 0}n?.temperature&&(s.avgTemperature?s.avgTemperature=(s.avgTemperature+n.temperature)/2:s.avgTemperature=n.temperature,s.maxTemperature=Math.max(s.maxTemperature||0,n.temperature),s.minTemperature=Math.min(s.minTemperature||n.temperature,n.temperature))}}return s}calculateLapAggMetrics(e){if(!e||e.length===0)return;let s={laps:e,timestamp:e[0]?.timestamp||new Date};for(let t=0;t<e.length;t++){let n=e[t];n.startPositionLat&&n.startPositionLong&&!s?.startPositionLat&&!s?.startPositionLong&&(s.startPositionLat=n.startPositionLat,s.startPositionLong=n.startPositionLong),n.endPositionLat&&n.endPositionLong&&(s.endPositionLat=n.endPositionLat,s.endPositionLong=n.endPositionLong),n.startTime&&!s?.startTime&&(s.startTime=n.startTime),n.endTime&&(s.endTime=n.endTime),s.timestamp=n.timestamp||n.endTime||s.timestamp,n.totalDistance&&(s.totalDistance=(s.totalDistance||0)+n.totalDistance),n.totalElapsedTime&&(s.totalElapsedTime=(s.totalElapsedTime||0)+n.totalElapsedTime),n.totalMovingTime&&(s.totalMovingTime=(s.totalMovingTime||0)+n.totalMovingTime),n.totalTimerTime&&(s.totalTimerTime=(s.totalTimerTime||0)+n.totalTimerTime),n.maxSpeed&&(s.maxSpeed=Math.max(s.maxSpeed||0,n.maxSpeed)),n.avgSpeed&&(s.avgSpeed?s.avgSpeed=(s.avgSpeed+n.avgSpeed)/2:s.avgSpeed=n.avgSpeed),n.maxHeartRate&&(s.maxHeartRate=Math.max(s.maxHeartRate||0,n.maxHeartRate)),n.minHeartRate&&(s.minHeartRate=s.minHeartRate?Math.min(s.minHeartRate,n.minHeartRate):n.minHeartRate),n.avgHeartRate&&(s.avgHeartRate?s.avgHeartRate=(s.avgHeartRate+n.avgHeartRate)/2:s.avgHeartRate=n.avgHeartRate),n.maxAltitude&&(s.maxAltitude=Math.max(s.maxAltitude||0,n.maxAltitude)),n.minAltitude&&(s.minAltitude=s.minAltitude?Math.min(s.minAltitude,n.minAltitude):n.minAltitude),n.avgAltitude&&(s.avgAltitude?s.avgAltitude=(s.avgAltitude+n.avgAltitude)/2:s.avgAltitude=n.avgAltitude),n.totalAscent&&(s.totalAscent=(s.totalAscent||0)+n.totalAscent),n.totalDescent&&(s.totalDescent=(s.totalDescent||0)+n.totalDescent),n.maxCadence&&(s.maxCadence=Math.max(s.maxCadence||0,n.maxCadence)),n.avgCadence&&(s.avgCadence?s.avgCadence=(s.avgCadence+n.avgCadence)/2:s.avgCadence=n.avgCadence),n.maxPower&&(s.maxPower=Math.max(s.maxPower||0,n.maxPower)),n.avgPower&&(s.avgPower?s.avgPower=(s.avgPower+n.avgPower)/2:s.avgPower=n.avgPower),n.totalWork&&(s.totalWork=(s.totalWork||0)+n.totalWork),n.maxTemperature&&(s.maxTemperature=Math.max(s.maxTemperature||0,n.maxTemperature)),n.minTemperature&&(s.minTemperature=s.minTemperature?Math.min(s.minTemperature,n.minTemperature):n.minTemperature),n.avgTemperature&&(s.avgTemperature?s.avgTemperature=(s.avgTemperature+n.avgTemperature)/2:s.avgTemperature=n.avgTemperature)}return s}preprocessRecords(e){if(!e||e.length===0)return e;let s=e.filter(i=>i.timestamp).sort((i,o)=>i.timestamp.valueOf()-o.timestamp.valueOf()),t=0,n=0,a=[];for(let i=0;i<s.length;i++){let o=s[i],u={...o};if(i>0){let p=this.calculatePointDistanceByPosition(s[i-1],u)||0;if(u.distance||(n+=p,u.distance=n),o.speed||(u.speed=this.calculateInstantSpeed(s[i-1],u,p)),o.power){let T=this.calculateAccumulatedPower(s[i-1],u,t);u.accumulatedPower=T.accumulatedPower,t=T.newAccumulatedWork}}a.push(u)}return a}calculatePointDistanceByPosition(e,s){if(!(e.positionLat==null||e.positionLong==null||s.positionLat==null||s.positionLong==null||!Number.isFinite(e.positionLat)||!Number.isFinite(e.positionLong)||!Number.isFinite(s.positionLat)||!Number.isFinite(s.positionLong)))try{return(0,bn.getPreciseDistance)({latitude:e.positionLat,longitude:e.positionLong},{latitude:s.positionLat,longitude:s.positionLong})}catch{return}}calculateInstantSpeed(e,s,t){if(!e.timestamp||!s.timestamp||!t)return;let n=((0,Te.default)(s.timestamp).valueOf()-(0,Te.default)(e.timestamp).valueOf())/1e3;if(!(n<=0))return t/n}calculateAccumulatedPower(e,s,t){if(e.power===void 0||s.power===void 0||!e.timestamp||!s.timestamp)return{accumulatedPower:t,newAccumulatedWork:t};let n=s.timestamp?.valueOf()-e.timestamp?.valueOf();if(n<=0)return{accumulatedPower:t,newAccumulatedWork:t};let i=(e.power+s.power)/2*n,o=t+i;return{accumulatedPower:o,newAccumulatedWork:o}}calculateElevationChanges(e,s){let t=0,n=0;return s.altitude!==void 0&&e.altitude!==void 0&&(s.altitude>e.altitude?t=s.altitude-e.altitude:s.altitude<=e.altitude&&(n=e.altitude-s.altitude)),{ascent:t,descent:n}}};var hs=class extends fe{constructor(){super(...arguments);this.name="gpx-to-activity-converter";this.supportedTags=["gpx"];this.convertGPXExtensions=s=>{let t={};return Object.entries(s).forEach(([n,a])=>{if(typeof a<"u"&&a!=="undefined"){let i=cn[n]||n;t[i]=this.autoNumber(a)}}),t}}convert(s,t){if(t.sourceFormat!=="gpx")return;let n=t.sourceData;return this.convertGPX(n)}convertGPX(s){let t={metadata:{originType:"GPX",fileType:"gpx"},activities:[]};return s.wpt&&(t.points=this.convertWpts2Points(s.wpt)),s.trk&&(t.activities=s.trk.map((n,a)=>this.convertTrk2Activity(n,a))),s.rte&&(t.routes=s.rte.map((n,a)=>this.convertRoute2Lap(n,a))),t}convertPoint(s,t,n){let{extensions:a}=s,i=a?this.convertGPXExtensions(a):{};return{lapIndex:n||0,index:t||0,positionLat:s?.lat,positionLong:s?.lon,altitude:s?.ele,heartRate:s?.heartRate,speed:s?.speed,power:s?.power,cadence:s?.cadence,course:s?.course,magvar:s?.magvar,geoidheight:s?.geoidheight,pointName:s?.name,comment:s?.cmt,description:s?.desc,source:s?.src,links:s?.link,symbol:s?.sym,pointType:s?.type,fix:s?.fix,sat:s?.sat,hdop:s?.hdop,vdop:s?.vdop,pdop:s?.pdop,ageofdgpsdata:s?.ageofdgpsdata,dgpsid:s?.dgpsid,gpxExtensions:s?.extensions,timestamp:s.time?(0,_e.default)(s.time).toDate():void 0,...i}}convertTrk2Activity(s,t){let n=s.trkseg?.map((i,o)=>this.convertTrackSeg2Lap(i,o))||[],a=new te().calculateLapAggMetrics(n);return{index:t,messageIndex:t,activityName:s.name,comment:s.cmt,description:s.desc,source:s.src,links:s.link,activityNumber:s.number,sport:s.type,gpxExtensions:s.extensions,laps:n,...a}}convertTrackSeg2Lap(s,t){return{...this.convertPoints2Lap(s.trkpt??[],t),gpxExtensions:s.extensions}}convertRoute2Lap(s,t){return{...this.convertPoints2Lap(s.rtept??[],t,s.name),comment:s.cmt,description:s.desc,source:s.src,links:s.link,routeNumber:s.number,routeType:s.type,gpxExtensions:s.extensions}}convertPoints2Lap(s,t,n){let a=s.map((T,_)=>this.convertPoint(T,_,t)),o=new te().calculateRecordsAggMetrics(a),u=new Map((o?.records??[]).map(T=>[T.index,T])),p=a.map(T=>u.get(T.index)??T);return{index:t,messageIndex:t,routeName:n,...o,records:p,lengths:[]}}convertWpts2Points(s){let t=[];for(let n=0;n<s.length;n++){let a=this.convertPoint(s[n],n);a&&t.push(a)}return t}autoNumber(s){return typeof s=="string"&&s.trim()!==""&&!isNaN(s)?Number(s):s}},Rs=class extends fe{constructor(){super(...arguments);this.name="fit-to-activity-converter";this.supportedTags=["fit"]}convert(s,t){if(t.sourceFormat!=="fit")return;let n=t.sourceData;return this.convertFIT(n)}convertFIT(s){let t={metadata:{originType:"FIT",fileType:"fit"},activities:[]};return s.sessionMesgs?.length?t.activities=s.sessionMesgs.map((n,a)=>({index:a,...n,startPositionLat:Y(n?.startPositionLat),startPositionLong:Y(n?.startPositionLong),endPositionLat:Y(n?.endPositionLat),endPositionLong:Y(n?.endPositionLong),laps:this.convertFITLap2Trackseg(n?.lapMesgs),strengthSets:this.convertFITStrengthSets(n?.setMesgs)})):s.courseMesgs?.length&&(t.routes=s.courseMesgs.map((n,a)=>({index:a,...n,records:this.convertLap2Points(n?.lapMesgs)}))),t}convertFITStrengthSets(s){return(s??[]).map((t,n)=>{let a=Array.isArray(t.category)?t.category:t.category==null?[]:[t.category],i=Array.isArray(t.categorySubtype)?t.categorySubtype:t.categorySubtype==null?[]:[t.categorySubtype],o=a.map((u,p)=>{let T=i[p],_=typeof T=="number"&&Number.isFinite(T)?T:void 0,I=`${String(u)}ExerciseName`,h=P.types?.[I];return{category:u,..._===void 0?{}:{categorySubtype:_},..._===void 0||!h?.[_]?{}:{name:h[_]}}});return{...t,index:n,exercises:o}})}convertPoint(s,t,n){let{positionLong:a,positionLat:i,altitude:o,enhancedAltitude:u,enhancedSpeed:p,speed:T,..._}=s,R=i??s.position_lat,I=a??s.position_long;return{lapIndex:n||0,index:t||0,positionLat:Y(R),positionLong:Y(I),altitude:o,enhancedAltitude:u,speed:T,enhancedSpeed:p,..._}}convertFITLap2Trackseg(s){let t=[];if(!s?.length)return[];for(let n=0;n<s.length;n++){let a=s[n],i=a?.recordMesgs?.map((u,p)=>this.convertPoint(u,p,n)).filter(u=>u!==void 0)||[],o=a?.lengthMesgs?.map((u,p)=>({...u,index:p}))||[];t.push({index:n,...a,startPositionLat:Y(a?.startPositionLat),startPositionLong:Y(a?.startPositionLong),endPositionLat:Y(a?.endPositionLat),endPositionLong:Y(a?.endPositionLong),records:i,lengths:o})}return t}convertLap2Points(s){let t=[];if(!s?.length)return[];for(let n=0;n<s.length;n++){let i=s[n].recordMesgs?.map((o,u)=>this.convertPoint(o,u,n)).filter(o=>o!==void 0)||[];i.length&&(t=[...t,...i])}return t}},gs=class extends fe{constructor(){super(...arguments);this.name="tcx-to-activity-converter";this.supportedTags=["tcx"]}sourceTime(s){if(!s)return;let t=(0,_e.default)(s);return t.isValid()?t.toDate():void 0}convert(s,t){if(t.sourceFormat!=="tcx")return;let n=t.sourceData;return this.convertTCX(n)}convertTCX(s){let t={metadata:{originType:"TCX",fileType:"tcx"},activities:[]};s.Activities?.Activity?.length&&(t.activities=s.Activities.Activity.map((i,o)=>this.convertTCXActivityToActivity(i,o)));let n=s.Courses?.Course,a=n==null?[]:Array.isArray(n)?n:[n];return a.length&&(t.routes=a.map((i,o)=>this.convertTCXCourseToRoute(i,o))),t}convertTCXCourseToRoute(s,t){let n=[],a=0,i=h=>h==null?[]:Array.isArray(h)?h:[h],o=h=>{for(let U of h??[])for(let H of U.Trackpoint??[])H==null||H.Time===void 0||n.push(this.convertPoint(H,a++,t))};o(i(s.Track));let u=s.Lap==null?[]:Array.isArray(s.Lap)?s.Lap:[s.Lap];for(let h of u)o(i(h.Track));let p=n.length,T=n[0]?.timestamp!=null?(0,_e.default)(n[0].timestamp):(0,_e.default)("2000-01-01T00:00:00Z"),_=s.CoursePoint==null?[]:Array.isArray(s.CoursePoint)?s.CoursePoint:[s.CoursePoint];for(let h of _){let U=this.convertTCXCoursePointToRecord(h,p++,t,T);U&&n.push(U)}let R=new te,I=n.length>0?R.calculateRecordsAggMetrics(n):{records:n};return{index:t,messageIndex:t,routeName:s.Name,...I,records:I?.records??n,lengths:[]}}convertTCXCoursePointToRecord(s,t,n,a){let i=s.Position?.LatitudeDegrees?Number(s.Position.LatitudeDegrees):void 0,o=s.Position?.LongitudeDegrees?Number(s.Position.LongitudeDegrees):void 0;if(i==null&&o==null&&s.AltitudeMeters==null)return;let u=typeof s.Time=="number"&&Number.isFinite(s.Time)?a.add(s.Time,"second").toDate():a.add(t,"second").toDate();return{lapIndex:n,index:t,positionLat:i,positionLong:o,altitude:s.AltitudeMeters,timestamp:u}}convertTCXActivityToActivity(s,t){let n=s.Lap?.map((o,u)=>this.convertTCXLap2Lap(o,u,u===0?this.sourceTime(s.Id):void 0))||[],a=new te().calculateLapAggMetrics(n),i=o=>n.some(u=>u[o]!=null)?n.reduce((u,p)=>u+(p[o]??0),0):void 0;return{index:t,messageIndex:t,sport:s.Sport?.toLowerCase(),laps:n,...a,startTime:a?.startTime??this.sourceTime(s.Id),timestamp:a?.endTime??a?.startTime??this.sourceTime(s.Id),totalCalories:i("totalCalories"),totalDistance:i("totalDistance"),totalElapsedTime:i("totalElapsedTime"),totalTimerTime:i("totalTimerTime")}}convertTCXLap2Lap(s,t,n){let i=(s?.Track?.flatMap(d=>d.Trackpoint)||[])?.filter(d=>d!==void 0&&d.Time!==void 0).map((d,b)=>this.convertPoint(d,b,t))||[],u=new te().calculateRecordsAggMetrics(i),p=u?.records??[],T=p.map(d=>this.sourceTime(d.timestamp)).filter(d=>d!=null),_=this.sourceTime(s.StartTime)??n??T[0],R=T.at(-1),I=d=>d!=null&&Number.isFinite(d)&&d>=0?d:void 0,h=I(s.TotalTimeSeconds),U=_&&R?Math.max(0,(R.valueOf()-_.valueOf())/1e3):void 0,H=h==null?U:Math.max(h,U??0),A=_&&H!=null?new Date(_.valueOf()+H*1e3):R,y=p.map(d=>d.heartRate).filter(d=>d!=null&&Number.isFinite(d)&&d>0);return{index:t,messageIndex:t,...u,startTime:_,endTime:A,timestamp:A??_,totalElapsedTime:H,totalTimerTime:h,totalDistance:I(s.DistanceMeters)??u?.totalDistance,totalCalories:I(s.Calories),maxSpeed:I(s.MaximumSpeed)??u?.maxSpeed,avgHeartRate:I(s.AverageHeartRateBpm)??(y.length?y.reduce((d,b)=>d+b,0)/y.length:void 0),maxHeartRate:I(s.MaximumHeartRateBpm)??(y.length?y.reduce((d,b)=>Math.max(d,b),-1/0):void 0),minHeartRate:y.length?y.reduce((d,b)=>Math.min(d,b),1/0):void 0,records:p,lengths:[]}}convertPoint(s,t,n){let{Position:a,Time:i,DistanceMeters:o,AltitudeMeters:u}=s;return{lapIndex:n||0,index:t||0,positionLat:a?.LatitudeDegrees?Number(a.LatitudeDegrees):void 0,positionLong:a?.LongitudeDegrees?Number(a.LongitudeDegrees):void 0,timestamp:this.sourceTime(i),distance:o,altitude:u,heartRate:s.HeartRateBpm}}};var In=J(require("dayjs"),1);var Ls=class extends pe{constructor(){super(...arguments);this.name="activity-to-gpx-encoder";this.supportedTags=["gpx"]}encode(s,t){if(t.targetFormat!=="gpx"||!s?.activities?.length&&!s?.routes?.length&&!s?.points?.length)return;let n=s.activities?.[0]?.timestamp??s.routes?.[0]?.records?.[0]?.timestamp??s.points?.[0]?.timestamp??new Date,a=this.countRecordsMissingGpxCoordinates(s),i={version:"1.1",creator:"TrackSwap",metadata:{time:n,...a>0?{desc:`TrackSwap: omitted ${a} trackpoint(s) without valid latitude/longitude.`}:{}}};return s.points?.length&&(i.wpt=this.convertRecords2Wpts(s.points)),s.routes?.length&&(i.rte=s.routes.map(o=>this.convertRoute2GPXRoute(o))),s.activities?.length&&(i.trk=s.activities.map(o=>this.convertActivity2GPXTrack(o))),i}hasValidGpxCoordinates(s){let t=s.positionLat,n=s.positionLong;return typeof t=="number"&&typeof n=="number"&&Number.isFinite(t)&&Number.isFinite(n)&&t>=-90&&t<=90&&n>=-180&&n<=180}countRecordsMissingGpxCoordinates(s){let t=0,n=a=>{for(let i of a??[])this.hasValidGpxCoordinates(i)||t++};n(s.points);for(let a of s.activities??[])for(let i of a.laps??[])n(i.records);for(let a of s.routes??[])n(a.records);return t}convertRecords2Wpts(s){return s?.filter(t=>this.hasValidGpxCoordinates(t)).map(t=>({lat:t?.positionLat,lon:t?.positionLong,ele:t?.altitude,time:t?.timestamp,speed:t?.speed,course:t?.course,magvar:t?.magvar,geoidheight:t?.geoidheight,name:t?.pointName,cmt:t?.comment,desc:t?.description,src:t?.source,link:t?.links,sym:t?.symbol,type:t?.pointType,fix:t?.fix,sat:t?.sat,hdop:t?.hdop,vdop:t?.vdop,pdop:t?.pdop,ageofdgpsdata:t?.ageofdgpsdata,dgpsid:t?.dgpsid,extensions:this.extractGPXExtensions(t)}))??[]}convertRoute2GPXRoute(s){return{name:s.routeName,cmt:s.comment,desc:s.description,src:s.source,link:s.links,number:s.routeNumber,type:s.routeType,extensions:s.gpxExtensions,rtept:s.records?this.convertRecords2Wpts(s.records):[]}}convertActivity2GPXTrack(s){return{name:s.activityName,cmt:s.comment,desc:s.description,src:s.source,link:s.links,number:s.activityNumber,type:s.sport,extensions:s.gpxExtensions,trkseg:s.laps?.map(t=>({trkpt:t.records?this.convertRecords2Wpts(t.records):[],extensions:t.gpxExtensions}))||[]}}extractGPXExtensions(s){let t={...s.gpxExtensions??{}},n={...t["gpxtpx:TrackPointExtension"]??{}};return typeof s?.heartRate<"u"&&(n["gpxtpx:hr"]=s.heartRate),typeof s?.cadence<"u"&&(n["gpxtpx:cad"]=s.cadence),typeof s?.speed<"u"&&(n["gpxtpx:speed"]=s.speed),typeof s?.temperature<"u"&&(n["gpxtpx:atemp"]=s.temperature),Object.keys(n).length>0&&(t["gpxtpx:TrackPointExtension"]=n),typeof s?.power<"u"&&(t["gpxpx:PowerExtension"]={"gpxpx:PowerInWatts":s.power}),Object.keys(t).length>0?t:void 0}},Cs=class extends pe{constructor(){super(...arguments);this.name="activity-to-fit-encoder";this.supportedTags=["fit"]}encode(s,t){if(t.targetFormat==="fit"){if(s?.activities?.length){let n={};return n.sessionMesgs=s.activities.map(a=>this.convertActivity2FITSession(a)),n}if(s?.routes?.length){let n={};return n.sessionMesgs=[this.convertRoutesToSyntheticSession(s.routes)],n}}}convertRoutesToSyntheticSession(s){let t=s.map(p=>this.convertLap2FITLap(p)),a=s.flatMap(p=>p.records??[]).filter(p=>p.timestamp!=null).sort((p,T)=>new Date(p.timestamp).getTime()-new Date(T.timestamp).getTime()),i=a[0]?.timestamp??new Date,o=a[a.length-1]?.timestamp??i,u=a.find(p=>p.positionLat!=null&&p.positionLong!=null&&Number.isFinite(p.positionLat)&&Number.isFinite(p.positionLong));return{messageIndex:0,timestamp:o,event:"session",eventType:"stop",startTime:i,startPositionLat:u?.positionLat,startPositionLong:u?.positionLong,sport:"generic",subSport:"generic",lapMesgs:t}}convertActivity2FITSession(s){let{startTime:t,timestamp:n}=s;if(!t||!n||!Number.isFinite(t.valueOf())||!Number.isFinite(n.valueOf()))throw new Error("Cannot encode a FIT activity without valid timestamps");return{...s,startTime:t,timestamp:n,event:s?.event||"session",eventType:s?.eventType||"stop",sport:s?.sport||"generic",lapMesgs:s.laps?.map(i=>this.convertLap2FITLap(i))||[]}}convertLap2FITLap(s){return{startTime:s.startTime,...s,recordMesgs:s.records?.map(n=>this.convertPoint2FITRecord(n))||[]}}convertPoint2FITRecord(s){return s}},Es=class extends pe{constructor(){super(...arguments);this.name="sport-to-tcx-encoder";this.supportedTags=["tcx"]}encode(s,t){if(t.targetFormat!=="tcx")return;let n=!!s?.activities?.length,a=!!s?.routes?.length;if(!n&&!a)return;let i={version:"1.0",Author:{Name:"TrackSwap"}};return n&&(i.Activities={Activity:s.activities.map(o=>this.convertActivity2TCXActivity(o))}),a&&(i.Courses={Course:s.routes.map((o,u)=>this.convertRouteToTCXCourse(o,u))}),i}convertActivity2TCXActivity(s){if(!s.laps?.length)throw new Error("Cannot encode a TCX activity without laps");let t="Other",n=s.sport?.toLowerCase();return n==="running"&&(t="Running"),(n==="biking"||n==="cycling")&&(t="Biking"),{Id:this.validTimestamp(s.startTime??s.laps[0]?.startTime??s.laps[0]?.records?.[0]?.timestamp),Sport:t,Lap:s.laps.map(i=>this.convertLap2TCXLap(i))}}convertLap2TCXLap(s){let n={StartTime:this.validTimestamp(s.startTime??s.records?.[0]?.timestamp),TotalTimeSeconds:s.totalElapsedTime,DistanceMeters:s.totalDistance,MaximumSpeed:s.maxSpeed,Calories:s.totalCalories,AverageHeartRateBpm:s.avgHeartRate,MaximumHeartRateBpm:s.maxHeartRate,Intensity:"Active",TriggerMethod:"Manual",Track:s.records?[this.convertRecords2TCXTrack(s.records)]:[]};return(s.avgCadence!==void 0||s.maxCadence!==void 0)&&(n.Cadence={Low:s.avgCadence||0,High:s.maxCadence||0}),n}convertRecords2TCXTrack(s){return{Trackpoint:s.map(t=>this.convertPoint2TCXTrackpoint(t))}}convertPoint2TCXTrackpoint(s){let t={Time:this.validTimestamp(s.timestamp),Position:{LatitudeDegrees:s?.positionLat?.toString(),LongitudeDegrees:s?.positionLong?.toString()},AltitudeMeters:s.altitude,DistanceMeters:s.distance};return s.heartRate&&(t.HeartRateBpm=s.heartRate),s.cadence&&(t.Cadence={Low:s.cadence,High:s.cadence256||s.cadence}),s.power&&(t.Extensions={"ns3:TPX":{"ns3:Watts":s.power}}),t}validTimestamp(s){let t=(0,In.default)(s);if(!s||!t.isValid())throw new Error("Cannot encode TCX data without valid timestamps");return t.toISOString()}convertRouteToTCXCourse(s,t){return{Name:s.routeName??`Course_${t}`,Track:s.records?[this.convertRecords2TCXTrack(s.records)]:[]}}};var Ss=class{constructor(){this.converters=new Map;this.encoders=new Map;this.registerDefaultConverters(),this.registerDefaultEncoders()}registerDefaultConverters(){this.registerConverter(new hs),this.registerConverter(new Rs),this.registerConverter(new gs)}registerDefaultEncoders(){this.registerEncoder(new Ls),this.registerEncoder(new Cs),this.registerEncoder(new Es)}registerConverter(e){this.converters.set(e.name,e)}registerEncoder(e){this.encoders.set(e.name,e)}async convertToActivity(e,s){let t={metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},sourceFormat:s,sourceData:e,performance:{startTime:Date.now()}};try{let n=this.findConverter(s);if(!n)throw new Error(`No converter found for format "${s}"`);let a=Date.now(),i=n.convert(e,t);if(t.performance.convertTime=Date.now()-a,!i)throw new Error(`Converter "${n.name}" returned empty result`);let o=i;return t.result=o,t.performance.endTime=Date.now(),t.stats.endTime=Date.now(),o}catch(n){throw t.errors.push(n),n}}async encodeActivity(e,s){let t={metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},targetFormat:s,performance:{startTime:Date.now()}};try{let n=this.findEncoder(s);if(!n)throw new Error(`No encoder found for format "${s}"`);let a=Date.now(),i=n.encode(e,t);if(t.performance.encodeTime=Date.now()-a,!i)throw new Error(`Encoder "${n.name}" returned empty result`);return t.result=i,t.performance.endTime=Date.now(),t.stats.endTime=Date.now(),i}catch(n){throw t.errors.push(n),n}}findConverter(e){return Array.from(this.converters.values()).find(s=>s.supportedTags?.includes(e))}findEncoder(e){return Array.from(this.encoders.values()).find(s=>s.supportedTags?.includes(e))}async destroy(){this.converters.clear(),this.encoders.clear()}};var yn=8,Va=".FIT";function Ka(l){return(l?.activities??[]).reduce((e,s)=>e+(s.laps??[]).reduce((t,n)=>t+(n.records?.length??0),0),0)}function ka(l,e){let s=l.recordMesgs?.length??0,t=Ka(e);if(s!==t)throw new k("FIT_ACTIVITY_DATA_LOSS",`FIT activity record count mismatch: decoded ${s}, canonicalized ${t}`,{format:"fit"})}function Na(l){return l.toString("utf8",0,Math.min(l.length,4096)).replace(/^\uFEFF/,"")}function Xa(l){if(l.length>=12&&l.toString("ascii",yn,yn+4)===Va)return"fit";let e=Na(l);if(/<gpx\b/i.test(e))return"gpx";if(/<TrainingCenterDatabase\b/i.test(e))return"tcx"}var Ae=class{constructor(e){this.activities=e}matches(e){return Xa(e)===this.format}},ut=class extends Ae{constructor(){super(...arguments);this.format="fit"}getDecoder(){return this.decoder??=new Pe}getEncoder(){return this.encoder??=new Ve}async decode(s,t){let n=await this.getDecoder().parseByBuffer(s,{userData:{fitDocumentOptions:t.fit??{}}});if(!n)throw new Error("FIT decoder returned an empty result");let a=n.fitDocumentMetadata?.detectedKinds??["unknown"],i=a.includes("activity")?await this.activities.convertToActivity(n,"fit"):void 0;a.includes("activity")&&ka(n,i);let o=n.healthDocument?.diagnostics??{parserVersion:me,messageCounts:n.fitDocumentMetadata?.messageCounts??{},recognizedMessageCounts:{},unknownMessageCounts:{},invalidValueCounts:{},warningCounts:{},warnings:[]},u=n.fileIdMesgs?.[0],p=u,T=n.fileCreatorMesgs?.[0];return{kinds:[...a],facets:{activity:i,health:n.healthDocument},native:n,metadata:{fileType:u?.type,manufacturer:u?.manufacturer,product:u?.garminProduct??u?.product,productName:typeof p?.productName=="string"?p.productName:void 0,serialNumber:u?.serialNumber===void 0?void 0:String(u.serialNumber),createdAt:u?.timeCreated?new Date(u.timeCreated):void 0,softwareVersion:T?.softwareVersion},fitDiagnostics:o,warnings:o.warnings.map(_=>_.message)}}async encodeActivity(s){let t=await this.activities.encodeActivity(s,"fit");return this.getEncoder().encode(t)}async encodeCourse(s){return Buffer.from(mn(Lt(s)))}async dispose(){await this.decoder?.destroy()}},ft=class extends Ae{constructor(){super(...arguments);this.format="gpx"}getDecoder(){return this.decoder??=new ns}getEncoder(){return this.encoder??=new as}async decode(s){let t=await this.getDecoder().parserByBuffer(s);if(!t)throw new Error("GPX decoder returned an empty result");let n=await this.activities.convertToActivity(t,"gpx"),a=[];return n.activities?.length&&a.push("activity"),n.routes?.length&&a.push("route"),n.points?.length&&a.push("waypoint"),a.length===0&&a.push("unknown"),{kinds:a,facets:{activity:n},native:t,metadata:{title:t.metadata?.name,creator:t.creator,createdAt:t.metadata?.time}}}async encodeActivity(s){let t=await this.activities.encodeActivity(s,"gpx");return this.getEncoder().encode(t)}async dispose(){await this.decoder?.destroy()}},pt=class extends Ae{constructor(){super(...arguments);this.format="tcx"}getDecoder(){return this.decoder??=new Is}getEncoder(){return this.encoder??=new ys}async decode(s){let t=await this.getDecoder().parseByBuffer(s);if(!t)throw new Error("TCX decoder returned an empty result");let n=await this.activities.convertToActivity(t,"tcx");return{kinds:n.activities?.length?["activity"]:n.routes?.length?["course"]:["unknown"],facets:{activity:n},native:t,metadata:{creator:t.Author?.Name??t.creator}}}async encodeActivity(s){let t=await this.activities.encodeActivity(s,"tcx");return this.getEncoder().encode(t)}async dispose(){await this.decoder?.destroy()}};function hn(){let l=new Ss;return{adapters:[new ut(l),new ft(l),new pt(l)],activities:l}}function Rn(l){return l.format==="fit"&&"encodeCourse"in l}var Os=class{constructor(e){this.adapters=new Map;for(let s of e){if(this.adapters.has(s.format))throw new k("ADAPTER_CONFLICT",`Multiple adapters registered for format "${s.format}"`,{format:s.format});this.adapters.set(s.format,s)}}get(e){let s=this.adapters.get(e);if(!s)throw new k("FORMAT_UNSUPPORTED",`No adapter registered for format "${e}"`,{format:e});return s}detect(e){for(let s of this.adapters.values())if(s.matches(e))return s.format;throw new k("FORMAT_UNKNOWN","Unable to detect input format")}async dispose(){await Promise.all([...this.adapters.values()].map(e=>e.dispose?.()))}};function mt(l){return typeof l=="string"?Buffer.from(l,"utf8"):Buffer.isBuffer(l)?l:Buffer.from(l.buffer,l.byteOffset,l.byteLength)}function Ya(l){return typeof l=="string"||Buffer.isBuffer(l)||l instanceof Uint8Array}var ce=class{constructor(e={}){this.disposed=!1;let t=[...e.includeBuiltInAdapters===!1?[]:hn().adapters,...e.adapters??[]];this.registry=new Os(t)}detect(e){return this.assertActive(),this.registry.detect(mt(e))}async decode(e,s={}){this.assertActive();let t=mt(e),n=s.format??this.registry.detect(t),a=this.registry.get(n),i=Date.now();try{let o=await a.decode(t,s);return{schemaVersion:"2",format:n,kinds:[...new Set(o.kinds)],source:{byteLength:t.byteLength},metadata:o.metadata??{},facets:o.facets,...s.includeNative?{native:o.native}:{},diagnostics:{durationMs:Date.now()-i,warnings:o.warnings??[],fit:o.fitDiagnostics}}}catch(o){throw Ie(o,"DECODE_FAILED",`Failed to decode ${n.toUpperCase()}`,n)}}async decodeActivity(e,s={}){let t=await this.decode(e,s);if(!t.facets.activity)throw new k("ACTIVITY_NOT_FOUND",`The ${t.format.toUpperCase()} document has no activity facet`,{format:t.format});return t.facets.activity}async encodeActivity(e,s){this.assertActive();try{return await this.registry.get(s.format).encodeActivity(e)}catch(t){throw Ie(t,"ENCODE_FAILED",`Failed to encode ${s.format.toUpperCase()}`,s.format)}}async transcode(e,s){this.assertActive();let t=mt(e),n=s.sourceFormat??this.registry.detect(t);if(n===s.format)return Buffer.from(t);let a=await this.decodeActivity(t,{format:n});return this.encodeActivity(a,{format:s.format})}async encodeCourse(e,s={}){this.assertActive();let t=Ya(e)?await this.decodeActivity(e,{format:s.sourceFormat}):e,n=this.registry.get("fit");if(!Rn(n))throw new k("FORMAT_UNSUPPORTED","The registered FIT adapter does not support course encoding",{format:"fit"});try{return await n.encodeCourse(t)}catch(a){throw Ie(a,"ENCODE_FAILED","Failed to encode FIT course","fit")}}async dispose(){this.disposed||(this.disposed=!0,await this.registry.dispose())}assertActive(){if(this.disposed)throw new k("DISPOSED","TrackSwap instance is disposed")}};0&&(module.exports={FIT_SEMICIRCLE_INVALID_SINT32,TRACKSWAP_HEALTH_PARSER_VERSION,TrackSwap,TrackSwapError,buildHealthDocumentFromMessages,detectFITKinds,normalizeFitSemicircleToDegrees,semicirclesToDegrees});