It seems that when it comes to machine learning on embedded devices that I discover something new almost every day.  I just got a Nano RP2040 Connect and one of the featured tutorials is "Using the IMU Machine Learning Core Features".  The Nano RP2040 Connect uses an LSM6DSOX IMU module.  I was aware that ST IMUs have the capability to generate interrupts based on events such as free-fall, single-tap, and double-tap, but I hadn't heard of the Machine Learning Core feature that is available in the LSM6DSOX.

 

The Machine Learning Core allows you to use a trained model with the IMU to identify motion activities based on labeled data sets.  That says that the IMU can identify activity without requiring an external processor as the more traditional implementation that I'm familiar with.  That has inherent advantages in lower power and lower latency.  The limitation is that the model is constrained to using decision-tree logic.  Here is a link to the ST application note: https://www.st.com/resource/en/application_note/dm00563460-lsm6dsox-machine-learning-core-stmicroelectronics.pdf .  The Machine Learning Core can be combined to work with a configurable Finite State Machine to increase the accuracy of the motion classification.  As always, programming the MLC requires learning yet another tool, in this case, the Unico GUI which is provided by ST in Windows, Linux, and MacOSX versions.

 

The key to building an accurate decision-tree logic model is the same as other machine learning models - feature extraction from the training data sets.  The maximum number of features that can be configured in the MLC is 31.  A representative set of features that could be used is shown in the table:

 

The MLC blocks are shown below:

 

There is capability of adding inputs from additional sensors, e.g. a magnetometer.

 

Here is an example of how the decision-tree logic works:

 

 

On to try the demo .https://docs.arduino.cc/tutorials/nano-rp2040-connect/rp2040-imu-advanced

 

The demo is built using the Arduino IDE and uses the STM32duino X-NUCLEO-IKS01A3 library ("LSM6DSOXSensor.h") and the library example X_NUCLEO_IKS01A3_LSM6DSOX_MLC.ino.

 

There is a pre-built model file that is included "lsm6dsox_activity_recognition_for_mobile.h".

 

The only required change to the example program is to specify the correct interrupt pin for the Nano RP2040 Connect:

#define INT_1 INT_IMU

 

Nano_RP2040_Connect_LSM6DSOX_MLC.ino

/**
 ******************************************************************************
 * @file    X_NUCLEO_IKS01A3_LSM6DSOX_MLC.ino
 * @author  SRA
 * @version V1.1.0
 * @date    March 2020
 * @brief   Arduino test application for the STMicrolectronics X-NUCLEO-IKS01A3
 *          MEMS Inertial and Environmental sensor expansion board.
 *          This application makes use of C++ classes obtained from the C
 *          components' drivers.
 ******************************************************************************
 * @attention
 *
 * <h2><center>&copy; COPYRIGHT(c) 2020 STMicroelectronics</center></h2>
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *   1. Redistributions of source code must retain the above copyright notice,
 *      this list of conditions and the following disclaimer.
 *   2. Redistributions in binary form must reproduce the above copyright notice,
 *      this list of conditions and the following disclaimer in the documentation
 *      and/or other materials provided with the distribution.
 *   3. Neither the name of STMicroelectronics nor the names of its contributors
 *      may be used to endorse or promote products derived from this software
 *      without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 ******************************************************************************
 */
//NOTE: This example isn't compatible with Arduino Uno.
//NOTE: For this example you need the STEVAL-MKI197V1 board connected to the DIL24 connector of the X-NUCLEO-IKS01A3


// Includes
#include "LSM6DSOXSensor.h"
#include "lsm6dsox_activity_recognition_for_mobile.h"


#ifdef ARDUINO_SAM_DUE
#define DEV_I2C Wire1
#elif defined(ARDUINO_ARCH_STM32)
#define DEV_I2C Wire
#elif defined(ARDUINO_ARCH_AVR)
#define DEV_I2C Wire
#else
#define DEV_I2C Wire
#endif
#define SerialPort Serial


#define INT_1 INT_IMU


//Interrupts.
volatile int mems_event = 0;


// Components
LSM6DSOXSensor AccGyr(&DEV_I2C, LSM6DSOX_I2C_ADD_L);


// MLC
ucf_line_t *ProgramPointer;
int32_t LineCounter;
int32_t TotalNumberOfLine;


void INT1Event_cb();
void printMLCStatus(uint8_t status);


