createLinear = compiledMath => {
let linear = [
...magicNumber,
...version,
0x01,
0x05,
0x01,
0x60,
0x00,
0x01,
0x7f,
0x03,
0x02,
0x01,
0x00,
0x07,
0x05,
0x01,
0x01,
functionName,
0x00,
0x00,
0x0a,
compiledMath.length + 4,
0x01,
compiledMath.length + 2,
0x00,
...compiledMath,
0x0b
];
let ranges = [
{
name: "magic number",
start: 0,
end: magicNumber.length
},
{
name: "version",
start: magicNumber.length,
end: magicNumber.length + version.length
},
{
name: "function name",
start: magicNumber.length + version.length + 15,
end: magicNumber.length + version.length + 16
},
{
name: "length",
start: magicNumber.length + version.length + 19,
end: magicNumber.length + version.length + 20
},
{
name: "length",
start: magicNumber.length + version.length + 21,
end: magicNumber.length + version.length + 22
},
{
name: "math",
start: magicNumber.length + version.length + 23,
end: magicNumber.length + version.length + 23 + compiledMath.length
}
].map((r, i) => ({ color: scheme[i], ...r }));
return { linear, ranges };
}