Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 449a576

Browse files
authoredApr 8, 2020
ASL model
American sign language model created using bit.ly/dnnCompiler and converted to inference application for arduino nano 33 ble sense.
1 parent 310b731 commit 449a576

File tree

1 file changed

+237
-0
lines changed

1 file changed

+237
-0
lines changed
 

‎examples/asl_model.cpp

Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
// Copyright 2018 The AITS DNNC Authors.All Rights Reserved.
2+
//
3+
// Licensed to the Apache Software Foundation(ASF) under one
4+
// or more contributor license agreements.See the NOTICE file
5+
// distributed with this work for additional information
6+
// regarding copyright ownership.The ASF licenses this file
7+
// to you under the Apache License, Version 2.0 (the
8+
// "License"); you may not use this file except in compliance
9+
// with the License.You may obtain a copy of the License at
10+
//
11+
// http://www.apache.org/licenses/LICENSE-2.0
12+
//
13+
// Unless required by applicable law or agreed to in writing,
14+
// software distributed under the License is distributed on an
15+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16+
// KIND, either express or implied.See the License for the
17+
// specific language governing permissionsand limitations
18+
// under the License.
19+
//
20+
// This file is part of AITS arduino library maintained at
21+
// https://github.com/ai-techsystems/arduino
22+
//
23+
// Description:
24+
// American sign language model created using
25+
// bit.ly/dnnCompiler and converted to inference application
26+
// for arduino nano 33 ble sense
27+
//
28+
// Compile: /home/aits/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/bin/arm-none-eabi-g++ -c asl_model.cpp -O3 -Wall -DARDUINO -std=c++17 -I../src -I ../src/Eigen
29+
30+
#if defined(ARDUINO)
31+
#include <Arduino_LSM9DS1.h>
32+
#include "deepC.h"
33+
#endif
34+
35+
#include "operators/Constant.h"
36+
#include "operators/Reshape.h"
37+
#include "operators/Gemm.h"
38+
#include "operators/Relu.h"
39+
#include "operators/LogSoftmax.h"
40+
41+
using namespace dnnc;
42+
43+
const PROGMEM float dnnc_fc1_dot_bias_data[] = {-0.003086,-0.031912,0.020685,-0.013325,-0.194618,-0.022973,0.014909,-0.002588} ;
44+
const PROGMEM float dnnc_fc1_dot_weight_data[] = {-0.032454,-0.001272,0.008641,-0.006489,-0.023102,-0.036012,0.005478,0.013771,-0.024812,-0.018680,0.014935,0.005329,-0.034026,0.019022,0.027711,-0.019888,0.006849,0.014838,-0.000136,-0.007951,0.028350,-0.011319,0.028989,0.034000,-0.037214,0.016693,0.021017,0.032770,-0.003250,0.024564,-0.028826,-0.022426,-0.015963,-0.010576,-0.001947,0.012400,0.000789,0.003056,0.004671,-0.019526,0.007111,0.014838,-0.032418,0.018718,0.019690,-0.032526,0.005019,0.013165,0.029781,0.019128,0.015409,-0.033695,0.019100,0.034198,0.036067,0.021445,-0.029391,0.012233,-0.031593,0.007091,-0.006577,-0.030889,-0.031718,0.002048,0.029727,-0.017469,-0.036401,-0.022124,0.012935,-0.007780,-0.034908,-0.004532,-0.014931,0.027741,-0.016593,-0.018263,0.014046,-0.025060,-0.007010,-0.003473,0.033666,0.003382,-0.003354,-0.011075,0.017253,0.006109,0.001112,-0.030743,-0.036457,0.002560,-0.033092,0.025220,0.002481,0.003301,0.025230,0.012707,0.018147,0.007236,-0.033868,0.018727,-0.037515,0.034496,-0.021814,0.025782,0.000676,0.000520,-0.013276,-0.026623,-0.022666,-0.016307,0.012941,0.018176,0.021447,-0.035205,-0.009931,0.026208,-0.022618,-0.027258,0.023223,0.015192,-0.017414,-0.020033,-0.034147,0.003344,0.020999,-0.030865,0.002672,0.022257,0.027796,0.022740,0.018340,-0.016997,0.007682,0.022877,-0.019495,0.024538,-0.000521,-0.037609,-0.030255,-0.012682,-0.035363,0.031846,-0.017413,-0.006453,0.033160,-0.010018,0.025843,-0.032984,-0.005783,-0.020769,0.019184,0.005809,0.031939,-0.035944,-0.008724,0.007413,0.016515,0.012421,-0.014844,0.030266,-0.013359,0.027581,-0.037302,0.031733,0.036059,-0.028784,0.027104,0.008935,-0.000977,-0.020083,0.013986,0.035741,0.004797,0.035439,0.012862,0.015616,-0.007735,0.015144,-0.024016,0.004516,-0.008074,0.031391,0.021993,0.021685,-0.015297,-0.009449,-0.022313,0.019218,0.027914,-0.024069,-0.004137,-0.029114,-0.036973,0.018613,0.028741,0.012048,0.017368,-0.002220,-0.030616,-0.026906,-0.036966,0.015762,-0.031518,-0.033796,0.026314,0.010845,0.001500,-0.035487,-0.026350,-0.002534,-0.032162,-0.014732,-0.014576,-0.021211,0.006941,-0.016070,-0.026008,-0.011586,0.007895,0.011684,0.027917,-0.031524,0.031466,0.030304,-0.008420,0.013847,-0.025233,0.024259,-0.009914,-0.017106,-0.030793,-0.025197,-0.012111,0.016385,-0.019945,0.015486,0.017611,-0.036988,0.017970,0.008306,0.013316,-0.037445,0.001589,0.019480,0.000143,0.025182,-0.028710,0.007683,0.034194,-0.016638,0.009453,0.009205,-0.024085,0.015591,0.017723,-0.011065,0.024539,-0.003556,0.009704,0.022913,0.025758,-0.015882,0.011939,0.003679,0.020549,-0.003581,0.010748,0.036279,0.023052,0.017261,0.032858,0.019771,-0.018544,0.020471,0.035618,0.035555,-0.019173,-0.038571,-0.010144,0.035233,0.013439,0.024538,0.014741,0.018068,0.033965,-0.008652,0.008126,0.022573,-0.036460,0.005969,0.009087,-0.026834,-0.011902,0.008898,0.008591,-0.005841,-0.020597,0.028192,-0.006561,-0.024455,-0.010624,0.014709,-0.005588,-0.001545,0.010001,0.028503,0.008318,-0.026806,0.017453,-0.015965,0.015775,0.032640,0.020851,-0.008941,0.011057,-0.020709,0.025648,-0.014997,0.027036,-0.007986,0.034321,-0.036228,-0.025081,0.036283,-0.030407,-0.037630,-0.023490,-0.025813,0.029670,-0.000915,0.030659,0.030054,-0.001242,0.003249,0.025441,0.012346,-0.022450,0.030932,-0.016634,0.010299,0.003893,-0.013433,0.031704,-0.012524,0.013923,0.003061,-0.034418,0.024270,-0.003127,0.027196,-0.006727,0.012072,-0.034821,0.019365,0.003922,-0.022643,0.034256,0.001015,0.029272,0.017154,0.033627,-0.029596,-0.036178,-0.012818,-0.008847,-0.031680,0.011969,-0.026790,-0.032962,0.026362,-0.027415,0.004201,0.018307,-0.022895,-0.006356,-0.016992,-0.003830,-0.004044,0.035890,0.027158,-0.013339,-0.029547,0.004223,-0.006029,-0.030274,-0.021355,0.001821,-0.002339,0.017999,0.035317,-0.022966,-0.032722,0.021057,0.017144,-0.028226,0.012198,-0.027469,0.025848,-0.027617,0.031560,-0.010250,-0.018847,0.028594,0.002760,-0.034134,-0.019127,-0.036067,0.010991,-0.020538,0.019454,0.010900,-0.007578,0.007783,-0.004455,-0.028385,-0.004738,-0.020790,0.025771,0.030747,-0.004733,-0.001462,0.036879,0.036492,-0.011824,-0.024677,0.025765,0.002308,0.002963,-0.032383,0.032405,-0.003684,-0.011993,0.033437,0.001799,-0.037760,0.030113,0.027214,0.034253,0.020733,0.025159,-0.012619,-0.036577,-0.022221,0.000494,-0.012080,-0.034933,-0.033571,-0.004595,0.016639,-0.027553,-0.011783,-0.000980,0.025905,-0.013984,0.010696,-0.035644,0.018711,-0.011786,-0.031497,0.007987,0.006156,-0.000647,-0.000701,-0.033999,-0.036747,0.014919,0.028719,0.019069,-0.001896,0.019530,0.011397,-0.019463,-0.036458,-0.000020,-0.000738,0.009158,-0.020285,0.022739,-0.015319,-0.015875,0.006871,-0.019779,-0.006975,0.011861,0.008024,-0.023533,-0.020233,0.007728,-0.025377,0.012528,-0.000620,0.025967,-0.033885,-0.031105,0.009854,-0.014442,-0.022924,-0.030282,-0.027867,0.032349,0.032938,-0.037729,-0.032582,-0.001487,-0.000423,-0.031177,-0.023787,0.004017,-0.028384,-0.014074,0.014392,0.031951,0.004184,0.027391,0.032694,0.006403,0.032110,0.028784,0.016103,-0.016795,-0.013590,-0.032654,0.019464,0.018693,0.031455,0.014102,0.000205,0.016123,0.014403,0.012593,0.000524,0.024546,0.027771,-0.002988,-0.014460,-0.033497,-0.027054,0.001038,0.019301,0.004851,0.034793,-0.013561,-0.018078,-0.006746,-0.030338,0.002701,-0.033938,-0.010886,0.019390,-0.031627,-0.007668,0.013005,0.011764,0.015826,-0.019950,-0.033377,0.024710,0.012631,-0.028748,-0.035087,0.006785,-0.031582,-0.030138,-0.035251,-0.030469,-0.022396,0.010618,0.023600,-0.029222,-0.031194,-0.022393,-0.014431,0.026268,-0.021487,-0.007161,0.033307,0.011036,-0.003610,-0.006178,-0.023068,-0.032552,0.033248,-0.030596,0.017615,0.008613,0.024065,0.007893,-0.028837,-0.024334,0.003887,-0.028812,0.032572,0.000749,-0.028535,-0.038020,0.027355,0.034010,0.029544,-0.010374,-0.026454,-0.019794,-0.006978,-0.010631,-0.032318,0.007033,-0.006822,-0.007017,0.025114,0.035400,0.031497,-0.007395,0.014836,-0.033698,-0.011759,0.036270,-0.022425,-0.024686,-0.005634,0.031545,0.000319,-0.038086,0.000316,0.027769,-0.000754,-0.035216,0.008101,-0.033086,-0.034447,-0.010430,0.034797,0.004926,-0.022527,0.016668,0.022231,0.032561,0.035838,0.019075,-0.035053,-0.003135,-0.010662,-0.021862,0.036058,0.024146,-0.018130,-0.014317,-0.017708,0.030852,-0.025496,-0.002959,0.018984,0.027147,0.003739,0.010083,0.024314,-0.003792,-0.024226,-0.038051,0.036742,0.005503,0.021039,0.013414,0.004229,0.016368,-0.016493,-0.033073,-0.013896,0.035563,0.033772,0.022086,-0.001824,0.008502,-0.030544,0.030376,0.028936,-0.016632,-0.011642,-0.009404,0.005853,-0.012494,0.031508,0.014122,0.013983,-0.014702,0.028536,-0.019132,0.003296,0.033947,0.010950,-0.017510,-0.027945,-0.027017,-0.005549,-0.013604,0.028660,0.031756,-0.006476,-0.029691,-0.021639,0.018236,-0.001090,-0.033932,0.020449,0.005474,0.035343,0.021818,0.020564,0.007541,-0.011864,-0.027481,-0.033813,0.027846,0.031764,-0.027053,0.026620,-0.023515,0.002923,-0.027736,0.017073,0.022800,0.029479,0.032221,0.028571,0.028619,0.008381,-0.032262,-0.020509,-0.008843,-0.016552,-0.018818,0.010196,0.012119,-0.033974,-0.034677,-0.028459,-0.036851,-0.036038,-0.027407,0.016960,-0.019909,-0.032682,-0.007071,0.003402,0.034470,-0.036297,-0.020476,-0.027844,-0.036168,-0.037190,0.005059,0.002431,0.019036,0.022406,-0.009277,-0.029366,0.021047,0.018713,0.018625,-0.029561,-0.002977,-0.010862,-0.000323,-0.021981,-0.033341,0.014393,0.005724,-0.011903,0.012578,-0.007009,-0.018940,-0.002117,-0.031674,-0.002027,0.027826,0.008772,-0.020063,-0.006994,-0.024266,0.034418,-0.036680,-0.002676,0.018229,0.004768,-0.002920,-0.028611,-0.031567,0.032600,-0.010649,-0.012624,0.013172,0.020328,-0.020052,-0.017044,-0.032683,0.010460,-0.027885,0.015856,0.017085,-0.021987,0.028887,-0.009897,0.009786,0.016931,0.033312,-0.023894,0.024752,-0.005530,-0.004897,0.034950,0.009717,0.026015,-0.005325,-0.027349,0.016324,-0.002774,0.002335,0.030133,-0.018561,0.027568,0.011658,0.017557,-0.018670,-0.011053,-0.007000,-0.028433,0.007154,-0.036683,-0.012964,0.037136,-0.001253,0.026643,-0.035623,0.008546,0.022848,0.031880,0.006735,0.027655,-0.018375,0.008611,-0.004367,0.015931,0.030652,-0.024338,-0.037466,-0.030593,0.032579,-0.035771,-0.010385,-0.034690,-0.003584,0.027967,0.017133,0.023328,0.032904,-0.025188,-0.034645,0.021408,0.017645,0.003182,-0.032591,0.009831,0.026925,0.036442,0.024256,0.032047,-0.025248,-0.023576,-0.023981,-0.003572,-0.026053,0.009933,0.034015,-0.005780,0.028281,0.028333,0.029166,0.036866,-0.022793,-0.031388,-0.014570,-0.009307,0.009084,0.020346,0.025793,0.021032,-0.027406,0.035673,0.034939,-0.007144,0.016370,0.030624,0.016639,-0.000088,-0.035998,0.017086,-0.032488,0.021175,-0.005694,0.007812,-0.019362,-0.010824,-0.020592,-0.029009,0.004391,-0.029560,0.030030,0.005263,0.009146,0.019853,0.012018,0.028984,0.008124,0.013475,0.027983,-0.022671,-0.035183,-0.034842,-0.023461,0.018350,0.005929,0.014107,0.024315,0.002392,-0.027056,-0.031605,-0.022058,-0.031154,-0.014283,0.014398,0.019980,0.013533,0.006560,-0.024844,-0.008691,0.013553,0.036151,0.016606,-0.024216,-0.024703,-0.033814,0.002460,0.001608,-0.026827,-0.028218,-0.026113,-0.011694,-0.020265,-0.004736,-0.027178,-0.030485,0.025892,0.029256,0.033515,-0.001268,-0.004458,-0.015797,-0.000422,0.002788,-0.019576,-0.015508,-0.025987,-0.018723,-0.016378,-0.012429,0.024768,-0.010314,0.005370,0.027681,-0.033908,0.019027,-0.008235,0.022526,-0.033828,0.013924,-0.023326,-0.004559,0.028809,0.022147,0.005585,0.007127,0.008271,-0.028022,-0.010540,0.008061,0.029937,0.031780,0.019701,0.004263,-0.033654,-0.032432,0.004095,0.037159,-0.005351,-0.009174,0.028558,-0.014817,-0.011777,0.009666,0.026774,0.021760,0.017162,-0.033388,0.020293,-0.028341,-0.030833,0.019584,0.033177,0.034026,0.001544,0.031119,-0.017916,-0.033396,-0.005281,-0.017835,-0.013408,0.004164,0.027365,0.023513,-0.035169,0.012737,0.030931,0.005715,-0.014556,0.004455,-0.023856,-0.014529,-0.021040,-0.036811,-0.034683,-0.027608,-0.025249,-0.018728,0.034947,0.023519,0.022335,0.008408,-0.014700,0.018756,-0.021852,0.009222,0.008852,0.035665,0.004677,-0.021266,0.004639,0.027092,0.009272,-0.022322,0.007921,-0.009659,-0.016944,-0.003879,0.016182,0.030816,-0.004128,0.015553,-0.025149,-0.023290,0.006836,0.015910,-0.029799,0.015504,-0.007960,-0.018544,0.026105,0.011405,-0.022916,0.016454,-0.024362,0.034415,0.028067,0.030913,0.021395,-0.013468,0.007298,-0.022833,0.023376,-0.014627,-0.008783,-0.030376,0.021529,0.034843,0.032166,-0.016808,0.034342,0.034349,0.022810,-0.006550,0.005183,0.032121,0.021601,0.009051,-0.020390,0.035932,0.024228,-0.012358,0.029177,0.009211,0.007953,0.003297,-0.009157,0.027532,0.020507,-0.022773,-0.029071,-0.008842,-0.023670,0.036181,0.011025,-0.017011,0.007239,-0.006135,0.023014,-0.024145,0.008212,-0.006026,0.034662,-0.024326,-0.009096,0.005976,0.004995,-0.020837,-0.013022,-0.014159,0.017481,0.007824,0.027590,0.018414,0.034834,-0.031037,0.022090,0.006199,-0.001496,0.029780,-0.036618,-0.015826,-0.026923,0.013057,-0.024457,-0.016064,0.006230,-0.017019,0.028684,0.032215,-0.013498,-0.011403,-0.026820,-0.003704,0.015187,-0.006771,0.029681,0.021321,0.033644,-0.016286,0.028715,0.024841,-0.020892,-0.027684,-0.031339,0.000592,0.021713,-0.015184,-0.016573,-0.012793,-0.023237,0.016876,0.036427,-0.024866,0.011034,0.005632,0.019260,0.010977,0.025629,-0.011888,0.034110,-0.012319,-0.035153,0.020715,-0.009419,-0.017301,0.014598,0.015892,-0.034017,0.030880,0.025271,0.002317,-0.013247,-0.035029,0.027244,-0.037016,-0.037011,0.026380,-0.008881,-0.026869,0.027906,0.005706,-0.025625,0.013687,0.035474,-0.000666,0.029108,-0.023079,-0.034655,0.016911,0.007969,0.010852,0.007632,-0.032751,0.002586,-0.014751,-0.006340,-0.017712,0.024089,-0.027428,0.025451,-0.035979,0.013263,-0.004500,0.007768,-0.017719,-0.032970,0.020720,0.003798,-0.031208,0.013871,-0.035227,-0.015484,0.011280,-0.019128,-0.031088,-0.006396,0.017490,0.036985,-0.025708,0.019973,-0.018021,-0.007553,0.006003,0.022541,-0.008698,-0.020773,-0.005340,-0.007885,0.023730,0.001677,0.009561,-0.002848,0.009369,0.033325,0.021772,0.032326,0.017998,-0.022975,0.027933,0.018034,0.015035,-0.011108,0.016647,-0.016744,0.008047,0.010148,-0.001953,-0.025206,0.028563,0.009839,-0.034124,-0.004585,0.033646,-0.025537,-0.026587,0.020404,-0.007745,0.027760,-0.023695,-0.033257,0.031599,0.033512,0.016675,0.001799,-0.000978,-0.035811,-0.026804,0.002095,0.023663,0.025926,0.013262,0.014695,-0.005589,-0.007940,-0.007011,0.001307,0.005041,-0.033892,0.013347,0.027783,0.006588,-0.013237,-0.013100,-0.010083,-0.017999,0.011409,0.020820,0.022936,-0.000854,-0.001959,0.016751,0.010857,0.024278,-0.017780,0.000753,-0.001257,0.003112,-0.007816,-0.029079,0.022582,-0.022792,-0.014402,-0.015522,-0.028415,-0.030743,0.022546,0.010970,0.035861,0.018546,0.022942,0.016717,0.029520,-0.016913,-0.002612,-0.031377,-0.031586,-0.026325,-0.022013,0.020570,-0.018232,0.005312,-0.014921,-0.008608,-0.004159,-0.031907,0.013909,0.014091,0.026857,-0.029302,-0.028657,-0.009712,-0.008097,-0.014325,0.027794,-0.017229,0.003761,-0.008160,0.024794,-0.008468,-0.018421,-0.004073,-0.001483,-0.002266,0.022556,-0.003506,0.007473,0.019041,0.033490,0.031774,0.004061,-0.008330,0.031747,0.001122,0.029174,-0.007179,-0.015136,-0.028487,-0.017523,-0.025781,-0.003538,-0.010795,0.032882,0.031490,-0.010046,-0.017118,0.034919,0.030286,-0.020202,0.002120,0.017835,0.000035,0.008754,-0.016472,-0.031505,-0.005736,0.026494,-0.021640,-0.028120,-0.016519,-0.026866,0.015228,-0.006409,0.022655,-0.037518,0.020585,0.035011,-0.021423,0.019498,0.024559,0.023411,-0.000897,-0.025082,-0.021537,-0.030085,0.001919,0.018272,0.036266,0.013638,-0.004553,0.003004,0.027741,0.012852,-0.001453,-0.029073,-0.026574,0.011088,-0.024200,0.009373,-0.029411,-0.030618,-0.032943,-0.013053,0.015617,-0.025271,0.028117,-0.021911,-0.032583,-0.005339,0.021856,-0.023333,-0.005523,0.011079,0.023881,-0.005263,-0.017391,0.017794,0.010348,0.017561,-0.023709,0.030377,-0.001084,0.013291,-0.026508,0.023397,-0.020179,-0.024421,-0.034606,0.029290,-0.027244,-0.006634,0.010102,-0.013452,-0.022026,0.005724,0.005078,-0.005612,0.008646,0.002048,-0.005180,0.002098,0.017386,-0.026690,-0.020158,0.006834,0.002287,-0.021181,-0.009862,0.036111,-0.000295,0.018669,0.004605,0.013537,-0.002505,0.004939,0.018053,-0.015013,-0.032519,-0.009813,-0.000755,0.030519,-0.027150,-0.036303,-0.027037,-0.010409,-0.021320,-0.002082,0.016906,-0.019661,-0.020109,-0.001095,0.006902,0.017809,-0.022111,0.023613,-0.019914,0.015638,0.008342,0.020878,0.022325,0.003235,-0.004192,-0.007037,-0.031902,0.026766,0.024141,-0.007145,0.004047,0.000909,0.007714,0.028978,-0.009336,-0.017110,-0.027810,-0.035457,0.018934,0.024648,-0.020501,-0.037051,0.006612,-0.009931,0.002270,-0.012919,0.009432,0.007978,-0.017262,0.025766,-0.000009,-0.001362,0.005248,-0.023719,0.026009,-0.016207,-0.001053,-0.018380,-0.016235,0.013617,0.036218,0.024855,-0.004048,0.016863,0.012072,0.019727,-0.001314,0.020015,-0.008375,-0.019564,0.020932,0.007732,0.015618,-0.011930,0.033711,-0.031090,0.019837,0.004534,-0.021504,-0.017762,0.015398,0.036184,-0.031919,-0.033064,-0.022072,0.000481,-0.009615,-0.023376,-0.003944,0.003251,-0.007829,-0.013499,0.012333,0.030333,-0.035385,0.012463,0.007185,-0.014716,-0.037170,0.034470,0.020474,-0.018892,-0.009090,-0.028274,0.025433,-0.009049,-0.034899,-0.035951,0.009015,0.021504,-0.007271,-0.023438,-0.021319,-0.026919,0.031875,0.016754,0.028414,0.031032,0.014696,0.023379,-0.011888,-0.022199,-0.033370,-0.004035,0.020415,0.027701,-0.018075,0.000783,-0.020440,0.007633,-0.023888,0.009909,0.027705,0.027284,-0.015447,-0.019670,-0.003022,-0.023845,0.004437,0.036133,0.005387,-0.027335,-0.021596,-0.019202,-0.009024,-0.001303,-0.034615,0.006465,-0.027070,-0.008753,-0.005674,-0.005816,0.026446,-0.034880,0.031506,0.031208,0.018543,0.028257,-0.014583,-0.020810,-0.005104,-0.025077,0.004452,0.030964,-0.036572,0.035602,0.028087,0.001785,-0.014083,0.001544,-0.035889,0.011850,-0.019243,-0.035229,-0.000054,0.021301,0.010807,0.020105,0.016720,-0.013274,0.028729,0.015257,0.010454,-0.002838,0.003294,0.022161,0.029898,0.029352,0.010556,-0.029088,0.011450,0.022809,0.012034,-0.028210,-0.020464,-0.012063,-0.008036,-0.000719,0.035213,-0.017044,-0.005719,-0.033413,-0.005764,0.004248,0.022296,0.017550,-0.002408,-0.034121,-0.026128,-0.002181,-0.025501,0.005946,-0.020826,0.005457,-0.010743,0.025018,-0.033798,0.023698,-0.008419,-0.020638,0.005137,-0.019514,0.031466,0.002408,-0.017953,-0.017016,-0.037298,0.032032,0.035301,-0.000829,0.000345,0.036659,-0.014876,-0.012002,0.008613,-0.025587,-0.027013,0.002167,0.025521,0.004197,0.009529,-0.020397,-0.030387,0.023192,0.036437,-0.003908,-0.015780,-0.021543,-0.027103,0.001187,-0.026674,-0.031319,-0.024233,0.011208,0.023956,-0.034429,0.000197,0.017904,0.009801,0.005053,-0.036827,-0.022448,0.027268,-0.029146,-0.017625,0.007982,0.007926,-0.035904,0.009309,-0.000144,-0.034960,-0.013573,-0.025260,0.010449,-0.011906,0.010846,-0.018191,0.029756,0.027923,0.027975,0.008504,-0.034616,-0.031333,0.011845,-0.018396,-0.022013,0.010232,0.023927,0.033017,-0.024877,-0.009980,0.014601,-0.010726,-0.034650,0.001617,0.000681,0.003837,-0.018785,0.010868,0.027747,-0.019491,-0.033348,-0.029823,0.001169,0.035617,-0.033527,0.024565,-0.031451,0.033585,-0.011995,-0.023429,-0.006785,-0.034065,0.016556,0.010191,0.033822,0.007830,0.028687,-0.019099,0.022497,0.001322,0.015000,-0.003297,-0.032418,0.023838,-0.029110,-0.002463,-0.004324,-0.001014,0.034742,-0.012572,0.030878,-0.017652,0.031767,0.026429,0.000502,-0.010386,0.026926,-0.015103,0.016243,-0.032511,-0.020626,-0.011419,0.029611,-0.034105,-0.012785,0.020505,-0.018178,-0.032333,0.010404,-0.037311,0.029089,-0.036297,-0.001723,0.031958,-0.001543,-0.010171,0.013331,0.006212,-0.000633,-0.007339,0.005608,0.004215,-0.017064,-0.002969,-0.022364,0.034258,-0.036588,0.032908,0.019108,0.033978,0.003067,-0.026633,-0.003050,0.021825,0.012660,0.033768,-0.014602,-0.011587,-0.024473,-0.034724,-0.033349,0.023172,0.003258,0.008942,-0.010174,-0.036413,-0.019529,0.017810,0.026707,-0.023497,-0.011012,-0.035468,0.006018,0.010828,0.035728,-0.004712,-0.012023,0.000151,0.032689,0.011165,0.002857,-0.001244,-0.012926,0.006993,0.026458,0.012910,-0.011570,-0.002557,0.030238,-0.015100,-0.020761,-0.030737,0.020189,-0.020343,-0.036910,0.021614,-0.025787,-0.033087,-0.000713,-0.035934,0.013000,-0.017531,-0.013324,-0.011124,-0.005778,0.019162,0.030393,-0.011477,0.014059,-0.035574,-0.015199,0.029938,0.008309,-0.007811,0.032505,0.018310,-0.024754,-0.015795,0.032291,-0.021463,-0.017650,-0.021846,0.027704,0.026223,0.024241,-0.030704,0.008561,0.028195,-0.037041,-0.035111,-0.004269,0.010472,-0.037231,-0.031083,-0.007086,0.023265,-0.032925,-0.034974,-0.018756,-0.024450,-0.011979,0.032150,-0.018899,0.019900,0.021114,-0.022851,-0.001198,0.034681,-0.005300,-0.006479,0.002409,0.006199,0.001242,-0.011567,-0.012345,0.023110,0.008921,0.023963,-0.010532,-0.013074,-0.010350,-0.005773,0.018528,0.017032,-0.007167,0.018294,0.003714,0.027567,-0.018663,0.031627,-0.018098,0.016002,0.030134,-0.020533,-0.019637,0.025691,0.025958,0.004882,0.021823,0.029074,-0.014527,-0.020409,0.000222,-0.014871,-0.010774,-0.006361,0.027761,-0.018186,-0.011208,0.031742,0.018033,0.007511,0.012912,0.009654,0.006104,0.004257,-0.002112,-0.014299,-0.001160,-0.002605,0.006216,-0.013461,-0.005872,0.016832,0.015454,0.026696,0.024528,-0.036797,0.025842,-0.008884,-0.016290,0.025289,-0.023487,0.022660,0.007232,-0.014695,0.000086,0.006187,-0.004967,0.009142,0.024993,-0.003851,0.009753,-0.009151,0.014553,0.021462,0.027026,-0.009137,-0.012012,0.000793,0.033356,-0.000524,0.018433,0.006030,0.037066,0.003557,-0.021927,0.018476,-0.003109,0.000978,0.023099,0.035791,-0.015984,0.001210,-0.035827,-0.033454,0.006961,-0.027754,0.032659,0.013063,-0.012817,-0.003793,-0.007661,-0.002464,0.026900,0.035961,0.032345,0.003952,0.003450,0.032854,0.027076,-0.021315,-0.026916,0.021758,0.006123,-0.011267,-0.031294,-0.004109,0.019237,0.032986,-0.036665,0.009461,-0.029733,0.025662,0.033010,0.007262,-0.029772,-0.035952,-0.028824,0.001011,0.033443,0.028638,0.031686,0.021226,0.023747,0.004325,0.007864,0.026163,0.026567,-0.019367,-0.014766,-0.000180,-0.031843,0.004642,0.012919,-0.008270,0.029182,-0.036780,-0.016909,-0.012998,0.000273,-0.014455,0.017840,0.009384,-0.037075,-0.031251,-0.017749,-0.027360,-0.025158,-0.007115,0.015885,0.032124,0.034287,0.000001,-0.007843,0.019196,0.024089,-0.001036,-0.009982,-0.013872,0.012298,0.028534,0.028807,0.030308,0.004022,-0.000855,0.032549,-0.010896,-0.020754,-0.020561,0.020409,-0.007348,0.018536,-0.024073,0.017398,-0.012376,-0.017823,-0.029844,0.010703,0.011314,0.033669,0.026272,-0.030610,-0.030083,0.028418,-0.012847,-0.024480,0.002109,0.019294,0.033781,-0.003118,-0.032030,0.009209,0.032083,0.015932,-0.009078,-0.009271,-0.025704,-0.035956,0.020785,-0.028513,0.009668,0.027115,0.022199,0.011740,-0.015664,-0.035538,0.019689,0.029160,0.036122,-0.019200,0.036196,0.005846,-0.029046,-0.000409,-0.009900,-0.014477,0.025463,-0.008149,-0.030131,-0.032457,0.015111,-0.028189,0.010799,0.004439,-0.003384,0.035782,-0.002324,0.015166,-0.019942,-0.019317,0.003543,-0.006421,-0.016249,-0.029335,-0.029778,0.015760,-0.012180,-0.012999,-0.033153,0.013781,0.002086,-0.013982,0.003124,-0.010914,0.016785,-0.011202,-0.032478,0.031913,0.015621,0.004924,-0.027019,0.030994,0.035857,-0.009543,-0.036411,0.036635,-0.016111,-0.011330,0.025475,-0.022898,-0.033809,0.024811,0.019772,0.018268,-0.026021,-0.001343,0.002503,0.009562,0.004543,-0.001582,-0.023816,-0.010144,-0.020162,0.000140,0.013078,-0.017030,-0.026856,-0.005932,-0.034201,0.011960,0.031341,-0.012640,0.036269,0.017944,0.003608,-0.037204,-0.020439,0.026682,-0.027866,-0.007842,0.021468,-0.000773,0.024407,-0.005672,-0.030083,-0.024441,0.034065,-0.001379,0.012808,-0.036143,0.014773,0.007422,-0.016059,-0.001387,-0.030467,-0.036169,-0.031911,-0.013829,-0.005241,-0.010233,-0.028191,-0.033113,0.030537,-0.016677,-0.026110,0.032618,0.034703,0.016807,0.031965,-0.033676,0.036505,-0.033770,0.017816,-0.019258,0.017758,-0.007946,-0.009430,0.004865,0.005353,-0.028401,-0.022283,-0.023469,-0.022878,-0.016012,-0.018559,0.011913,-0.026482,-0.036417,0.005560,-0.012314,0.013435,-0.022857,-0.028015,-0.005010,-0.021679,0.011661,-0.028714,-0.033875,0.032899,0.019383,0.012710,0.012927,0.016008,-0.036933,-0.003559,-0.021889,0.033874,0.008410,-0.000494,-0.033736,0.025679,-0.024712,0.007279,0.005168,-0.030830,-0.032168,0.029699,0.035961,0.016255,0.016814,0.034419,-0.002803,0.016847,-0.029481,0.000061,-0.021088,-0.001318,-0.026199,-0.026980,-0.019178,-0.006927,0.032351,-0.024409,-0.004609,0.025442,-0.022252,0.006653,-0.011914,-0.025030,0.020491,-0.029385,-0.009229,0.017168,-0.028787,-0.006194,0.029778,0.002542,-0.004772,0.013447,-0.023839,-0.003449,-0.013378,-0.010582,0.036901,-0.012756,0.021408,0.033741,-0.020613,-0.011056,-0.000163,-0.015498,-0.004758,-0.033774,0.020885,-0.007692,-0.022244,0.022623,-0.028817,0.000895,-0.026606,0.000593,-0.017277,0.027671,-0.019709,0.021523,-0.012953,-0.025368,-0.034009,0.018309,0.003705,-0.001739,0.025712,0.006289,0.035562,-0.017486,0.009905,0.029754,0.025330,-0.031061,-0.004836,0.016172,0.012924,-0.037010,-0.004038,-0.021722,0.014249,0.011156,0.007061,-0.034608,-0.028258,-0.013087,-0.005168,-0.018054,-0.035286,0.025904,-0.021903,0.011040,0.004750,0.030978,-0.005044,-0.019372,-0.029589,-0.010854,-0.000031,-0.019358,0.018030,-0.031920,-0.036918,-0.011870,-0.015829,0.029419,-0.030119,0.021267,0.019065,-0.019837,-0.000006,0.005837,0.002868,-0.011618,-0.000560,0.030246,-0.002792,-0.015234,0.019338,0.032338,-0.012675,-0.023607,0.001241,-0.025900,-0.010713,-0.018965,0.008642,-0.001831,-0.018137,0.025610,0.006871,-0.034841,-0.034456,0.028909,0.022361,-0.004894,0.005014,0.014612,0.034360,0.034214,-0.003002,-0.030393,-0.004629,0.022745,-0.016189,-0.022751,0.013563,0.028885,0.026059,0.022961,0.036718,0.004506,-0.032547,-0.004970,0.009192,0.028186,0.011779,0.011851,0.018148,0.006968,-0.009146,0.017484,-0.031703,0.022101,0.037339,-0.029590,-0.004712,0.002299,-0.000598,-0.014209,-0.010788,-0.013853,0.029190,0.017660,-0.013345,-0.025057,-0.028236,-0.014433,0.034601,-0.022022,-0.008414,0.032561,-0.023150,-0.027727,-0.002206,-0.003829,-0.007531,0.034677,-0.020942,-0.028169,-0.006283,-0.020926,0.020251,0.029537,0.015763,0.004373,0.025684,-0.007833,0.003607,-0.000075,0.005961,-0.001178,0.037331,0.012583,0.005005,0.004512,-0.014359,0.023348,0.019028,-0.013788,-0.014294,0.029030,0.013505,-0.031671,0.031495,-0.010655,0.027737,0.029043,-0.012983,0.026462,0.001532,-0.024726,-0.004591,0.035352,0.008596,0.007566,-0.026461,0.034385,-0.015991,-0.024366,0.011011,-0.002327,-0.001304,-0.028109,-0.002694,-0.001377,0.027749,-0.026958,0.008285,-0.009129,0.006053,-0.017789,0.032020,0.000838,-0.031832,0.018082,-0.011165,0.033041,-0.006321,-0.007977,-0.028152,-0.005306,-0.035333,0.025747,0.003080,-0.030363,0.029460,0.017646,0.025360,0.025936,0.034707,-0.029812,-0.011751,-0.001557,0.026440,0.012616,-0.000554,0.031815,-0.031796,-0.002345,-0.025995,0.000986,-0.010314,-0.021963,-0.033073,0.016166,-0.016563,-0.034761,0.001869,0.028935,0.016564,0.011630,-0.031271,-0.017898,-0.030168,0.033749,-0.024427,-0.015274,0.009962,-0.003329,-0.029343,0.027754,-0.012476,-0.028287,-0.022652,0.002152,0.000105,-0.009551,0.025285,0.029448,0.029363,0.000368,0.001797,-0.015022,-0.032023,-0.028781,0.012408,-0.002804,-0.033106,-0.026784,0.032452,-0.030189,0.019625,0.011822,-0.001501,-0.027902,-0.029662,0.033164,0.017070,-0.026887,0.031324,-0.016177,-0.034390,0.011716,-0.023667,-0.030899,-0.012580,0.007936,0.020317,-0.028264,0.000562,-0.013238,0.031626,-0.022340,0.018015,-0.007579,-0.019934,-0.033942,0.019110,0.014988,-0.001656,0.018660,0.006205,-0.028403,0.024767,-0.032913,-0.025391,-0.037411,0.016638,0.024675,0.011531,-0.020152,0.019636,0.032054,0.030104,0.013875,0.001217,-0.035648,-0.005743,-0.016070,0.020911,-0.001384,0.033248,0.010245,-0.024168,0.025776,0.031546,-0.032044,0.024223,0.005678,0.032820,-0.023110,0.019439,-0.036526,0.030076,0.007172,0.019505,-0.036712,-0.033659,0.034375,-0.008280,0.013255,-0.000963,-0.008335,0.005281,0.024315,0.026554,-0.005626,-0.024529,-0.016067,-0.032625,-0.012466,-0.000249,-0.017951,-0.017466,-0.000941,-0.011736,-0.021883,-0.006725,0.001334,-0.009048,0.026975,-0.015367,-0.023269,-0.026466,0.021274,0.004853,-0.012715,-0.027732,0.032257,0.022212,-0.022592,-0.009764,-0.017256,-0.021184,0.008187,-0.017484,0.029958,0.012769,0.026607,-0.009613,0.002845,0.008440,0.036976,0.007110,-0.030867,0.001389,0.000964,0.017661,-0.019830,0.020186,-0.015431,0.010384,0.023285,-0.003242,0.025513,0.000408,0.007725,0.000740,-0.029816,-0.005959,0.026545,0.018411,0.011624,0.011548,0.022983,-0.002991,-0.003443,0.010186,-0.031136,0.028810,0.031149,0.032759,-0.028934,-0.015440,0.026304,0.019881,-0.031195,0.022477,0.000620,-0.023796,-0.035101,-0.002927,-0.014960,-0.015783,-0.010052,0.016627,-0.007257,-0.006571,0.004223,0.028646,0.009557,-0.005082,0.021530,-0.026887,0.018171,0.026196,0.015476,0.008202,-0.028153,0.028087,-0.022386,0.028258,-0.015101,-0.018165,-0.005730,0.033133,0.008188,-0.035552,0.005849,-0.021082,-0.012489,-0.014269,0.003429,-0.019293,-0.008045,-0.019692,-0.014837,-0.004895,-0.014226,0.031477,-0.002015,0.025593,-0.037182,0.005759,0.032290,0.036877,0.011439,-0.030125,0.035881,-0.008262,0.017719,-0.016397,-0.027065,-0.025674,0.032568,0.011066,0.020819,-0.027366,-0.000538,-0.003040,-0.007321,0.031191,0.006534,-0.009556,0.007055,0.028691,-0.010684,0.036422,0.093573,0.378597,-0.153499,0.231456,-0.201185,0.079891,0.063809,0.189071,-0.078650,0.227399,-0.155752,0.072064,0.077818,0.239783,-0.080160,0.214352,-0.197163,0.058439,0.050604,0.267158,-0.072997,0.225964,-0.193275,0.088844,0.088115,0.316044,-0.059351,0.233857,-0.184675,0.073702,0.118631,0.306352,-0.093404,0.232334,-0.169977,0.071328,0.096489,0.309575,-0.065896,0.228407,-0.131505,0.069005,0.113895,0.393509,-0.079833,0.232331,-0.131432,0.033728,0.064328,0.414774,-0.069910,0.179004,-0.150472,0.055201,0.089631,0.412602,-0.083960,0.203350,-0.123170,0.086661,0.108225,0.382377,-0.135579,0.192596,-0.139954,0.058927,0.082014,0.370405,-0.126968,0.194075,-0.161471,0.071179,0.091437,0.369003,-0.129462,0.212482,-0.087821,0.044917,0.156138,0.391848,-0.134487,0.201383,-0.102311,0.014622,0.108206,0.408773,-0.177126,0.165751,-0.076479,0.031242,0.138325,0.454621,-0.207132,0.148509,-0.088868,0.035557,0.121036,0.472894,-0.256615,0.142660,-0.119608,0.026754,0.138005,0.449169,-0.272391,0.181884,-0.068411,-0.011469,0.137851,0.446187,-0.276675,0.141639,-0.051674,-0.060297,0.189940,0.467861,-0.279152,0.094760,-0.080842,-0.070812,0.186758,0.429462,-0.299302,0.092608,-0.030886,-0.062436,0.186137,0.498122,-0.292506,0.047766,-0.068627,-0.042111,0.212319,0.472286,-0.369212,0.070161,-0.012325,-0.045098,0.144424,0.396986,-0.329230,0.058177,-0.038298,-0.059247,0.172283,0.382642,-0.349510,0.053698,-0.014317,-0.061343,0.193552,0.418138,-0.366147,0.035346,-0.004316,-0.044481,0.148981,0.422017,-0.374541,0.009046,0.021591,-0.107747,0.163272,0.423731,-0.390226,-0.065320,0.004181,-0.097921,0.143728,0.359383,-0.367494,-0.093518,0.034143,-0.108818,0.122731,0.334472,-0.276087,-0.098603,0.064096,-0.140099,0.061021,0.317453,-0.278323,-0.169894,0.091149,-0.167002,0.086100,0.325867,-0.274740,-0.192992,0.078109,-0.149397,0.057029,0.244615,-0.273756,-0.194003,0.123031,-0.177110,-0.024202,0.182448,-0.336394,-0.274143,0.134822,-0.201718,-0.021179,0.193826,-0.288188,-0.272219,0.145543,-0.218836,-0.037156,0.136303,-0.324070,-0.354148,0.144093,-0.189609,-0.044827,0.122624,-0.254077,-0.345268,0.190617,-0.237557,-0.073920,0.059656,-0.275066,-0.421480,0.171986,-0.258460,-0.045703,-0.013498,-0.195247,-0.425054,0.223220,-0.247117,-0.037874,-0.005837,-0.210227,-0.469818,0.171328,-0.227883,-0.020492,0.015030,-0.167784,-0.442699,0.205479,-0.216723,0.047156,0.039510,-0.185941,-0.506079,0.243559,-0.194128,0.090375,-0.003617,-0.083097,-0.474563,0.220127,-0.203411,0.107290,0.011868,-0.075347,-0.513239,0.203666,-0.160775,0.088746,0.062093,-0.008468,-0.474638,0.262154,-0.166227,0.171010,0.113597,-0.016030,-0.512687,0.255426,-0.207702,0.159202,0.176258,-0.006513,-0.494948,0.273529,-0.150825,0.203589,0.243692,-0.040309,-0.508138,0.271735,-0.138362,0.203561,0.303510,-0.063362,-0.474093,0.237671,-0.182097,0.182237,0.368823,-0.024121,-0.437670,0.274226,-0.214537,0.217598,0.374417,-0.016871,-0.457136,0.250440,-0.177287,0.219472,0.319381,0.023953,-0.418465,0.280381,-0.182317,0.213285,0.287096,0.011706,-0.357677,0.255525,-0.212479,0.236132,0.279953,0.037363,-0.385246,0.272321,-0.243337,0.217488,0.274279,-0.003744,-0.361130,0.255388,-0.260864,0.166684,0.238618,0.041819,-0.320351,0.234950,-0.229986,0.177373,0.208860,0.098229,-0.371272,0.265984,-0.217011,0.184381,0.173998,0.137054,-0.321063,0.209951,-0.271292,0.168941,0.133978,0.165027,-0.287522,0.228513,-0.225715,0.174122,0.080118,0.164565,-0.259314,0.261147,-0.254048,0.164372,0.107877,0.209092,-0.295747,0.188936,-0.254515,0.149761,0.037296,0.222511,-0.270783,0.199238,-0.195372,0.113823,0.083517,0.174931,-0.266397,0.241241,-0.193655,0.070874,0.085954,0.154355,-0.284788,0.222508,-0.178394,0.074541,0.071723,0.216401,-0.266935,0.217886,-0.163623,0.087484,0.128346,0.228196,-0.217458,0.209591,-0.156524,0.065895,0.109850,0.192254,-0.252252,0.202235,-0.128261,0.087185,0.148296,0.192621,-0.261091,0.208075,-0.153746,0.121559,0.168200,0.136201,-0.258677,0.225137,-0.148198,0.108449,0.207457,0.152403,-0.222069,0.202028,-0.129782,0.115542,0.166975,0.114719,-0.270504,0.253964,-0.117919,0.047281,0.204936,0.056375,-0.197347,0.246671,-0.104241,0.068917,0.167050,0.086184,-0.222961,0.235438,-0.116115,0.066151,0.147066,0.026492,-0.208583,0.181596,-0.139926,0.078021,0.162386,0.074265,-0.228694,0.219038,-0.096105,0.041972,0.196217,0.008154,-0.218318,0.163559,-0.091500,0.103928,0.233759,0.051899,-0.163582,0.166595,-0.126250,0.063606,0.244648,0.066787,-0.210938,0.185863,-0.107319,0.032082,0.202996,0.037993,-0.158062,0.186549,-0.090294,0.028130,0.137680,0.086834,-0.142585,0.130780,-0.146190,0.065341,0.113256,0.047467,-0.132421,0.160326,-0.135323,0.044578,0.145304,-0.054081,-0.110818,0.127812,-0.116618,0.043061,0.157182,-0.081637,-0.118136,0.135221,-0.139587,0.065523,0.170509,-0.127034,-0.112723,0.125346,-0.114275,0.044210,0.135181,-0.095540,-0.133120,0.120537,-0.164447,0.046758,0.160255,-0.057423,-0.149433,0.083680,-0.141157,0.020783,0.124529,-0.093736,-0.147084,0.059546,-0.129432,0.009157,0.009500,-0.089644,-0.140901,0.097764,-0.161968,-0.019454,0.002386,-0.063004,-0.080031,0.074339,-0.113959,-0.003247,-0.071488,-0.089138,-0.130816,0.031677,-0.117515,-0.047309,-0.025738,-0.110391,-0.148421,0.068541,-0.179204,-0.051543,-0.027765,-0.129482,-0.161176,0.043534,-0.162852,-0.072150,-0.020111,-0.088248,-0.163141,0.023856,-0.134867,-0.055762,-0.103257,-0.148920,-0.170801,0.001879,-0.131148,-0.073857,-0.101334,-0.116665,-0.175922,0.014219,-0.114378,-0.037885,-0.123204,-0.125974,-0.148116,0.038274,-0.098694,-0.077746,-0.140285,-0.099539,-0.214253,0.035359,-0.067471,-0.028334,-0.093670,-0.063639,-0.252634,0.051264,-0.076828,-0.083546,-0.005834,0.035300,-0.242054,0.043137,-0.123918,-0.083244,-0.015390,0.020425,-0.282616,0.042923,-0.076328,-0.073724,0.040134,0.052654,-0.263071,0.061240,-0.124119,-0.062194,0.122761,0.125843,-0.262170,0.045090,-0.068001,0.001023,0.121781,0.134459,-0.284907,0.075717,-0.084561,-0.045487,0.150561,0.107370,-0.281531,0.061251,-0.122623,-0.015193,0.177006,0.190667,-0.346915,0.010392,-0.060092,-0.046189,0.240669,0.222142,-0.331335,0.045460,-0.103804,0.019776,0.262485,0.227877,-0.288598,0.060507,-0.118327,-0.050454,0.311667,0.255945,-0.316277,0.059633,-0.127683,0.034724,0.342063,0.189635,-0.337758,0.089356,-0.114485,0.003130,0.329818,0.224679,-0.336627,0.077704,-0.114972,0.010680,0.394407,0.212688,-0.360020,0.079719,-0.126546,0.004874,0.396437,0.274777,-0.341338,0.056553,-0.140770,0.025157,0.438322,0.297140,-0.357796,0.052716,-0.119267,0.068288,0.444559,0.318997,-0.347401,0.070880,-0.146966,0.017728,0.472328,0.342973,-0.335846,0.117382,-0.181882,0.057216,0.535048,0.335795,-0.347339,0.063992,-0.211081,0.056025,0.606254,0.367371,-0.307380,0.115882,-0.169489,0.050077,0.639355,0.386493,-0.312208,0.103158,-0.167240,0.040423,0.661880,0.313354,-0.261071,0.093838,-0.202943,-0.013931,0.032049,0.035654,0.028126,0.035471,0.016626,-0.037347,0.022279,-0.010139,0.024556,0.031162,-0.014060,-0.017569,-0.007983,0.026986,0.013505,-0.032440,0.017053,-0.025932,0.019596,0.002401,0.032478,0.003330,0.012023,0.005244,-0.021785,0.034302,0.012113,-0.006605,0.007303,-0.027071,0.012785,0.030704,-0.032757,-0.036277,-0.017375,-0.020477,-0.019475,-0.027205,-0.010444,0.006974,0.008593,-0.029141,-0.036124,0.028292,-0.013044,-0.002037,-0.032187,-0.008005,0.027925,-0.014992,-0.008915,-0.034652,0.036269,0.008103,0.017301,-0.020424,0.029533,-0.003138,-0.023075,0.007362,0.007020,0.007452,-0.022360,-0.008156,0.014102,0.031394,0.003839,0.018351,-0.024741,0.006194,-0.033210,0.001961,-0.004747,-0.010852,-0.017743,-0.004792,0.007335,0.017320,-0.017587,-0.011620,-0.001205,0.019699,0.005688,0.006485,-0.007989,-0.026852,0.016908,-0.020593,0.019206,0.015648,-0.018765,-0.015558,0.016084,0.000232,-0.029037,0.004105,-0.027319,-0.003817,-0.012937,-0.029133,-0.036631,0.024920,-0.010072,-0.008125,-0.015112,0.016214,0.028067,0.002897,0.002773,-0.032982,-0.031025,0.026303,-0.021778,-0.006420,0.031642,0.008793,-0.023567,0.028742,0.009797,-0.032609,0.036956,-0.007677,0.029847,0.022005,-0.032517,0.003024,-0.017838,0.000513,0.000027,0.027163,-0.012410,-0.014403,-0.001978,-0.004190,0.008709,-0.002864,-0.023485,-0.019369,-0.012348,0.020652,-0.027416,0.005983,-0.011780,0.028708,0.007731,-0.006547,0.024577,0.000249,0.031107,-0.026381,0.011382,-0.018030,0.024767,0.010317,-0.000810,0.026838,-0.034290,0.020370,0.006286,0.003939,0.011644,-0.002150,-0.035041,0.032172,-0.010187,0.001042,-0.004519,0.014743,-0.010109,0.006429,-0.000931,0.013220,0.000773,-0.010890,-0.007882,0.006043,-0.011774,-0.029556,0.033766,-0.031870,0.016515,-0.013373,0.009215,-0.027694,-0.014338,-0.012375,0.013389,0.014939,0.005322,-0.012426,0.036847,-0.003034,-0.011957,0.032637,0.000591,-0.036465,-0.030704,-0.024538,-0.031002,-0.034744,0.028252,0.030479,-0.020149,-0.013935,0.018167,-0.012023,-0.014528,0.021584,-0.012393,0.003499,-0.028879,-0.015721,0.025646,0.005146,0.019728,-0.008847,0.024124,0.001646,0.022294,0.009662,0.009389,0.036160,0.025044,-0.006237,-0.016278,0.022749,-0.022202,0.035895,-0.015924,-0.014054,-0.025406,-0.030223,-0.018067,0.036682,0.031833,-0.005027,-0.011177,-0.012400,0.004503,-0.003205,0.008928,-0.024823,0.007670,0.022708,0.018750,-0.008132,-0.028333,0.000755,-0.006083,0.036869,0.024047,0.015053,-0.024397,0.017287,-0.035502,0.025108,-0.029536,0.029164,0.015742,0.008484,0.016655,-0.026253,0.016941,0.021939,0.012057,-0.035543,-0.016432,-0.019121,0.011029,-0.008278,0.030482,0.033123,0.033961,0.009419,0.025889,-0.035914,-0.029388,-0.010489,-0.010515,-0.022276,-0.010078,-0.029316,-0.006586,-0.007862,-0.013439,0.019368,-0.018504,0.007594,0.008580,0.000290,0.033421,-0.036650,-0.026510,-0.010912,-0.021741,0.001855,0.020354,-0.028802,0.009004,-0.025624,0.009485,-0.029876,0.010309,-0.012987,-0.001828,0.031143,0.022931,-0.010691,-0.003112,0.006819,0.016966,-0.001595,-0.025717,-0.004665,-0.016543,-0.024765,0.032943,-0.024380,0.013995,-0.026903,-0.002517,-0.004765,0.026878,-0.006853,-0.003497,-0.020649,-0.024137,-0.025556,-0.002181,0.035548,-0.003417,-0.008136,-0.029781,-0.006522,0.027149,-0.021669,-0.027209,-0.019636,-0.027855,-0.017040,-0.024988,0.034579,0.034384,0.005082,-0.017511,0.032611,-0.016283,0.012761,0.004377,-0.026698,0.022052,-0.012652,-0.009731,-0.033444,-0.008360,0.010423,0.005830,0.022315,0.005744,0.012966,-0.017002,-0.025077,-0.020385,-0.022604,-0.021724,-0.029781,0.003477,-0.020919,0.036957,0.007351,-0.017711,0.020142,0.002768,-0.018019,0.017299,-0.029572,-0.009087,-0.028897,-0.018540,0.010547,-0.017129,0.031295,0.004587,-0.035636,-0.027919,0.001716,0.003961,-0.002382,0.011795,-0.021052,0.010550,-0.028320,-0.021087,-0.036454,-0.004720,-0.000695,-0.009376,-0.003410,-0.036933,-0.001547,-0.030985,0.008822,0.018559,-0.010428,-0.019260,-0.034508,-0.034867,-0.036359,0.024521,0.013343,0.019881,-0.030871,-0.033425,-0.008401,-0.029064,-0.028030,-0.027559,0.001892,0.006337,-0.036056,0.019713,-0.015777,0.006253,-0.028560,0.024886,0.025159,0.020324,-0.036273,0.033767,0.018255,0.028056,0.014269,-0.027524,-0.013121,0.029609,-0.035539,0.011472,0.032730,-0.022046,0.009021,0.020348,0.025793,0.023634,0.033518,0.002885,0.022507,-0.019554,-0.020735,-0.029387,0.004608,0.000695,-0.027709,0.023729,0.008483,0.012501,-0.036227,-0.013993,0.007251,0.001921,-0.011059,0.016489,0.000571,0.014649,-0.010366,-0.004067,-0.011579,0.013440,-0.031631,0.024284,-0.006609,-0.015130,-0.018966,0.017000,-0.016472,0.020826,0.012314,-0.009300,0.001762,-0.022639,-0.028901,0.005250,0.006179,0.001682,0.005138,-0.027001,0.012799,-0.002338,0.014205,-0.027883,0.034828,0.025993,-0.005497,0.018915,0.031789,0.025761,0.014462,0.023254,0.012443,0.017590,0.022222,-0.014099,0.005551,0.017928,-0.014633,0.020051,0.036911,0.036542,-0.013121,0.035091,0.020063,-0.035026,-0.009272,0.005842,-0.020694,-0.001570,0.016543,0.027166,0.037110,0.009034,0.020271,0.004694,-0.010430,-0.034486,-0.031789,0.004990,-0.024657,-0.017176,-0.003624,-0.037244,-0.026559,0.027694,-0.015439,-0.018562,0.023536,0.016998,-0.019534,0.015896,-0.027830,0.022204,-0.008930,0.016401,-0.006345,0.031777,-0.030742,-0.019386,0.013924,-0.008457,-0.036685,0.010625,0.009990,-0.030215,-0.009121,0.018332,-0.031049,0.022605,-0.015246,0.002690,-0.014225,-0.026364,0.018046,-0.030118,0.023672,0.034445,0.007600,-0.010331,-0.004482,0.020428,-0.009600,-0.001877,0.020185,-0.026738,-0.030922,-0.034869,-0.032381,0.017874,-0.003615,-0.013491,0.036045,0.027130,-0.017269,0.027202,-0.019189,-0.029854,-0.028295,0.025229,-0.000200,-0.009720,-0.002787,-0.001836,0.026900,-0.033858,0.032567,0.020519,-0.019592,0.009741,-0.001159,0.016358,0.009084,0.005393,-0.002702,-0.006139,-0.009443,0.017926,0.027094,-0.020794,0.030897,-0.001635,0.026627,-0.030314,0.036504,-0.005534,-0.008208,-0.013815,-0.021871,-0.004501,0.017931,0.020246,-0.009243,0.025899,-0.005533,0.016187,-0.005031,0.000119,-0.009442,0.015249,-0.010518,-0.005567,0.013628,0.012639,-0.004505,0.017146,-0.014719,-0.026308,0.029796,0.032123,0.004593,0.014265,-0.036553,-0.027843,0.028341,-0.011629,-0.002605,-0.011017,0.028248,0.008173,-0.007121,0.022063,-0.023064,0.006528,0.008432,-0.007095,-0.022468,-0.012088,-0.028183,0.025626,-0.025259,0.000832,-0.004609,0.027684,-0.023056,-0.004777,0.013592,0.031237,-0.027979,0.033202,0.012969,0.031569,0.012106,-0.019734,-0.033107,-0.005739,-0.035390,-0.017983,0.031281,-0.011299,0.002579,-0.002777,0.011859,0.028629,0.017512,-0.035922,-0.021603,-0.025243,0.004050,-0.009058,0.004550,-0.030751,-0.016273,-0.007525,-0.009554,-0.029531,-0.003137,0.008943,0.017643,0.018131,-0.021051,-0.013443,-0.032622,0.023293,-0.029183,0.015354,0.016090,-0.007931,-0.034280,0.007928,-0.013948,-0.034961,-0.000312,0.020458,0.002305,0.016964,-0.036390,0.017613,0.017529,-0.000223,0.019725,-0.024495,0.021183,0.033177,-0.002094,0.018585,-0.016370,0.024631,0.013712,-0.015558,-0.023659,-0.016311,-0.012264,-0.014720,-0.013688,-0.033444,0.019852,-0.018860,-0.027006,0.000817,-0.026593,-0.024262,0.000381,-0.012224,0.011475,-0.006665,0.000789,-0.023786,0.013279,0.022119,-0.015174,-0.011052,-0.012989,-0.026180,0.025527,-0.006654,0.005516,0.012343,0.002486,0.000585,-0.021029,0.016748,-0.030536,-0.025442,0.000257,-0.029279,0.029052,0.030954,0.028312,-0.010710,0.010380,-0.016070,-0.001774,0.018119,0.011590,0.029551,-0.037713,0.000345,-0.017646,-0.000878,0.024599,-0.032719,0.033333,-0.023998,-0.015051,-0.022714,-0.022618,0.009399,0.000416,0.025378,0.026132,-0.003076,0.003325,0.021641,-0.011620,-0.017484,-0.011956,-0.008444,-0.025900,-0.008899,-0.033750,0.034035,0.016824,-0.037147,-0.019041,0.032504,0.016709,0.013778,0.020133,-0.019164,0.007107,-0.014438,-0.032836,-0.022581,-0.024466,0.028541,0.025909,-0.008307,-0.028793,-0.020866,0.024044,0.007031,-0.007073,0.022423,0.021814,0.017630,-0.020505,0.025900,0.016379,0.014820,-0.021247,0.014765,-0.020874,0.032604,0.006151,0.008130,0.001313,0.025077,-0.038615,-0.032266,-0.004200,-0.004053,-0.031573,-0.026774,0.032989,0.022757,0.030978,0.010965,-0.030795,-0.017823,0.002463,-0.028692,0.015432,0.016348,-0.030461,0.022444,-0.001480,0.028110,0.005482,-0.024900,0.014342,-0.012841,-0.013655,-0.009797,0.022851,0.000988,0.019142,0.009357,-0.008075,0.019432,0.020836,0.013464,-0.036801,-0.031937,-0.022679,-0.005828,-0.010879,-0.011676,0.016254,-0.027319,0.028070,-0.013522,-0.021021,-0.036105,0.003462,-0.001159,-0.028991,-0.003482,-0.018929,-0.005724,-0.038099,-0.007377,-0.017158,0.000462,-0.038002,0.019036,-0.037031,-0.000639,0.008518,0.031254,-0.016800,-0.015327,0.009437,0.001138,-0.016435,0.020370,0.025206,0.014984,0.019362,-0.018706,-0.017958,-0.007918,0.000547,0.033024,0.022327,0.032707,-0.001045,0.023144,-0.009784,-0.015914,-0.038454,0.024588,-0.002455,-0.014169,0.030607,0.010387,0.031031,-0.035312,-0.019616,0.002093,0.016861,0.019083,0.001250,0.019318,0.014576,-0.006027,0.013016,-0.038947,-0.026691,-0.038970,0.015299,-0.029126,-0.009638,-0.009074,0.033449,0.018090,0.032698,0.024196,-0.039608,0.007708,-0.027175,0.032423,0.019825,0.002252,-0.007457,-0.019184,-0.034485,-0.022717,0.006898,-0.012564,0.001006,0.024536,0.022552,-0.035371,0.017173,-0.026171,0.031097,0.023099,-0.021888,-0.026879,0.027852,0.027906,-0.028975,-0.006237,-0.034720,0.025272,0.035523,-0.037099,-0.019513,0.013445,0.019454,-0.021376,0.013144,0.029128,-0.029478,0.021199,-0.020462,-0.022131,0.021335,-0.008993,0.003168,0.021969,-0.015756,-0.014593,-0.030700,0.016620,0.002586,0.026205,0.024343,0.007687,0.008101,0.030798,-0.031582,-0.032913,0.034700,-0.013914,0.010182,-0.007667,-0.029083,-0.029041,-0.002004,-0.007935,0.011801,-0.028338,-0.004899,0.000355,-0.029014,0.033599,-0.005923,-0.001444,0.015474,-0.035135,-0.038243,0.019274,0.031275,-0.019896,-0.035304,0.031863,0.032914,0.034596,-0.008541,-0.006620,0.016560,-0.007888,0.032998,-0.018483,0.028612,0.019476,0.009822,0.030857,-0.017979,-0.004500,0.016771,0.031440,0.024993,0.018456,-0.034426,-0.035585,-0.009754,-0.013018,0.034910,0.010854,0.016339,-0.004703,0.024127,-0.035357,-0.024066,0.027467,0.002864,-0.031202,0.029967,0.022983,-0.009432,0.011104,0.034728,0.001202,0.001834,0.014763,-0.004436,0.017842,-0.015398,-0.000627,0.034688,0.010118,-0.030145,0.013535,0.023953,-0.031782,0.034616,0.006113,-0.038840,-0.036315,0.025021,0.026776,-0.006552,-0.011027,0.013566,0.012897,0.001088,0.029860,-0.024506,0.030486,-0.028557,-0.002535,0.006126,-0.007017,0.012219,-0.027814,0.006666,-0.009920,0.029737,-0.024170,-0.035332,-0.025524,-0.011636,-0.028288,0.021257,-0.006857,0.021511,-0.029621,0.034386,0.034788,-0.034954,0.029788,-0.001363,0.017612,-0.012263,0.028967,-0.009888,-0.008044,-0.008075,0.017359,0.005552,-0.037188,-0.004752,0.006205,-0.000417,-0.016471,0.013293,-0.003579,0.025684,0.024354,0.004577,-0.021417,0.025771,0.014427,0.011282,-0.007184,0.013520,-0.028316,-0.037009,0.033908,0.005622,0.025087,-0.038198,-0.013055,-0.009271,0.026196,0.006631,-0.027538,-0.030203,0.011281,0.034278,0.012977,0.032700,-0.039401,0.030949,-0.001196,-0.015719,-0.034062,0.004733,0.020811,0.019968,0.014561,-0.013384,-0.015946,-0.019449,0.013735,0.005622,0.023552,0.012182,0.020785,-0.013980,-0.037191,-0.003938,0.021271,-0.035312,0.012138,0.003706,0.010452,-0.001230,-0.032116,-0.038724,0.008495,0.007430,0.012955,0.028543,-0.015878,-0.016871,-0.026224,0.032090,0.002912,-0.030392,0.015010,-0.039404,-0.030322,-0.034775,0.011734,0.001051,0.034814,0.002124,-0.017425,-0.026021,0.029802,0.002302,-0.038162,0.002424,0.024538,-0.015801,0.007143,-0.024369,0.018228,0.006516,0.033507,0.029943,-0.000529,-0.006949,-0.021715,0.008453,0.016295,-0.033513,0.013526,0.034523,-0.006749,0.019866,-0.018610,0.001593,-0.029115,0.015874,0.028648,-0.026661,-0.031516,0.023737,0.002506,-0.016492,-0.026942,0.030788,-0.017243,0.020821,-0.005068,-0.005169,-0.016125,-0.017232,-0.001403,0.032639,0.026301,-0.005963,0.026822,0.026936,-0.009961,0.013760,0.014700,0.009247,-0.013413,-0.006248,-0.007369,0.006093,-0.016140,0.006395,0.022000,0.017577,0.001715,-0.025050,-0.013918,-0.009942,-0.022612,-0.030346,-0.009321,0.030206,-0.008946,-0.005708,-0.006394,-0.022689,-0.028828,-0.020145,-0.037976,0.018456,0.004290,-0.036194,-0.000406,0.029868,-0.028538,-0.009773,-0.038722,0.027971,0.034970,0.019705,-0.004519,-0.029215,-0.008681,0.014244,-0.022879,-0.026927,0.012441,0.015495,0.011684,0.027629,0.014716,-0.005155,0.030365,-0.013607,-0.031364,0.025045,0.014551,-0.000377,0.016953,-0.019790,0.006806,-0.028359,0.000164,0.023434,-0.023511,0.013746,0.028806,-0.014724,0.011074,0.006038,-0.039436,0.008625,0.022024,-0.027446,0.031469,0.017146,0.017583,-0.012926,-0.000554,0.001428,-0.030460,-0.026853,0.028803,-0.018553,-0.026595,-0.006770,-0.014551,0.028092,0.033721,0.015273,-0.002432,-0.014379,0.027631,0.026396,0.017857,0.016001,0.031071,0.032875,-0.020502,0.013683,0.009750,-0.006028,0.031825,-0.001913,0.024654,-0.000001,-0.017436,0.014102,0.002534,-0.026747,-0.036239,0.004228,-0.026340,-0.003140,-0.000764,0.007648,0.030059,0.003854,0.017234,-0.020160,0.030656,0.025272,-0.001225,-0.007921,-0.025041,-0.031763,-0.004373,0.016765,-0.035835,-0.008743,-0.028726,0.005320,-0.018399,-0.004902,-0.038742,0.015085,0.018821,-0.004686,0.001973,-0.027886,-0.012631,-0.027880,0.026040,0.003992,-0.007495,-0.019124,0.001811,-0.028740,0.002739,-0.013620,0.016516,-0.007315,-0.036493,-0.031081,0.012478,-0.000295,0.031917,-0.025640,0.031876,-0.020702,-0.014654,-0.037738,0.033291,-0.005141,0.017692,0.035301,-0.004905,-0.015439,0.006445,0.023184,-0.033936,-0.017996,0.007628,-0.033701,0.005564,0.033462,-0.031939,-0.031321,-0.019101,-0.037284,-0.029913,0.026183,0.013924,-0.007816,0.020451,-0.036209,-0.021739,0.020597,0.027579,0.009749,-0.013419,0.020422,-0.004988,-0.001761,0.009672,0.020739,0.031521,-0.016754,-0.006998,0.013542,0.019430,0.023438,0.011894,0.006202,-0.035605,-0.036470,-0.018120,-0.003066,-0.012324,-0.010578,0.011256,0.005591,-0.007349,-0.022752,0.024166,-0.038642,0.002206,0.023386,-0.001622,-0.037926,0.030742,-0.009538,-0.006391,-0.006082,-0.037100,0.027924,-0.024547,0.028900,-0.006319,-0.021585,-0.037854,-0.038107,-0.009195,0.016378,0.012313,-0.006687,-0.031819,-0.024570,0.020436,0.005444,-0.028357,-0.001882,0.022798,-0.013647,0.034393,0.022797,-0.026284,0.027085,0.027536,0.001269,-0.035038,-0.025222,-0.033155,0.021655,-0.024466,-0.013709,-0.037574,0.035775,-0.022898,-0.025316,-0.000157,-0.019271,-0.012220,-0.005870,0.033803,0.034366,-0.018934,-0.023223,0.003287,-0.029827,-0.013258,-0.026256,0.018186,0.028146,-0.012515,-0.022746,0.034642,0.006036,-0.018399,0.031326,0.011903,0.005415,0.020269,0.024335,0.025203,0.007284,0.025539,-0.019881,0.023561,-0.020854,-0.027794,-0.005110,0.009236,0.030316,-0.010936,-0.010918,0.000040,0.007771,-0.011104,0.025621,-0.023970,0.025024,-0.033974,0.015992,-0.015164,-0.029369,0.027354,0.001616,0.006351,-0.011529,0.007580,0.009631,-0.022732,-0.003858,-0.034235,-0.017797,-0.034206,0.009876,-0.014803,-0.033242,0.026572,0.009835,-0.013736,-0.014108,0.015398,-0.006364,-0.023186,0.031291,0.024697,0.001501,-0.016174,-0.010954,0.012544,0.012387,0.011542,0.018737,-0.031761,-0.026438,-0.020141,0.020607,-0.029647,0.022121,0.004710,-0.032883,-0.024659,0.013777,0.029415,0.022750,-0.008288,0.029962,0.000427,0.029629,0.014436,-0.003126,0.015809,-0.030428,-0.016070,-0.032599,-0.010693,-0.026748,-0.032897,-0.024188,0.031370,0.012539,-0.008568,-0.013383,-0.028580,-0.006385,0.007653,-0.034459,0.033353,-0.010407,-0.024663,-0.009365,0.024153,-0.017086,-0.012151,-0.033606,0.007494,0.018728,0.001197,-0.034881,-0.034139,0.021031,0.020135,-0.025097,-0.009395,0.006359,0.035483,-0.013898,0.003864,-0.035899,0.014740,0.016394,-0.018211,0.019010,-0.034104,-0.003883,0.021825,-0.011924,0.002706,-0.021830,0.018092,0.031868,0.023911,-0.002940,0.034675,-0.001088,-0.039260,0.011980,-0.003184,0.030589,0.019970,-0.013838,0.021298,0.035744,0.031018,0.018446,0.033033,0.012277,-0.007388,0.029766,-0.000672,0.029858,0.027678,-0.014036,-0.025654,0.015941,-0.025897,0.007494,0.026061,0.018211,0.026952,-0.022737,0.030153,0.026146,-0.022881,0.011652,-0.031212,-0.001293,-0.013120,0.025873,-0.005946,-0.003632,0.023318,0.000909,-0.019882,-0.003015,-0.011971,0.027779,-0.013420,-0.011377,-0.013487,0.007038,-0.026359,-0.034602,-0.027746,-0.006344,0.014775,0.028008,-0.037514,-0.004884,0.022155,0.008325,0.012358,-0.006076,-0.007093,0.019478,0.032087,-0.024425,0.018862,-0.017248,0.023650,0.009532,-0.009034,0.021175,-0.008152,-0.011801,0.002875,0.033679,-0.007077,-0.031060,0.024644,0.015598,0.008635,0.031617,0.030064,-0.012374,0.035790,-0.036103,-0.016137,0.002608,-0.035218,0.032299,0.013403,-0.028694,0.032350,0.013705,-0.013014,0.012849,0.021730,0.007926,0.010040,-0.029787,-0.031700,-0.031698,0.005728,-0.014988,-0.013247,0.013846,-0.019025,-0.001446,-0.011451,0.005819,-0.017722,0.008188,0.020430,0.023214,0.015601,0.013219,0.022123,0.010371,0.012633,-0.014043,0.028153,-0.036856,0.036257,-0.024514,0.001398,0.001501,0.013877,-0.035000,0.030568,-0.018384,0.029125,-0.029145,-0.004911,0.026158,-0.026859,0.013874,0.036501,-0.013313,-0.025039,0.003488,0.030121,0.008898,-0.003629,0.004198,0.011327,-0.002407,-0.028253,-0.032767,0.001122,0.003484,0.003925,-0.000602,0.018310,0.034539,0.016168,0.006194,0.035028,-0.032486,-0.014426,0.023524,-0.025669,0.012499,0.018843,0.018543,0.010989,-0.014573,-0.020530,0.033073,-0.030661,0.027780,-0.031456,0.005895,-0.020119,0.026840,-0.007884,0.003383,0.024028,-0.031496,0.034712,0.000716,-0.036848,0.002529,-0.026120,0.006172,0.016902,-0.005749,0.020733,-0.004720,0.015633,-0.015956,0.018046,0.006403,-0.001046,-0.026050,0.001671,-0.020882,0.021683,-0.027466,-0.016380,0.006007,0.034718,0.008800,0.029802,0.015935,0.021824,0.030327,0.013342,0.030326,0.011687,0.033737,-0.001620,0.020692,-0.023400,-0.030305,0.004225,0.025623,-0.033714,0.001148,0.017414,0.008889,0.031308,-0.013864,-0.032376,0.012157,0.010776,0.013439,-0.021048,-0.006412,0.017891,-0.034211,0.011673,-0.004691,-0.005597,-0.015212,-0.006287,-0.009349,0.011947,-0.037356,0.027068,-0.030164,-0.034133,-0.038288,-0.036667,0.035594,0.016152,0.009855,0.020267,-0.019883,-0.011012,0.024562,-0.008212,0.022191,0.001574,0.010519,-0.012955,-0.004338,-0.021699,-0.000715,0.008885,0.013192,0.032285,-0.019808,-0.007106,0.019189,0.005392,0.019883,-0.035300,-0.025214,0.030518,0.021042,-0.022346,-0.014667,0.000919,0.011937,-0.026687,-0.010633,0.032977,-0.020731,0.003005,-0.026912,0.014508,0.027707,-0.024233,-0.014631,-0.002220,-0.001976,-0.005306,-0.030433,0.032515,-0.029891,-0.036687,-0.033271,-0.006978,-0.033388,0.015015,0.009795,-0.022933,-0.023016,0.015678,0.027525,0.014776,0.012928,0.008359,-0.009698,-0.011405,0.032718,0.007623,-0.021772,-0.021600,-0.001505,-0.010441,-0.008214,0.029326,0.029714,-0.030385,-0.009987,0.004792,-0.034584,0.013178,0.001152,-0.035806,-0.037357,-0.018570,0.030713,0.031074,-0.033436,0.008368,-0.025456,-0.007818,0.007193,-0.028840,0.006935,0.030927,-0.013957,-0.037369,0.017054,-0.025908,-0.021876,-0.019804,-0.038060,0.009990,0.021982,-0.029994,-0.027553,0.003821,-0.021517,0.023875,0.031791,0.019075,-0.008714,0.036033,-0.029400,0.025033,0.029731,0.025167,0.017074,-0.032067,-0.031617,-0.023971,-0.003118,-0.014025,0.028994,-0.012558,-0.032072,-0.033447,0.021247,0.029256,0.000729,-0.012953,0.011955,0.003635,-0.005873,0.027207,-0.015010,0.016735,-0.014747,-0.022668,-0.015724,-0.024666,-0.010001,0.032017,0.015350,0.014145,-0.017168,-0.013868,0.020359,-0.018563,0.016773,0.035647,0.014678,-0.010491,-0.015204,-0.031424,0.009729,-0.012512,0.020129,0.004580,0.026426,-0.036425,-0.010385,0.015408,0.016789,-0.018759,-0.014695,-0.027883,0.025018,0.022206,0.023735,0.011655,0.005786,-0.002342,0.024002,0.007404,-0.029331,0.030643,-0.020732,0.000391,-0.026947,0.003610,0.032317,0.029413,0.025340,-0.006020,-0.002623,-0.025841,0.008045,0.033615,0.005821,-0.014458,0.003012,0.034763,-0.031014,-0.029985,0.010781,-0.035301,-0.026141,0.029519,-0.015168,-0.030725,0.020650,-0.029063,0.017437,-0.031146,0.013892,-0.037534,-0.004092,0.034165,0.035702,0.006934,-0.026166,-0.037078,-0.017826,0.026865,-0.022351,0.024324,-0.011629,-0.010030,-0.002608,-0.026071,-0.030762,-0.012337,0.005194,0.015078,0.027556,0.006434,0.024131,0.032869,0.017307,-0.006407,0.024153,-0.013355,0.003126,-0.019754,0.035004,-0.006425,-0.017490,0.016902,0.001099,0.007781,-0.027604,0.018162,-0.004424,-0.012117,0.023003,0.013745,0.006586,-0.013578,-0.036087,-0.025121,-0.036813,0.019432,-0.021340,0.013615,0.006957,0.024724} ;
45+
const PROGMEM float dnnc_fc2_dot_bias_data[] = {-0.216914,1.873187,-0.050328,-0.169354} ;
46+
const PROGMEM float dnnc_fc2_dot_weight_data[] = {0.218817,0.088550,0.318061,0.248361,-0.327833,-0.017152,0.042804,0.100464,0.186706,0.048677,0.100916,-0.290552,-0.645874,0.250051,-0.194110,-0.018149,0.237442,0.141186,0.316304,-0.139612,1.487356,0.013215,0.214298,-0.217383,0.091865,0.062357,0.290944,0.339741,0.022039,-0.166652,0.248257,0.136047} ;
47+
const PROGMEM float dnnc_fc3_dot_bias_data[] = {0.235671,1.771050} ;
48+
const PROGMEM float dnnc_fc3_dot_weight_data[] = {0.192724,-0.386185,1.199224,-0.352258,0.136847,1.955971,-0.911277,0.226869} ;
49+
50+
tensor<float> dnnc_model(tensor<float>& dnnc_0 /*{714}*/) {
51+
52+
tensor<float> dnnc_fc1_dot_weight({8, 714}); dnnc_fc1_dot_weight.load(dnnc_fc1_dot_weight_data);
53+
tensor<float> dnnc_fc1_dot_bias({8}); dnnc_fc1_dot_bias.load(dnnc_fc1_dot_bias_data);
54+
tensor<float> dnnc_fc2_dot_weight({4, 8}); dnnc_fc2_dot_weight.load(dnnc_fc2_dot_weight_data);
55+
tensor<float> dnnc_fc2_dot_bias({4}); dnnc_fc2_dot_bias.load(dnnc_fc2_dot_bias_data);
56+
tensor<float> dnnc_fc3_dot_weight({2, 4}); dnnc_fc3_dot_weight.load(dnnc_fc3_dot_weight_data);
57+
tensor<float> dnnc_fc3_dot_bias({2}); dnnc_fc3_dot_bias.load(dnnc_fc3_dot_bias_data);
58+
59+
Constant<int64_t> dnnc___1("dnnc___1");
60+
std::vector<int64_t> dnnc___1_value_vec = {-1,714};
61+
tensor<int64_t> dnnc___1_value({2}); dnnc___1_value.load(dnnc___1_value_vec);
62+
dnnc___1.setAttribute ( attr_value, dnnc___1_value );
63+
tensor<int64_t> dnnc_dnnc___1_7 = dnnc___1.compute ();
64+
65+
66+
Reshape<float, float, int64_t> dnnc___2("dnnc___2");
67+
tensor<float> dnnc_dnnc___2_8 = dnnc___2.compute ( dnnc_0, dnnc_dnnc___1_7);
68+
69+
70+
Gemm<float, float, float> dnnc___3("dnnc___3");
71+
float dnnc___3_alpha = 1.000000 ;
72+
dnnc___3.setAttribute ( attr_alpha, dnnc___3_alpha );
73+
float dnnc___3_beta = 1.000000 ;
74+
dnnc___3.setAttribute ( attr_beta, dnnc___3_beta );
75+
int dnnc___3_transB = 1 ;
76+
dnnc___3.setAttribute ( attr_transB, dnnc___3_transB );
77+
tensor<float> dnnc_dnnc___3_9 = dnnc___3.compute ( dnnc_dnnc___2_8, dnnc_fc1_dot_weight, dnnc_fc1_dot_bias);
78+
79+
80+
Relu<float, float> dnnc___4("dnnc___4");
81+
tensor<float> dnnc_dnnc___4_10 = dnnc___4.compute ( dnnc_dnnc___3_9);
82+
83+
84+
Gemm<float, float, float> dnnc___5("dnnc___5");
85+
float dnnc___5_alpha = 1.000000 ;
86+
dnnc___5.setAttribute ( attr_alpha, dnnc___5_alpha );
87+
float dnnc___5_beta = 1.000000 ;
88+
dnnc___5.setAttribute ( attr_beta, dnnc___5_beta );
89+
int dnnc___5_transB = 1 ;
90+
dnnc___5.setAttribute ( attr_transB, dnnc___5_transB );
91+
tensor<float> dnnc_dnnc___5_11 = dnnc___5.compute ( dnnc_dnnc___4_10, dnnc_fc2_dot_weight, dnnc_fc2_dot_bias);
92+
93+
94+
Relu<float, float> dnnc___6("dnnc___6");
95+
tensor<float> dnnc_dnnc___6_12 = dnnc___6.compute ( dnnc_dnnc___5_11);
96+
97+
98+
Gemm<float, float, float> dnnc___7("dnnc___7");
99+
float dnnc___7_alpha = 1.000000 ;
100+
dnnc___7.setAttribute ( attr_alpha, dnnc___7_alpha );
101+
float dnnc___7_beta = 1.000000 ;
102+
dnnc___7.setAttribute ( attr_beta, dnnc___7_beta );
103+
int dnnc___7_transB = 1 ;
104+
dnnc___7.setAttribute ( attr_transB, dnnc___7_transB );
105+
tensor<float> dnnc_dnnc___7_13 = dnnc___7.compute ( dnnc_dnnc___6_12, dnnc_fc3_dot_weight, dnnc_fc3_dot_bias);
106+
107+
108+
Relu<float, float> dnnc___8("dnnc___8");
109+
tensor<float> dnnc_dnnc___8_14 = dnnc___8.compute ( dnnc_dnnc___7_13);
110+
111+
112+
return dnnc_dnnc___8_14 ;
113+
}
114+
115+
#if defined(ARDUINO)
116+
117+
const int REDpin = 24;
118+
const int GREENpin = 23;
119+
const int BLUEpin = 22;
120+
121+
void setup() {
122+
Serial.begin(9600);
123+
while (!Serial);
124+
125+
// initialize the IMU
126+
if (!IMU.begin()) {
127+
Serial.println("Failed to initialize IMU!");
128+
while (1);
129+
}
130+
pinMode(REDpin, OUTPUT);
131+
pinMode(GREENpin, OUTPUT);
132+
pinMode(BLUEpin, OUTPUT);
133+
digitalWrite(REDpin, LOW);
134+
digitalWrite(GREENpin, LOW);
135+
digitalWrite(BLUEpin, LOW);
136+
}
137+
138+
void lightLED(int prediction) {
139+
140+
digitalWrite(REDpin, LOW);
141+
if ( prediction ) { // how are you??
142+
digitalWrite(GREENpin, LOW);
143+
digitalWrite(BLUEpin, HIGH);
144+
} else { // hello
145+
digitalWrite(GREENpin, HIGH);
146+
digitalWrite(BLUEpin, LOW);
147+
}
148+
delay(1000);
149+
150+
digitalWrite(REDpin, LOW);
151+
digitalWrite(GREENpin, LOW);
152+
digitalWrite(BLUEpin, LOW);
153+
}
154+
155+
// RMS (root mean square) threshold of significant motion in G's
156+
const float ACC_LIMIT = 1.5; // 2.0
157+
const int NUM_CAPTURED_SAMPLES_PER_GESTURE = 119;
158+
const int N_FEATURES = 6;
159+
const int TOTAL_SAMPLES = NUM_CAPTURED_SAMPLES_PER_GESTURE * N_FEATURES;
160+
const int START_INDEX = 0; //(NUM_CAPTURED_SAMPLES_PER_GESTURE/3)*N_FEATURES;
161+
162+
163+
void loop() {
164+
//float hello[714] = {0.772,0.220,0.448,-6.531,-15.686,2.686, 0.789,0.215,0.450,-2.625,-15.991,-0.854, 0.787,0.192,0.462,2.136,-17.273,-4.700, 0.773,0.168,0.494,5.615,-18.433,-8.301, 0.763,0.148,0.513,7.690,-16.968,-11.597, 0.774,0.140,0.512,6.531,-13.367,-13.916, 0.769,0.146,0.517,5.493,-11.230,-16.602, 0.764,0.136,0.502,4.150,-8.667,-20.264, 0.775,0.114,0.472,2.441,-6.653,-24.048, 0.778,0.087,0.448,-0.610,-6.042,-26.611, 0.770,0.060,0.433,-5.249,-6.836,-28.198, 0.771,0.066,0.431,-12.207,-7.935,-28.137, 0.760,0.102,0.444,-20.325,-9.277,-27.527, 0.737,0.127,0.462,-26.794,-10.315,-27.466, 0.718,0.164,0.467,-33.508,-10.315,-28.381, 0.699,0.194,0.458,-41.138,-10.437,-29.541, 0.676,0.266,0.501,-48.767,-11.963,-30.457, 0.646,0.359,0.537,-53.589,-12.939,-30.884, 0.608,0.437,0.559,-56.580,-13.611,-30.884, 0.577,0.608,0.639,-57.861,-15.320,-30.823, 0.522,0.808,0.764,-51.819,-19.165,-31.433, 0.473,1.005,0.862,-42.236,-18.616,-36.072, 0.421,1.186,0.963,-31.799,-15.381,-47.241, 0.370,1.366,1.051,-26.611,-8.301,-65.063, 0.320,1.516,1.123,-24.292,2.441,-89.294, 0.237,1.636,1.210,-21.790,14.771,-120.789, 0.148,1.684,1.284,-15.991,29.968,-157.776, 0.064,1.685,1.309,-7.446,46.570,-196.350, -0.013,1.707,1.321,2.563,65.369,-233.582, -0.119,1.626,1.300,13.000,85.449,-270.386, -0.224,1.519,1.245,22.217,108.704,-305.847, -0.352,1.266,1.067,42.969,130.249,-339.478, -0.484,0.971,0.930,58.533,147.461,-368.225, -0.629,0.637,0.795,72.632,162.231,-390.015, -0.728,0.191,0.644,82.642,177.917,-406.311, -0.846,-0.254,0.471,86.487,192.017,-415.161, -0.945,-0.901,0.229,80.811,200.256,-418.213, -0.942,-1.734,-0.028,53.894,204.346,-421.021, -0.834,-2.550,-0.263,14.099,199.097,-409.058, -0.669,-3.255,-0.471,-24.475,183.105,-373.718, -0.425,-3.708,-0.663,-52.246,157.471,-319.336, -0.205,-3.640,-0.741,-82.214,127.563,-242.187, -0.024,-3.208,-0.738,-110.657,101.379,-160.217, 0.082,-2.743,-0.704,-127.014,78.613,-103.394, 0.256,-2.316,-0.611,-132.996,55.298,-67.749, 0.350,-1.917,-0.503,-128.357,37.170,-48.645, 0.416,-1.554,-0.411,-113.647,23.071,-39.368, 0.412,-1.270,-0.266,-94.299,12.268,-39.856, 0.332,-1.176,-0.095,-76.965,5.188,-51.025, 0.316,-1.286,-0.002,-65.735,5.493,-70.740, 0.318,-1.498,0.002,-59.021,15.503,-90.332, 0.273,-1.711,-0.020,-40.100,21.851,-98.633, 0.209,-2.020,0.025,-6.592,13.000,-97.961, 0.190,-2.239,0.066,11.536,5.066,-86.182, 0.207,-2.198,0.077,12.512,4.395,-60.059, 0.250,-2.022,0.058,10.254,6.653,-32.593, 0.293,-1.839,0.023,7.141,8.911,-12.207, 0.342,-1.677,0.001,2.197,8.728,-0.366, 0.384,-1.504,-0.016,-5.310,7.507,9.033, 0.402,-1.346,-0.018,-9.644,4.883,15.564, 0.411,-1.196,0.005,-12.817,1.587,19.348, 0.426,-1.050,0.044,-13.672,-0.427,21.179, 0.443,-0.954,0.063,-9.583,-1.221,19.592, 0.456,-0.914,0.069,-2.502,-2.808,16.296, 0.455,-0.899,0.090,5.188,-5.188,13.306, 0.455,-0.892,0.114,12.451,-6.897,11.475, 0.458,-0.886,0.118,18.860,-7.385,10.437, 0.465,-0.882,0.108,23.437,-7.324,9.216, 0.471,-0.893,0.093,26.489,-7.874,8.118, 0.477,-0.899,0.089,27.283,-9.766,7.446, 0.482,-0.907,0.112,25.208,-12.024,7.141, 0.482,-0.915,0.143,23.560,-13.733,6.775, 0.482,-0.926,0.161,21.423,-13.794,7.690, 0.486,-0.918,0.179,18.372,-12.573,9.888, 0.494,-0.907,0.182,16.357,-11.536,12.207, 0.497,-0.884,0.193,14.832,-11.719,13.733, 0.492,-0.871,0.214,14.343,-11.841,13.916, 0.492,-0.870,0.228,14.282,-11.353,13.794, 0.487,-0.884,0.235,16.235,-11.292,13.794, 0.486,-0.888,0.242,18.066,-11.353,14.526, 0.481,-0.891,0.246,19.470,-11.292,15.625, 0.475,-0.906,0.242,20.081,-10.742,16.541, 0.458,-0.920,0.225,20.874,-10.071,16.846, 0.452,-0.923,0.209,20.569,-9.827,15.686, 0.446,-0.988,0.186,22.034,-11.169,12.512, 0.429,-1.050,0.179,23.499,-13.977,10.986, 0.415,-1.084,0.159,23.804,-16.113,11.475, 0.424,-1.107,0.117,23.193,-17.212,12.817, 0.430,-1.122,0.077,22.278,-19.043,15.015, 0.440,-1.116,0.055,21.790,-22.278,18.250, 0.445,-1.112,0.032,21.667,-25.879,21.851, 0.453,-1.125,0.011,22.339,-29.846,24.719, 0.452,-1.147,0.012,23.132,-34.485,27.832, 0.438,-1.164,0.043,23.499,-39.063,31.677, 0.421,-1.162,0.071,24.780,-43.030,35.828, 0.410,-1.156,0.075,25.085,-46.265,39.490, 0.392,-1.150,0.067,25.269,-48.645,42.297, 0.375,-1.138,0.065,27.100,-52.063,45.227, 0.365,-1.128,0.063,30.701,-56.396,48.279, 0.379,-1.143,0.054,36.316,-60.852,50.476, 0.390,-1.178,0.045,42.053,-65.979,52.368, 0.386,-1.221,0.065,42.480,-70.618,56.458, 0.382,-1.239,0.112,39.001,-71.777,63.538, 0.388,-1.207,0.153,33.325,-68.359,72.510, 0.409,-1.148,0.154,27.893,-62.134,81.665, 0.441,-1.076,0.125,24.231,-56.641,89.111, 0.475,-1.017,0.095,25.940,-55.542,93.933, 0.473,-0.999,0.098,30.396,-58.289,96.497, 0.484,-1.002,0.121,34.241,-61.096,96.497, 0.489,-1.035,0.122,34.485,-60.791,96.497, 0.517,-1.074,0.115,35.583,-61.340,97.534, 0.529,-1.103,0.120,37.048,-64.636,100.586, 0.546,-1.135,0.144,35.889,-68.298,104.553, 0.549,-1.135,0.169,33.081,-71.350,111.084, 0.543,-1.081,0.200,27.893,-73.303,122.131, 0.538,-1.008,0.234,24.719,-74.585,134.583, 0.539,-0.925,0.266,21.973,-75.317,146.423, 0.542,-0.843,0.305,19.836,-75.562,155.151, 0.545,-0.790,0.340,19.348,-75.684,160.095};
165+
//float sup[714] = {0.679,0.046,0.412,43.945,12.329,-69.275, 0.729,0.066,0.307,40.588,10.620,-76.294, 0.753,0.048,0.261,40.527,2.686,-78.979, 0.743,0.066,0.320,42.786,-9.094,-82.214, 0.681,-0.002,0.511,43.396,-16.235,-86.548, 0.661,-0.086,0.642,39.856,-8.606,-84.839, 0.699,-0.026,0.627,30.518,9.094,-73.547, 0.744,0.154,0.511,21.729,25.085,-69.214, 0.779,0.244,0.378,21.240,34.119,-75.439, 0.783,0.170,0.273,29.297,34.485,-88.562, 0.782,0.014,0.208,38.879,29.114,-100.830, 0.778,-0.126,0.152,48.523,19.531,-109.436, 0.770,-0.172,0.097,57.007,5.249,-115.051, 0.753,-0.162,0.051,70.007,-11.475,-120.972, 0.703,-0.228,0.074,89.233,-31.128,-128.967, 0.691,-0.358,0.084,110.107,-48.645,-135.559, 0.667,-0.497,0.102,124.207,-62.622,-137.878, 0.605,-0.637,0.170,130.005,-73.303,-137.451, 0.575,-0.699,0.195,131.958,-80.688,-134.827, 0.521,-0.802,0.278,142.517,-88.806,-132.141, 0.390,-1.071,0.591,160.828,-96.130,-126.160, 0.309,-1.337,0.782,174.561,-89.478,-110.229, 0.371,-1.435,0.676,185.913,-71.472,-82.642, 0.444,-1.337,0.450,199.280,-57.068,-52.307, 0.504,-1.227,0.261,213.501,-57.312,-33.569, 0.542,-1.188,0.112,227.844,-70.923,-30.945, 0.541,-1.238,-0.009,243.896,-92.407,-35.522, 0.494,-1.428,-0.018,263.123,-118.652,-38.940, 0.455,-1.635,0.020,275.024,-141.541,-35.583, 0.454,-1.640,0.003,279.114,-157.410,-19.409, 0.440,-1.481,-0.052,286.682,-172.302,-0.061, 0.398,-1.397,-0.071,300.110,-191.528,7.507, 0.381,-1.407,-0.088,316.895,-212.585,4.333, 0.346,-1.389,-0.188,346.924,-236.145,6.775, 0.279,-1.456,-0.260,395.264,-268.127,13.123, 0.173,-1.681,-0.344,448.914,-304.077,18.738, 0.103,-2.046,-0.627,503.052,-336.670,34.912, -0.006,-2.427,-0.881,536.255,-369.568,66.833, -0.066,-2.677,-1.043,515.442,-396.240,111.572, -0.133,-2.672,-1.267,475.769,-411.499,163.635, -0.153,-2.579,-1.346,432.373,-432.007,217.407, -0.236,-2.439,-1.350,423.950,-460.876,252.136, -0.365,-2.545,-1.180,423.950,-493.347,260.620, -0.447,-2.824,-0.881,418.945,-516.418,259.705, -0.550,-2.909,-0.577,402.283,-532.593,264.282, -0.624,-2.728,-0.320,368.164,-538.574,283.936, -0.664,-2.320,-0.106,329.712,-533.508,309.265, -0.680,-1.843,0.250,295.471,-519.470,323.425, -0.650,-1.508,0.776,269.653,-491.211,322.083, -0.516,-1.271,1.078,237.244,-442.566,311.157, -0.349,-1.034,1.164,199.707,-383.606,296.143, -0.183,-0.806,1.207,166.870,-329.712,277.954, -0.047,-0.634,1.156,131.287,-283.630,254.578, 0.062,-0.555,0.994,88.989,-241.699,229.675, 0.115,-0.491,0.796,45.776,-207.703,208.618, 0.123,-0.381,0.676,5.920,-183.472,192.078, 0.110,-0.289,0.622,-27.588,-167.175,176.636, 0.113,-0.122,0.549,-60.303,-153.564,153.748, 0.151,0.161,0.484,-93.384,-147.156,116.333, 0.165,0.133,0.510,-85.388,-144.470,89.661, 0.210,-0.047,0.604,-71.106,-142.883,62.805, 0.244,-0.120,0.694,-69.641,-141.602,31.555, 0.270,-0.198,0.770,-69.641,-131.653,19.470, 0.308,-0.189,0.795,-67.932,-116.638,17.517, 0.345,-0.142,0.788,-67.932,-100.708,17.334, 0.390,-0.093,0.768,-65.063,-84.106,18.921, 0.412,-0.070,0.783,-63.293,-71.167,22.156, 0.426,-0.091,0.827,-57.007,-58.716,27.527, 0.437,-0.122,0.868,-46.204,-46.509,30.090, 0.456,-0.113,0.895,-39.673,-34.302,33.936, 0.465,-0.048,0.906,-37.476,-22.522,38.757, 0.493,0.024,0.892,-37.170,-10.803,41.382, 0.514,0.101,0.851,-37.048,0.366,40.222, 0.548,0.155,0.792,-35.706,9.033,35.156, 0.574,0.202,0.741,-33.508,15.198,26.550, 0.588,0.233,0.730,-31.067,19.165,15.503, 0.591,0.228,0.745,-27.832,22.766,2.625, 0.601,0.207,0.758,-25.635,28.198,-9.766, 0.606,0.198,0.767,-27.161,35.034,-22.461, 0.615,0.184,0.752,-31.494,43.945,-35.278, 0.621,0.153,0.739,-36.072,54.382,-48.706, 0.612,0.094,0.746,-40.161,64.758,-61.646, 0.604,0.015,0.750,-44.922,74.707,-73.792, 0.602,-0.074,0.715,-51.636,84.167,-84.106, 0.603,-0.125,0.661,-62.317,93.018,-90.515, 0.590,-0.120,0.646,-74.524,99.182,-94.421, 0.567,-0.090,0.681,-83.801,104.614,-98.328, 0.531,-0.071,0.738,-90.088,110.474,-105.103, 0.493,-0.088,0.807,-97.351,119.995,-114.197, 0.465,-0.131,0.873,-109.009,136.230,-124.207, 0.434,-0.175,0.894,-128.967,158.630,-134.155, 0.438,-0.205,0.848,-155.334,184.875,-146.179, 0.434,-0.237,0.754,-185.059,209.412,-159.424, 0.434,-0.309,0.679,-217.407,229.004,-174.500, 0.424,-0.410,0.622,-254.578,246.460,-191.040, 0.410,-0.531,0.522,-296.570,262.756,-206.970, 0.443,-0.686,0.400,-343.628,276.245,-222.290, 0.456,-0.815,0.345,-395.081,284.119,-238.586, 0.472,-0.904,0.283,-447.510,290.466,-249.146, 0.490,-0.968,0.167,-503.784,295.837,-257.324, 0.510,-1.019,-0.034,-561.218,296.143,-269.287, 0.609,-1.144,-0.290,-615.112,286.865,-283.386, 0.709,-1.281,-0.493,-665.466,260.925,-290.039, 0.792,-1.398,-0.579,-707.825,223.389,-278.320, 0.805,-1.370,-0.495,-750.000,179.932,-249.146, 0.850,-1.211,-0.368,-783.752,139.893,-207.336, 0.848,-0.940,-0.195,-799.866,105.225,-157.166, 0.958,-0.697,-0.001,-787.964,69.336,-112.183, 0.742,-0.401,0.357,-764.771,31.433,-75.928, 0.900,-0.321,0.513,-700.012,3.845,-33.936, 0.868,-0.104,0.829,-659.485,-12.878,-6.775, 0.859,0.026,1.022,-617.065,-16.052,13.123, 0.854,0.144,1.194,-552.551,-16.907,32.410, 0.880,0.301,1.288,-485.291,-11.414,43.335, 0.876,0.452,1.320,-410.461,-5.188,43.274, 0.860,0.531,1.336,-340.454,0.549,36.438, 0.860,0.501,1.322,-278.748,8.850,22.644, 0.815,0.424,1.338,-222.534,19.531,6.531, 0.761,0.297,1.268,-168.396,32.532,-4.761};
166+
167+
float gesture_in[TOTAL_SAMPLES] ;
168+
for (size_t i=0; i<TOTAL_SAMPLES; i++) gesture_in[i] = 0.0;
169+
170+
float aX=0.0, aY=0.0, aZ=0.0, gX=0.0, gY=0.0, gZ=0.0 ;
171+
while ( sqrt(aX*aX + aY*aY + aZ*aZ) < ACC_LIMIT ) {
172+
// Wait for the signals from accelerator and gyroscope
173+
if (IMU.accelerationAvailable() && IMU.gyroscopeAvailable()) {
174+
// read the acceleration and gyroscope data
175+
IMU.readAcceleration(aX, aY, aZ);
176+
IMU.readGyroscope(gX, gY, gZ);
177+
178+
// insert the new data at the threshold index
179+
gesture_in[START_INDEX + 0] = (aX + 4.0) / 8.0;
180+
gesture_in[START_INDEX + 1] = (aY + 4.0) / 8.0;
181+
gesture_in[START_INDEX + 2] = (aZ + 4.0) / 8.0;
182+
gesture_in[START_INDEX + 3] = (gX + 2000.0) / 4000.0;
183+
gesture_in[START_INDEX + 4] = (gY + 2000.0) / 4000.0;
184+
gesture_in[START_INDEX + 5] = (gZ + 2000.0) / 4000.0;
185+
186+
}
187+
}
188+
189+
int capturedSamples = START_INDEX + N_FEATURES;
190+
// collect the remaining samples
191+
while (capturedSamples+N_FEATURES <= TOTAL_SAMPLES) {
192+
// wait for both acceleration and gyroscope data to be available
193+
if (IMU.accelerationAvailable() && IMU.gyroscopeAvailable()) {
194+
// read the acceleration and gyroscope data
195+
IMU.readAcceleration(aX, aY, aZ);
196+
IMU.readGyroscope(gX, gY, gZ);
197+
198+
// insert the new data
199+
gesture_in[capturedSamples + 0] = (aX + 4.0) / 8.0;
200+
gesture_in[capturedSamples + 1] = (aY + 4.0) / 8.0;
201+
gesture_in[capturedSamples + 2] = (aZ + 4.0) / 8.0;
202+
gesture_in[capturedSamples + 3] = (gX + 2000.0) / 4000.0;
203+
gesture_in[capturedSamples + 4] = (gY + 2000.0) / 4000.0;
204+
gesture_in[capturedSamples + 5] = (gZ + 2000.0) / 4000.0;
205+
206+
capturedSamples += N_FEATURES;
207+
}
208+
}
209+
210+
// inferencing
211+
tensor<float> in({TOTAL_SAMPLES}); in.load(gesture_in);
212+
tensor<float> out = dnnc_model(in);
213+
214+
const char* GESTURES[] = {"\thello", "\thow are you?"};
215+
Serial.print("Gesture prob. ");
216+
Serial.println(out.to_string().c_str());
217+
218+
int prediction = out(0,0)<out(0,1);
219+
// Print
220+
Serial.print("\t\t\t PREDICTION :");
221+
Serial.println(GESTURES[prediction]);
222+
Serial.flush();
223+
224+
// LED
225+
lightLED(prediction);
226+
}
227+
#else
228+
int main() {
229+
float gesture_in[714] = {0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.48,0.20,0.49,0.53,0.49,0.47,0.47,0.18,0.49,0.52,0.49,0.48,0.46,0.16,0.48,0.52,0.49,0.49,0.45,0.15,0.47,0.51,0.49,0.50,0.45,0.16,0.47,0.51,0.49,0.52,0.45,0.20,0.47,0.50,0.49,0.54,0.46,0.26,0.48,0.50,0.49,0.56,0.46,0.32,0.50,0.50,0.48,0.57,0.48,0.37,0.52,0.50,0.48,0.58,0.49,0.41,0.53,0.49,0.48,0.58,0.50,0.44,0.55,0.49,0.48,0.58,0.52,0.46,0.56,0.49,0.48,0.58,0.53,0.48,0.57,0.49,0.48,0.58,0.54,0.49,0.59,0.49,0.48,0.58,0.54,0.50,0.60,0.49,0.48,0.58,0.55,0.52,0.62,0.48,0.48,0.58,0.55,0.54,0.63,0.48,0.49,0.58,0.55,0.57,0.63,0.48,0.49,0.58,0.56,0.60,0.62,0.48,0.50,0.59,0.56,0.63,0.60,0.49,0.51,0.59,0.56,0.67,0.58,0.49,0.52,0.59,0.56,0.70,0.55,0.49,0.52,0.58,0.57,0.72,0.53,0.50,0.53,0.57,0.58,0.74,0.51,0.50,0.53,0.56,0.58,0.74,0.50,0.50,0.52,0.55,0.59,0.74,0.49,0.50,0.52,0.53,0.59,0.73,0.48,0.51,0.51,0.52,0.59,0.70,0.49,0.51,0.50,0.51,0.59,0.66,0.51,0.51,0.50,0.50,0.60,0.63,0.52,0.51,0.49,0.49,0.60,0.61,0.53,0.51,0.49,0.49,0.60,0.59,0.54,0.51,0.49,0.49,0.60,0.58,0.53,0.51,0.50,0.49,0.60,0.58,0.52,0.51,0.50,0.49,0.60,0.58,0.51,0.51,0.50,0.49,0.61,0.58,0.51,0.50,0.50,0.49,0.61,0.58,0.52,0.50,0.50,0.49,0.61,0.57,0.52,0.50,0.49,0.49,0.61,0.56,0.53,0.51,0.49,0.49,0.61,0.56,0.53,0.51,0.50,0.49,0.61,0.55,0.52,0.51,0.50,0.48,0.61,0.53,0.53,0.51,0.50,0.48,0.61,0.52,0.53,0.51,0.49,0.48,0.61,0.52,0.53,0.51,0.49,0.48,0.62,0.51,0.53,0.51,0.50,0.48,0.62,0.51,0.53,0.51,0.50,0.48,0.62,0.51,0.54,0.50,0.50,0.49,0.62,0.51,0.54,0.50,0.50,0.49,0.62,0.51,0.55,0.50,0.50,0.49,0.62,0.52,0.55,0.50,0.50,0.49,0.62,0.52,0.56,0.50,0.50,0.49,0.62,0.52,0.56,0.50,0.50,0.49,0.62,0.53,0.56,0.50,0.50,0.49,0.63,0.54,0.56,0.50,0.50,0.49,0.62,0.55,0.55,0.50,0.50,0.49,0.62,0.55,0.53,0.50,0.51,0.49,0.62,0.54,0.52,0.50,0.51,0.48,0.61,0.52,0.52,0.50,0.50,0.48,0.61,0.51,0.52,0.50,0.50,0.48,0.61,0.50,0.53,0.50,0.50,0.48,0.61,0.50,0.53,0.50,0.50,0.48,0.61,0.49,0.54,0.50,0.50,0.48,0.62,0.50,0.54,0.50,0.50,0.48,0.61,0.50,0.54,0.50,0.50,0.48,0.61,0.50,0.54,0.49,0.50,0.48,0.61,0.49,0.53,0.49,0.50,0.48,0.61,0.49,0.52,0.49,0.50,0.48,0.61,0.49,0.53,0.50,0.50,0.48,0.61,0.48,0.53,0.50,0.50,0.48,0.61,0.48,0.54,0.50,0.50,0.48,0.61,0.49,0.55,0.50,0.50,0.48,0.61,0.49,0.56,0.49,0.50,0.48,0.61,0.50,0.56,0.49,0.50,0.48,0.61,0.52,0.56,0.49,0.50,0.48,0.61,0.52,0.55,0.49,0.50,0.48,0.60,0.52,0.52,0.49,0.51,0.48,0.60,0.51,0.51,0.49,0.51,0.47,0.60,0.49,0.52,0.50,0.50,0.47,0.59,0.48,0.54,0.50,0.49,0.46,0.59,0.46,0.57,0.51,0.49,0.46};
230+
tensor<float> in({714});
231+
in.load(gesture_in);
232+
233+
tensor<float> out = dnnc_model(in);
234+
std::cout << out.to_string() << "\n";
235+
return 0;
236+
}
237+
#endif

0 commit comments

Comments
 (0)
Please sign in to comment.