void setup() {
  uint8_t mlc_out[8];
  // Led.
  pinMode(LED_BUILTIN, OUTPUT);


  // Force INT1 of LSM6DSOX low in order to enable I2C
  pinMode(INT_1, OUTPUT);


  digitalWrite(INT_1, LOW);


  delay(200);


  // Initialize serial for output.
  SerialPort.begin(115200);
  
  // Initialize I2C bus.
  DEV_I2C.begin();


  AccGyr.begin();
  AccGyr.Enable_X();
  AccGyr.Enable_G();


  /* Feed the program to Machine Learning Core */
  /* Activity Recognition Default program */  
  ProgramPointer = (ucf_line_t *)lsm6dsox_activity_recognition_for_mobile;
  TotalNumberOfLine = sizeof(lsm6dsox_activity_recognition_for_mobile) / sizeof(ucf_line_t);
  SerialPort.println("Activity Recognition for LSM6DSOX MLC");
  SerialPort.print("UCF Number Line=");
  SerialPort.println(TotalNumberOfLine);


  for (LineCounter=0; LineCounter<TotalNumberOfLine; LineCounter++) {
    if(AccGyr.Write_Reg(ProgramPointer[LineCounter].address, ProgramPointer[LineCounter].data)) {
      SerialPort.print("Error loading the Program to LSM6DSOX at line: ");
      SerialPort.println(LineCounter);
      while(1) {
        // Led blinking.
        digitalWrite(LED_BUILTIN, HIGH);
        delay(250);
        digitalWrite(LED_BUILTIN, LOW);
        delay(250);
      }
    }
  }


  SerialPort.println("Program loaded inside the LSM6DSOX MLC");


  //Interrupts.
  pinMode(INT_1, INPUT);
  attachInterrupt(INT_1, INT1Event_cb, RISING);


  /* We need to wait for a time window before having the first MLC status */
  delay(3000);


  AccGyr.Get_MLC_Output(mlc_out);
  printMLCStatus(mlc_out[0]);
}


void loop() {
  if (mems_event) {
    mems_event=0;
    LSM6DSOX_MLC_Status_t status;
    AccGyr.Get_MLC_Status(&status);
    if (status.is_mlc1) {
      uint8_t mlc_out[8];
      AccGyr.Get_MLC_Output(mlc_out);
      printMLCStatus(mlc_out[0]);
    }
  }
}


void INT1Event_cb() {
  mems_event = 1;
}


void printMLCStatus(uint8_t status) {
  switch(status) {
    case 0:
      SerialPort.println("Activity: Stationary");
      break;
    case 1:
      SerialPort.println("Activity: Walking");
      break;
    case 4:
      SerialPort.println("Activity: Jogging");
      break;
    case 8:
      SerialPort.println("Activity: Biking");
      break;
    case 12:
      SerialPort.println("Activity: Driving");
      break;
    default:
      SerialPort.println("Activity: Unknown");
      break;
  }   
}

 

lsm6dsox_activity_recognition_for_mobile.h

/*
 ******************************************************************************
 * @file    lsm6dsox_activity_recognition_for_mobile.h
 * @author  Sensors Software Solution Team
 * @brief   This file contains the configuration for lsm6dsox_activity_recognition_for_mobile.
 *
 ******************************************************************************
 * @attention
 *
 * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
 * All rights reserved.</center></h2>
 *
 * This software component is licensed by ST under BSD 3-Clause license,
 * the "License"; You may not use this file except in compliance with the
 * License. You may obtain a copy of the License at:
 *                        opensource.org/licenses/BSD-3-Clause
 *
 */


/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef LSM6DSOX_ACTIVITY_RECOGNITION_FOR_MOBILE_H
#define LSM6DSOX_ACTIVITY_RECOGNITION_FOR_MOBILE_H


#ifdef __cplusplus
  extern "C" {
#endif


/* Includes ------------------------------------------------------------------*/
#include <stdint.h>
#ifndef MEMS_UCF_SHARED_TYPES
#define MEMS_UCF_SHARED_TYPES


/** Common data block definition **/
typedef struct {
  uint8_t address;
  uint8_t data;
} ucf_line_t;


#endif /* MEMS_UCF_SHARED_TYPES */


/** Configuration array generated from Unico Tool **/
const ucf_line_t lsm6dsox_activity_recognition_for_mobile[] = {
  {.address = 0x10, .data = 0x00,},
  {.address = 0x11, .data = 0x00,},
  {.address = 0x01, .data = 0x80,},
  {.address = 0x05, .data = 0x00,},
  {.address = 0x17, .data = 0x40,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xEA,},
  {.address = 0x09, .data = 0x08,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xEB,},
  {.address = 0x09, .data = 0x04,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xEC,},
  {.address = 0x09, .data = 0x16,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xED,},
  {.address = 0x09, .data = 0x04,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xEE,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xEF,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xF0,},
  {.address = 0x09, .data = 0x0A,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xF2,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xFA,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xFB,},
  {.address = 0x09, .data = 0x03,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xFC,},
  {.address = 0x09, .data = 0x42,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xFD,},
  {.address = 0x09, .data = 0x04,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xFE,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x11,},
  {.address = 0x08, .data = 0xFF,},
  {.address = 0x09, .data = 0x04,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x3C,},
  {.address = 0x09, .data = 0x07,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x3D,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x3E,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x3F,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x40,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x41,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x42,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x43,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x44,},
  {.address = 0x09, .data = 0x35,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x45,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x46,},
  {.address = 0x09, .data = 0x2E,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x47,},
  {.address = 0x09, .data = 0x2F,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x48,},
  {.address = 0x09, .data = 0x0F,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x49,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x4A,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x4B,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x4C,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x4D,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x4E,},
  {.address = 0x09, .data = 0xD7,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x4F,},
  {.address = 0x09, .data = 0x22,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x50,},
  {.address = 0x09, .data = 0xD7,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x51,},
  {.address = 0x09, .data = 0x26,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x52,},
  {.address = 0x09, .data = 0xD7,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x53,},
  {.address = 0x09, .data = 0x22,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x54,},
  {.address = 0x09, .data = 0x97,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x55,},
  {.address = 0x09, .data = 0xBE,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x56,},
  {.address = 0x09, .data = 0x9B,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x57,},
  {.address = 0x09, .data = 0x39,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x58,},
  {.address = 0x09, .data = 0x3F,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x59,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x5A,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x5B,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x5C,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x5D,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x5E,},
  {.address = 0x09, .data = 0x01,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x5F,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x60,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x61,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x62,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x63,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x64,},
  {.address = 0x09, .data = 0x01,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x65,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x66,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x67,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x68,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x69,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x6A,},
  {.address = 0x09, .data = 0x01,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x6B,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x6C,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x6D,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x6E,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x6F,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x70,},
  {.address = 0x09, .data = 0x02,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x71,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x72,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x73,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x74,},
  {.address = 0x09, .data = 0x02,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x75,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x76,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x77,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x78,},
  {.address = 0x09, .data = 0x02,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x79,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x7A,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x7B,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x7C,},
  {.address = 0x09, .data = 0x03,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x7D,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x7E,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x7F,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x80,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x81,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x82,},
  {.address = 0x09, .data = 0x03,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x83,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x84,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x85,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x86,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x87,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x88,},
  {.address = 0x09, .data = 0x03,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x89,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x8A,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x8B,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x8C,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x8D,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x8E,},
  {.address = 0x09, .data = 0x04,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x8F,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x90,},
  {.address = 0x09, .data = 0x66,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x91,},
  {.address = 0x09, .data = 0x36,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x92,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x93,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x94,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x95,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x96,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x97,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x98,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x99,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x9A,},
  {.address = 0x09, .data = 0x04,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x9B,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x9C,},
  {.address = 0x09, .data = 0x7B,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x9D,},
  {.address = 0x09, .data = 0x28,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x9E,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0x9F,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA0,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA1,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA2,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA3,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA4,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA5,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA6,},
  {.address = 0x09, .data = 0x0A,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA7,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA8,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xA9,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xAA,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xAB,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xAC,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xAD,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xAE,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xAF,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB0,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB1,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB2,},
  {.address = 0x09, .data = 0x0A,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB3,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB4,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB5,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB6,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB7,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB8,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xB9,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xBA,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xBB,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xBC,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xBD,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xBE,},
  {.address = 0x09, .data = 0x0A,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xBF,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC0,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC1,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC2,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC3,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC4,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC5,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC6,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC7,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC8,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xC9,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xCA,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xCB,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xCC,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xCD,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xCE,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xCF,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD0,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD1,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD2,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD3,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD4,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD5,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD6,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD7,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD8,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xD9,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xDA,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xDB,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xDC,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xDD,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xDE,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xDF,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE0,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE1,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE2,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE3,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE4,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE5,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE6,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE7,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE8,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xE9,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xEA,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xEB,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xEC,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xED,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xEE,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xEF,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF0,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF1,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF2,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF3,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF4,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF5,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF6,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF7,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF8,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xF9,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xFA,},
  {.address = 0x09, .data = 0x11,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xFB,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xFC,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xFD,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xFE,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x31,},
  {.address = 0x08, .data = 0xFF,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x00,},
  {.address = 0x09, .data = 0x11,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x01,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x02,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x03,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x04,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x05,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x06,},
  {.address = 0x09, .data = 0x1F,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x07,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x42,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x43,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x44,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x45,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x46,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x47,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x48,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x49,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x4A,},
  {.address = 0x09, .data = 0x35,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x4B,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x4C,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x01, .data = 0x00,},
  {.address = 0x12, .data = 0x00,},
  {.address = 0x01, .data = 0x80,},
  {.address = 0x17, .data = 0x40,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x4E,},
  {.address = 0x09, .data = 0x34,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x4F,},
  {.address = 0x09, .data = 0x2C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x50,},
  {.address = 0x09, .data = 0x57,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x51,},
  {.address = 0x09, .data = 0x82,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x52,},
  {.address = 0x09, .data = 0xCB,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x53,},
  {.address = 0x09, .data = 0x22,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x54,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x55,},
  {.address = 0x09, .data = 0x85,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x56,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x57,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x58,},
  {.address = 0x09, .data = 0x0E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x59,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x5A,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x5B,},
  {.address = 0x09, .data = 0x27,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x5C,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x5D,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x5E,},
  {.address = 0x09, .data = 0x6E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x5F,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x60,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x61,},
  {.address = 0x09, .data = 0xB4,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x62,},
  {.address = 0x09, .data = 0x90,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x63,},
  {.address = 0x09, .data = 0x52,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x64,},
  {.address = 0x09, .data = 0x0D,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x65,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x66,},
  {.address = 0x09, .data = 0x7C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x67,},
  {.address = 0x09, .data = 0x2F,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x68,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x69,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x6A,},
  {.address = 0x09, .data = 0x29,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x6B,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x6C,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x6D,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x6E,},
  {.address = 0x09, .data = 0xD5,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x6F,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x70,},
  {.address = 0x09, .data = 0x90,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x71,},
  {.address = 0x09, .data = 0xD2,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x72,},
  {.address = 0x09, .data = 0xC9,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x73,},
  {.address = 0x09, .data = 0x1A,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x74,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x75,},
  {.address = 0x09, .data = 0xC5,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x76,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x77,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x78,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x79,},
  {.address = 0x09, .data = 0xB4,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x7A,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x7B,},
  {.address = 0x09, .data = 0x1F,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x7C,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x7D,},
  {.address = 0x09, .data = 0xA5,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x7E,},
  {.address = 0x09, .data = 0x0E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x7F,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x80,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x81,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x82,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x83,},
  {.address = 0x09, .data = 0x4A,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x84,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x85,},
  {.address = 0x09, .data = 0xEE,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x86,},
  {.address = 0x09, .data = 0xF1,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x87,},
  {.address = 0x09, .data = 0x26,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x88,},
  {.address = 0x09, .data = 0xF0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x89,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x8A,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x8B,},
  {.address = 0x09, .data = 0x3E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x8C,},
  {.address = 0x09, .data = 0x12,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x8D,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x8E,},
  {.address = 0x09, .data = 0x2C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x8F,},
  {.address = 0x09, .data = 0x2D,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x90,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x91,},
  {.address = 0x09, .data = 0xA9,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x92,},
  {.address = 0x09, .data = 0x37,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x93,},
  {.address = 0x09, .data = 0x19,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x94,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x95,},
  {.address = 0x09, .data = 0xE5,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x96,},
  {.address = 0x09, .data = 0x0D,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x97,},
  {.address = 0x09, .data = 0xA5,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x98,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x99,},
  {.address = 0x09, .data = 0xD3,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x9A,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x9B,},
  {.address = 0x09, .data = 0x51,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x9C,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x9D,},
  {.address = 0x09, .data = 0xEC,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x9E,},
  {.address = 0x09, .data = 0xD0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0x9F,},
  {.address = 0x09, .data = 0x25,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA0,},
  {.address = 0x09, .data = 0x36,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA1,},
  {.address = 0x09, .data = 0x81,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA2,},
  {.address = 0x09, .data = 0x23,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA3,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA4,},
  {.address = 0x09, .data = 0x23,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA5,},
  {.address = 0x09, .data = 0x92,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA6,},
  {.address = 0x09, .data = 0x24,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA7,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA8,},
  {.address = 0x09, .data = 0x22,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xA9,},
  {.address = 0x09, .data = 0x89,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xAA,},
  {.address = 0x09, .data = 0x88,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xAB,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xAC,},
  {.address = 0x09, .data = 0x1A,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xAD,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xAE,},
  {.address = 0x09, .data = 0x53,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xAF,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB0,},
  {.address = 0x09, .data = 0x98,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB1,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB2,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB3,},
  {.address = 0x09, .data = 0x50,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB4,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB5,},
  {.address = 0x09, .data = 0xEC,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB6,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB7,},
  {.address = 0x09, .data = 0x49,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB8,},
  {.address = 0x09, .data = 0x20,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xB9,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xBA,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xBB,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xBC,},
  {.address = 0x09, .data = 0x1E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xBD,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xBE,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xBF,},
  {.address = 0x09, .data = 0x48,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC0,},
  {.address = 0x09, .data = 0xD8,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC1,},
  {.address = 0x09, .data = 0xCE,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC2,},
  {.address = 0x09, .data = 0x2F,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC3,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC4,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC5,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC6,},
  {.address = 0x09, .data = 0x20,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC7,},
  {.address = 0x09, .data = 0x4C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC8,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xC9,},
  {.address = 0x09, .data = 0xCE,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xCA,},
  {.address = 0x09, .data = 0xD6,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xCB,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xCC,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xCD,},
  {.address = 0x09, .data = 0xF2,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xCE,},
  {.address = 0x09, .data = 0xB4,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xCF,},
  {.address = 0x09, .data = 0x54,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD0,},
  {.address = 0x09, .data = 0x11,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD1,},
  {.address = 0x09, .data = 0xC6,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD2,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD3,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD4,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD5,},
  {.address = 0x09, .data = 0xEC,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD6,},
  {.address = 0x09, .data = 0x35,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD7,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD8,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xD9,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xDA,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xDB,},
  {.address = 0x09, .data = 0x2A,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xDC,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xDD,},
  {.address = 0x09, .data = 0x89,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xDE,},
  {.address = 0x09, .data = 0x96,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xDF,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE0,},
  {.address = 0x09, .data = 0x2E,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE1,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE2,},
  {.address = 0x09, .data = 0x70,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE3,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE4,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE5,},
  {.address = 0x09, .data = 0xB4,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE6,},
  {.address = 0x09, .data = 0x70,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE7,},
  {.address = 0x09, .data = 0x51,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE8,},
  {.address = 0x09, .data = 0x2D,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xE9,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xEA,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xEB,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xEC,},
  {.address = 0x09, .data = 0x2C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xED,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xEE,},
  {.address = 0x09, .data = 0x5D,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xEF,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF0,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF1,},
  {.address = 0x09, .data = 0xB4,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF2,},
  {.address = 0x09, .data = 0x45,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF3,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF4,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF5,},
  {.address = 0x09, .data = 0xB4,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF6,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF7,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF8,},
  {.address = 0x09, .data = 0xB0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xF9,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xFA,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xFB,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xFC,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xFD,},
  {.address = 0x09, .data = 0xF2,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xFE,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x41,},
  {.address = 0x08, .data = 0xFF,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x00,},
  {.address = 0x09, .data = 0x0C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x01,},
  {.address = 0x09, .data = 0xEE,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x02,},
  {.address = 0x09, .data = 0xDB,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x03,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x04,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x05,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x06,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x07,},
  {.address = 0x09, .data = 0x4C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x08,},
  {.address = 0x09, .data = 0xFC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x09,},
  {.address = 0x09, .data = 0xCE,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x0A,},
  {.address = 0x09, .data = 0xA6,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x0B,},
  {.address = 0x09, .data = 0x31,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x0C,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x0D,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x0E,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x0F,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x10,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x11,},
  {.address = 0x09, .data = 0xAC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x12,},
  {.address = 0x09, .data = 0x12,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x13,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x14,},
  {.address = 0x09, .data = 0x33,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x15,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x16,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x17,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x18,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x19,},
  {.address = 0x09, .data = 0xED,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x1A,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x1B,},
  {.address = 0x09, .data = 0x31,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x1C,},
  {.address = 0x09, .data = 0x4C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x1D,},
  {.address = 0x09, .data = 0xC9,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x1E,},
  {.address = 0x09, .data = 0x8A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x1F,},
  {.address = 0x09, .data = 0x31,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x20,},
  {.address = 0x09, .data = 0x5C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x21,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x22,},
  {.address = 0x09, .data = 0x78,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x23,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x24,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x25,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x26,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x27,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x28,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x29,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x2A,},
  {.address = 0x09, .data = 0x2E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x2B,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x2C,},
  {.address = 0x09, .data = 0x39,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x2D,},
  {.address = 0x09, .data = 0x92,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x2E,},
  {.address = 0x09, .data = 0x86,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x2F,},
  {.address = 0x09, .data = 0x3D,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x30,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x31,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x32,},
  {.address = 0x09, .data = 0x43,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x33,},
  {.address = 0x09, .data = 0x56,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x34,},
  {.address = 0x09, .data = 0x4D,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x35,},
  {.address = 0x09, .data = 0x86,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x36,},
  {.address = 0x09, .data = 0x72,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x37,},
  {.address = 0x09, .data = 0x34,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x38,},
  {.address = 0x09, .data = 0x42,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x39,},
  {.address = 0x09, .data = 0x89,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x3A,},
  {.address = 0x09, .data = 0x4A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x3B,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x3C,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x3D,},
  {.address = 0x09, .data = 0xC9,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x3E,},
  {.address = 0x09, .data = 0x4A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x3F,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x40,},
  {.address = 0x09, .data = 0xDC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x41,},
  {.address = 0x09, .data = 0xD5,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x42,},
  {.address = 0x09, .data = 0x2E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x43,},
  {.address = 0x09, .data = 0x55,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x44,},
  {.address = 0x09, .data = 0x3F,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x45,},
  {.address = 0x09, .data = 0x86,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x46,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x47,},
  {.address = 0x09, .data = 0x4F,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x48,},
  {.address = 0x09, .data = 0x81,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x49,},
  {.address = 0x09, .data = 0xEC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x4A,},
  {.address = 0x09, .data = 0x67,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x4B,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x4C,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x4D,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x4E,},
  {.address = 0x09, .data = 0xAF,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x4F,},
  {.address = 0x09, .data = 0xB0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x50,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x51,},
  {.address = 0x09, .data = 0xB3,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x52,},
  {.address = 0x09, .data = 0x5E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x53,},
  {.address = 0x09, .data = 0x32,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x54,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x55,},
  {.address = 0x09, .data = 0xE9,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x56,},
  {.address = 0x09, .data = 0x60,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x57,},
  {.address = 0x09, .data = 0x4D,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x58,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x59,},
  {.address = 0x09, .data = 0xCC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x5A,},
  {.address = 0x09, .data = 0x5F,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x5B,},
  {.address = 0x09, .data = 0x1C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x5C,},
  {.address = 0x09, .data = 0x48,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x5D,},
  {.address = 0x09, .data = 0xC2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x5E,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x5F,},
  {.address = 0x09, .data = 0x2A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x60,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x61,},
  {.address = 0x09, .data = 0xA1,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x62,},
  {.address = 0x09, .data = 0x60,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x63,},
  {.address = 0x09, .data = 0x26,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x64,},
  {.address = 0x09, .data = 0x6C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x65,},
  {.address = 0x09, .data = 0xC1,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x66,},
  {.address = 0x09, .data = 0xA8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x67,},
  {.address = 0x09, .data = 0x37,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x68,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x69,},
  {.address = 0x09, .data = 0xA8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x6A,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x6B,},
  {.address = 0x09, .data = 0x49,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x6C,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x6D,},
  {.address = 0x09, .data = 0xAE,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x6E,},
  {.address = 0x09, .data = 0xD6,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x6F,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x70,},
  {.address = 0x09, .data = 0x98,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x71,},
  {.address = 0x09, .data = 0xD5,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x72,},
  {.address = 0x09, .data = 0xFF,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x73,},
  {.address = 0x09, .data = 0xB0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x74,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x75,},
  {.address = 0x09, .data = 0xB3,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x76,},
  {.address = 0x09, .data = 0x57,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x77,},
  {.address = 0x09, .data = 0x35,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x78,},
  {.address = 0x09, .data = 0xBC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x79,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x7A,},
  {.address = 0x09, .data = 0x60,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x7B,},
  {.address = 0x09, .data = 0x27,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x7C,},
  {.address = 0x09, .data = 0xCC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x7D,},
  {.address = 0x09, .data = 0xC1,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x7E,},
  {.address = 0x09, .data = 0x47,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x7F,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x80,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x81,},
  {.address = 0x09, .data = 0xF2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x82,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x83,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x84,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x85,},
  {.address = 0x09, .data = 0xEC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x86,},
  {.address = 0x09, .data = 0x66,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x87,},
  {.address = 0x09, .data = 0x55,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x88,},
  {.address = 0x09, .data = 0x53,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x89,},
  {.address = 0x09, .data = 0x86,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x8A,},
  {.address = 0x09, .data = 0x02,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x8B,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x8C,},
  {.address = 0x09, .data = 0x01,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x8D,},
  {.address = 0x09, .data = 0xC5,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x8E,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x8F,},
  {.address = 0x09, .data = 0x49,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x90,},
  {.address = 0x09, .data = 0x52,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x91,},
  {.address = 0x09, .data = 0x8E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x92,},
  {.address = 0x09, .data = 0xAC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x93,},
  {.address = 0x09, .data = 0x24,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x94,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x95,},
  {.address = 0x09, .data = 0xE2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x96,},
  {.address = 0x09, .data = 0x4D,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x97,},
  {.address = 0x09, .data = 0x3A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x98,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x99,},
  {.address = 0x09, .data = 0xF2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x9A,},
  {.address = 0x09, .data = 0xDE,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x9B,},
  {.address = 0x09, .data = 0x23,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x9C,},
  {.address = 0x09, .data = 0x48,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x9D,},
  {.address = 0x09, .data = 0xC2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x9E,},
  {.address = 0x09, .data = 0x8E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0x9F,},
  {.address = 0x09, .data = 0x35,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA0,},
  {.address = 0x09, .data = 0x51,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA1,},
  {.address = 0x09, .data = 0xD5,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA2,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA3,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA4,},
  {.address = 0x09, .data = 0x61,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA5,},
  {.address = 0x09, .data = 0xCE,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA6,},
  {.address = 0x09, .data = 0xA9,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA7,},
  {.address = 0x09, .data = 0x3C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA8,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xA9,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xAA,},
  {.address = 0x09, .data = 0x7B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xAB,},
  {.address = 0x09, .data = 0x41,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xAC,},
  {.address = 0x09, .data = 0x70,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xAD,},
  {.address = 0x09, .data = 0x81,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xAE,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xAF,},
  {.address = 0x09, .data = 0x4C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB0,},
  {.address = 0x09, .data = 0x6B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB1,},
  {.address = 0x09, .data = 0x8A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB2,},
  {.address = 0x09, .data = 0xF0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB3,},
  {.address = 0x09, .data = 0x3D,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB4,},
  {.address = 0x09, .data = 0x67,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB5,},
  {.address = 0x09, .data = 0x95,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB6,},
  {.address = 0x09, .data = 0x73,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB7,},
  {.address = 0x09, .data = 0x39,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB8,},
  {.address = 0x09, .data = 0x5E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xB9,},
  {.address = 0x09, .data = 0x89,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xBA,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xBB,},
  {.address = 0x09, .data = 0x34,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xBC,},
  {.address = 0x09, .data = 0xC8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xBD,},
  {.address = 0x09, .data = 0xC9,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xBE,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xBF,},
  {.address = 0x09, .data = 0x4A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC0,},
  {.address = 0x09, .data = 0xD1,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC1,},
  {.address = 0x09, .data = 0xCE,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC2,},
  {.address = 0x09, .data = 0xA1,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC3,},
  {.address = 0x09, .data = 0x2E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC4,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC5,},
  {.address = 0x09, .data = 0xE2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC6,},
  {.address = 0x09, .data = 0xA3,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC7,},
  {.address = 0x09, .data = 0x58,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC8,},
  {.address = 0x09, .data = 0x63,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xC9,},
  {.address = 0x09, .data = 0x86,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xCA,},
  {.address = 0x09, .data = 0xDB,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xCB,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xCC,},
  {.address = 0x09, .data = 0x62,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xCD,},
  {.address = 0x09, .data = 0x82,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xCE,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xCF,},
  {.address = 0x09, .data = 0x51,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD0,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD1,},
  {.address = 0x09, .data = 0xCC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD2,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD3,},
  {.address = 0x09, .data = 0x47,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD4,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD5,},
  {.address = 0x09, .data = 0xEA,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD6,},
  {.address = 0x09, .data = 0x9D,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD7,},
  {.address = 0x09, .data = 0x3B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD8,},
  {.address = 0x09, .data = 0x81,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xD9,},
  {.address = 0x09, .data = 0xE9,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xDA,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xDB,},
  {.address = 0x09, .data = 0x5A,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xDC,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xDD,},
  {.address = 0x09, .data = 0xA6,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xDE,},
  {.address = 0x09, .data = 0x68,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xDF,},
  {.address = 0x09, .data = 0x41,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE0,},
  {.address = 0x09, .data = 0x80,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE1,},
  {.address = 0x09, .data = 0xA8,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE2,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE3,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE4,},
  {.address = 0x09, .data = 0x61,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE5,},
  {.address = 0x09, .data = 0xCC,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE6,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE7,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE8,},
  {.address = 0x09, .data = 0x81,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xE9,},
  {.address = 0x09, .data = 0xE3,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xEA,},
  {.address = 0x09, .data = 0x20,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xEB,},
  {.address = 0x09, .data = 0x4F,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xEC,},
  {.address = 0x09, .data = 0x69,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xED,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xEE,},
  {.address = 0x09, .data = 0x01,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xEF,},
  {.address = 0x09, .data = 0x3E,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF0,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF1,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF2,},
  {.address = 0x09, .data = 0x79,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF3,},
  {.address = 0x09, .data = 0x34,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF4,},
  {.address = 0x09, .data = 0xA4,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF5,},
  {.address = 0x09, .data = 0xD2,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF6,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF7,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF8,},
  {.address = 0x09, .data = 0x18,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xF9,},
  {.address = 0x09, .data = 0xEA,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xFA,},
  {.address = 0x09, .data = 0x20,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xFB,},
  {.address = 0x09, .data = 0x4F,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xFC,},
  {.address = 0x09, .data = 0xC1,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xFD,},
  {.address = 0x09, .data = 0xCA,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xFE,},
  {.address = 0x09, .data = 0x44,},
  {.address = 0x02, .data = 0x51,},
  {.address = 0x08, .data = 0xFF,},
  {.address = 0x09, .data = 0x3D,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x00,},
  {.address = 0x09, .data = 0xD1,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x01,},
  {.address = 0x09, .data = 0xD5,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x02,},
  {.address = 0x09, .data = 0xD0,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x03,},
  {.address = 0x09, .data = 0x50,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x04,},
  {.address = 0x09, .data = 0x10,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x05,},
  {.address = 0x09, .data = 0xAC,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x06,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x07,},
  {.address = 0x09, .data = 0x4B,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x08,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x09,},
  {.address = 0x09, .data = 0xAE,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x0A,},
  {.address = 0x09, .data = 0x20,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x0B,},
  {.address = 0x09, .data = 0x32,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x0C,},
  {.address = 0x09, .data = 0x41,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x0D,},
  {.address = 0x09, .data = 0xF2,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x0E,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x0F,},
  {.address = 0x09, .data = 0x4E,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x10,},
  {.address = 0x09, .data = 0x76,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x11,},
  {.address = 0x09, .data = 0x8A,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x12,},
  {.address = 0x09, .data = 0xB3,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x13,},
  {.address = 0x09, .data = 0x5D,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x14,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x15,},
  {.address = 0x09, .data = 0xA5,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x16,},
  {.address = 0x09, .data = 0xC0,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x17,},
  {.address = 0x09, .data = 0x48,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x18,},
  {.address = 0x09, .data = 0x75,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x19,},
  {.address = 0x09, .data = 0x8B,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x1A,},
  {.address = 0x09, .data = 0x00,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x1B,},
  {.address = 0x09, .data = 0x38,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x1C,},
  {.address = 0x09, .data = 0x41,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x1D,},
  {.address = 0x09, .data = 0xC3,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x1E,},
  {.address = 0x09, .data = 0xB6,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x1F,},
  {.address = 0x09, .data = 0x34,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x20,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x21,},
  {.address = 0x09, .data = 0xF2,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x22,},
  {.address = 0x09, .data = 0xBC,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x23,},
  {.address = 0x09, .data = 0x3E,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x24,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x25,},
  {.address = 0x09, .data = 0xE0,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x26,},
  {.address = 0x09, .data = 0x30,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x27,},
  {.address = 0x09, .data = 0x51,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x28,},
  {.address = 0x09, .data = 0x7B,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x29,},
  {.address = 0x09, .data = 0x8C,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x2A,},
  {.address = 0x09, .data = 0xBB,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x2B,},
  {.address = 0x09, .data = 0x43,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x2C,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x2D,},
  {.address = 0x09, .data = 0xA1,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x2E,},
  {.address = 0x09, .data = 0x2D,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x2F,},
  {.address = 0x09, .data = 0xBF,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x30,},
  {.address = 0x09, .data = 0x91,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x31,},
  {.address = 0x09, .data = 0xD3,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x32,},
  {.address = 0x09, .data = 0x60,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x33,},
  {.address = 0x09, .data = 0x4F,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x34,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x35,},
  {.address = 0x09, .data = 0xAA,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x36,},
  {.address = 0x09, .data = 0x90,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x37,},
  {.address = 0x09, .data = 0x2C,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x38,},
  {.address = 0x09, .data = 0x41,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x39,},
  {.address = 0x09, .data = 0xE3,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x3A,},
  {.address = 0x09, .data = 0xA0,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x3B,},
  {.address = 0x09, .data = 0x4F,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x3C,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x3D,},
  {.address = 0x09, .data = 0xAA,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x3E,},
  {.address = 0x09, .data = 0x12,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x3F,},
  {.address = 0x09, .data = 0x64,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x40,},
  {.address = 0x09, .data = 0x40,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x41,},
  {.address = 0x09, .data = 0xA6,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x42,},
  {.address = 0x09, .data = 0xA4,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x43,},
  {.address = 0x09, .data = 0x48,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x44,},
  {.address = 0x09, .data = 0x14,},
  {.address = 0x02, .data = 0x61,},
  {.address = 0x08, .data = 0x45,},
  {.address = 0x09, .data = 0xE1,},
  {.address = 0x01, .data = 0x80,},
  {.address = 0x17, .data = 0x00,},
  {.address = 0x04, .data = 0x00,},
  {.address = 0x05, .data = 0x10,},
  {.address = 0x02, .data = 0x01,},
  {.address = 0x01, .data = 0x00,},
  {.address = 0x12, .data = 0x44,},
  {.address = 0x01, .data = 0x80,},
  {.address = 0x60, .data = 0x15,},
  {.address = 0x01, .data = 0x00,},
  {.address = 0x10, .data = 0x28,},
  {.address = 0x11, .data = 0x00,},
  {.address = 0x5E, .data = 0x02,},
  {.address = 0x01, .data = 0x80,},
  {.address = 0x0D, .data = 0x01,},
  {.address = 0x01, .data = 0x00,}
};


#ifdef __cplusplus
}
#endif


#endif /* LSM6DSOX_ACTIVITY_RECOGNITION_FOR_MOBILE_H */

 

 

The program has 6 output classes:

  1. Stationary
  2. Walking
  3. Jogging
  4. Biking
  5. Driving
  6. Unknown

 

I found that being tethered by the USB cable made it difficult to do a real test.  I could get it to detect Stationary by setting the board on the table, but when I tried to hold it stationary I would sometimes detect Driving.  Must be the old age jitters.  I could get Walking with a slow or moderate up-down motion and Jogging with a faster motion.  I could not figure out what type of motion would get it to detect Biking.  I guess if I added a battery and a display, I could take it out for a real test.  Here's some of the output that I obtained.

 

I was trying to do a video demo, but I think I had a resource issue with the video capture program and crashed the computer - even had to do a recovery of my C drive .

 

Here's what I captured before the crash.  I got to the point of trying to get it to register "Jogging".  I think you can get the sense of the flow, so I'll skip trying to do it again.

 

 

I came across an interesting article that Qeexo, a TinyML platform developer, is collaborating with STMicro to create models for the MLC sensors using AutoML  https://www.prweb.com/releases/qeexo_collaborates_with_st_to_automate_machine_learning_on_machine_learning_core_mlc_sens… .

 

The platform seems more focused on commercial applications, but hopefully they'll see value in offering a free "Community" edition.  Having an online platform to develop models will make this feature much more attractive.  I already have a project where this would reduce my hardware complexity and improve efficiency - if I could get sufficient accuracy...  I think this is a case where waiting for the technology to develop makes sense.  Maybe other ML SaaS companies will pick this up.